From 6c201ba5549512ef1fb8b1b380d2d0d9ed87fb4a Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Fri, 14 May 2021 08:56:12 -0500 Subject: [PATCH 001/126] Solve bug for FileSaver.js deleted dependency --- .gitignore | 2 ++ Brocfile.js | 2 +- bower.json | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2d333cdd..53eafe8c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,8 @@ # compiled output /dist /tmp +.idea/ +package-lock.json # dependencies /node_modules diff --git a/Brocfile.js b/Brocfile.js index c92c963b..224d3eb2 100644 --- a/Brocfile.js +++ b/Brocfile.js @@ -42,7 +42,7 @@ var app = new EmberApp({ }); // FileSaver -app.import('bower_components/FileSaver.js/FileSaver.min.js'); +app.import('bower_components/FileSaver.js/dist/FileSaver.min.js'); // PapaParse app.import('bower_components/papaparse/papaparse.min.js'); diff --git a/bower.json b/bower.json index 22084097..99fa1945 100644 --- a/bower.json +++ b/bower.json @@ -26,7 +26,7 @@ }, "devDependencies": { "d3": "~3.5.5", - "FileSaver.js": "~0.0.2", + "FileSaver.js": "https://github.com/eligrey/FileSaver.js.git#v2.0.4", "papaparse": "~4.1.2", "vis-toolkit": "https://github.com/cid-harvard/vis-toolkit.git#master" }, From 35ec817dc2c85fcb223854fcdf4c4184393c363a Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Fri, 11 Jun 2021 19:03:56 -0500 Subject: [PATCH 002/126] Add styles to home --- app/controllers/index.js | 2 +- app/index.html | 8 +- app/locales/en-col/translations.js | 24 +- app/locales/en-col/translations.original | 568 +++++++++++++++ app/locales/en-col/translations_2016.js | 657 ++++++++++++++++++ app/locales/en-col/translationsold.js | 568 +++++++++++++++ app/locales/es-col/translations.js | 40 +- app/locales/es-col/translations.original | 568 +++++++++++++++ app/locales/es-col/translations_2016.js | 657 ++++++++++++++++++ app/locales/es-col/translationsold.js | 568 +++++++++++++++ .../components/_components/_button.scss | 7 +- .../components/_components/_search.scss | 3 +- .../components/_components/_typography.scss | 6 +- app/styles/components/_font-face.scss | 5 + app/styles/components/_modules/_builder.scss | 3 +- .../components/_modules/_ember-table.scss | 2 +- app/styles/components/_modules/_index.scss | 107 ++- app/styles/components/_modules/_layout.scss | 2 +- .../components/_modules/_pageheader.scss | 46 +- app/styles/components/_modules/_results.scss | 12 +- .../components/_modules/_stream-header.scss | 2 +- .../components/_modules/_stream-section.scss | 3 +- app/styles/components/_variables.scss | 6 +- .../font/MuseoSans/MuseoSansCyrl-100.otf | Bin 0 -> 103732 bytes .../MuseoSans/MuseoSansCyrl-100Italic.otf | Bin 0 -> 105952 bytes .../font/MuseoSans/MuseoSansCyrl-300.otf | Bin 0 -> 106444 bytes .../MuseoSans/MuseoSansCyrl-300Italic.otf | Bin 0 -> 109296 bytes .../font/MuseoSans/MuseoSansCyrl-500.otf | Bin 0 -> 106620 bytes .../MuseoSans/MuseoSansCyrl-500Italic.otf | Bin 0 -> 109056 bytes .../font/MuseoSans/MuseoSansCyrl-700.otf | Bin 0 -> 106712 bytes .../MuseoSans/MuseoSansCyrl-700Italic.otf | Bin 0 -> 110256 bytes .../font/MuseoSans/MuseoSansCyrl-900.otf | Bin 0 -> 104640 bytes .../MuseoSans/MuseoSansCyrl-900Italic.otf | Bin 0 -> 107952 bytes .../font/MuseoSans/MuseoSansCyrl_500.otf | Bin 0 -> 62504 bytes .../font/MuseoSlab/Museo_Slab_100.otf | Bin 0 -> 46408 bytes .../font/MuseoSlab/Museo_Slab_1000.otf | Bin 0 -> 48260 bytes .../font/MuseoSlab/Museo_Slab_1000italic.otf | Bin 0 -> 51492 bytes .../font/MuseoSlab/Museo_Slab_100italic.otf | Bin 0 -> 49520 bytes .../font/MuseoSlab/Museo_Slab_300.otf | Bin 0 -> 47816 bytes .../font/MuseoSlab/Museo_Slab_300italic.otf | Bin 0 -> 51404 bytes .../font/MuseoSlab/Museo_Slab_500.otf | Bin 0 -> 62180 bytes .../font/MuseoSlab/Museo_Slab_500italic.otf | Bin 0 -> 66376 bytes .../font/MuseoSlab/Museo_Slab_700.otf | Bin 0 -> 47840 bytes .../font/MuseoSlab/Museo_Slab_700italic.otf | Bin 0 -> 51100 bytes .../font/MuseoSlab/Museo_Slab_900.otf | Bin 0 -> 47216 bytes .../font/MuseoSlab/Museo_Slab_900italic.otf | Bin 0 -> 51072 bytes .../components/font/RF_Rufo/RFRufo-Bold.ttf | Bin 0 -> 82100 bytes .../components/font/RF_Rufo/RFRufo-Light.ttf | Bin 0 -> 78988 bytes .../font/RF_Rufo/RFRufo-Regular.ttf | Bin 0 -> 80456 bytes app/templates/index.hbs | 373 +++++----- app/templates/partials/-pageheader.hbs | 122 ++-- app/variables/data-variables.js | 50 +- config/environment.js | 5 +- .../font/MuseoSans/MuseoSansCyrl-100.otf | Bin 0 -> 103732 bytes .../MuseoSans/MuseoSansCyrl-100Italic.otf | Bin 0 -> 105952 bytes .../font/MuseoSans/MuseoSansCyrl-300.otf | Bin 0 -> 106444 bytes .../MuseoSans/MuseoSansCyrl-300Italic.otf | Bin 0 -> 109296 bytes .../font/MuseoSans/MuseoSansCyrl-500.otf | Bin 0 -> 106620 bytes .../MuseoSans/MuseoSansCyrl-500Italic.otf | Bin 0 -> 109056 bytes .../font/MuseoSans/MuseoSansCyrl-700.otf | Bin 0 -> 106712 bytes .../MuseoSans/MuseoSansCyrl-700Italic.otf | Bin 0 -> 110256 bytes .../font/MuseoSans/MuseoSansCyrl-900.otf | Bin 0 -> 104640 bytes .../MuseoSans/MuseoSansCyrl-900Italic.otf | Bin 0 -> 107952 bytes .../font/MuseoSans/MuseoSansCyrl_500.otf | Bin 0 -> 62504 bytes .../assets/font/MuseoSlab/Museo_Slab_100.otf | Bin 0 -> 46408 bytes .../assets/font/MuseoSlab/Museo_Slab_1000.otf | Bin 0 -> 48260 bytes .../font/MuseoSlab/Museo_Slab_1000italic.otf | Bin 0 -> 51492 bytes .../font/MuseoSlab/Museo_Slab_100italic.otf | Bin 0 -> 49520 bytes .../assets/font/MuseoSlab/Museo_Slab_300.otf | Bin 0 -> 47816 bytes .../font/MuseoSlab/Museo_Slab_300italic.otf | Bin 0 -> 51404 bytes .../assets/font/MuseoSlab/Museo_Slab_500.otf | Bin 0 -> 62180 bytes .../font/MuseoSlab/Museo_Slab_500italic.otf | Bin 0 -> 66376 bytes .../assets/font/MuseoSlab/Museo_Slab_700.otf | Bin 0 -> 47840 bytes .../font/MuseoSlab/Museo_Slab_700italic.otf | Bin 0 -> 51100 bytes .../assets/font/MuseoSlab/Museo_Slab_900.otf | Bin 0 -> 47216 bytes .../font/MuseoSlab/Museo_Slab_900italic.otf | Bin 0 -> 51072 bytes public/assets/font/RF_Rufo/RFRufo-Bold.ttf | Bin 0 -> 82100 bytes public/assets/font/RF_Rufo/RFRufo-Light.ttf | Bin 0 -> 78988 bytes public/assets/font/RF_Rufo/RFRufo-Regular.ttf | Bin 0 -> 80456 bytes .../assets/img/branding/bancoldex-white.svg | 63 ++ .../img/branding/ico_grafico_composicion.svg | 19 + .../img/branding/ico_grafico_de_areas.svg | 6 + .../branding/ico_grafico_de_dispersion.svg | 50 ++ .../assets/img/branding/ico_mapa_colombia.svg | 38 + .../img/branding/ico_mapa_de_sectores.svg | 12 + .../img/branding/ico_mapa_geografico.svg | 14 + .../img/hero_images/front-header-treemap.png | Bin 976520 -> 3922781 bytes public/assets/img/logos/mark_bancoldex.svg | 63 ++ public/assets/img/logos/mark_fundacion.svg | 8 + public/assets/img/logos/mark_presidencia.svg | 69 ++ 90 files changed, 4361 insertions(+), 395 deletions(-) create mode 100644 app/locales/en-col/translations.original create mode 100644 app/locales/en-col/translations_2016.js create mode 100644 app/locales/en-col/translationsold.js create mode 100644 app/locales/es-col/translations.original create mode 100644 app/locales/es-col/translations_2016.js create mode 100644 app/locales/es-col/translationsold.js create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-100.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-100Italic.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-300.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-300Italic.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-500.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-500Italic.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-700.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-700Italic.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-900.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl-900Italic.otf create mode 100644 app/styles/components/font/MuseoSans/MuseoSansCyrl_500.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_100.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_1000.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_1000italic.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_100italic.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_300.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_300italic.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_500.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_500italic.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_700.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_700italic.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_900.otf create mode 100644 app/styles/components/font/MuseoSlab/Museo_Slab_900italic.otf create mode 100644 app/styles/components/font/RF_Rufo/RFRufo-Bold.ttf create mode 100644 app/styles/components/font/RF_Rufo/RFRufo-Light.ttf create mode 100644 app/styles/components/font/RF_Rufo/RFRufo-Regular.ttf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-100.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-100Italic.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-300.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-300Italic.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-500.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-500Italic.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-700.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-700Italic.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-900.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl-900Italic.otf create mode 100644 public/assets/font/MuseoSans/MuseoSansCyrl_500.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_100.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_1000.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_1000italic.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_100italic.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_300.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_300italic.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_500.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_500italic.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_700.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_700italic.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_900.otf create mode 100644 public/assets/font/MuseoSlab/Museo_Slab_900italic.otf create mode 100644 public/assets/font/RF_Rufo/RFRufo-Bold.ttf create mode 100644 public/assets/font/RF_Rufo/RFRufo-Light.ttf create mode 100644 public/assets/font/RF_Rufo/RFRufo-Regular.ttf create mode 100644 public/assets/img/branding/bancoldex-white.svg create mode 100644 public/assets/img/branding/ico_grafico_composicion.svg create mode 100644 public/assets/img/branding/ico_grafico_de_areas.svg create mode 100644 public/assets/img/branding/ico_grafico_de_dispersion.svg create mode 100644 public/assets/img/branding/ico_mapa_colombia.svg create mode 100644 public/assets/img/branding/ico_mapa_de_sectores.svg create mode 100644 public/assets/img/branding/ico_mapa_geografico.svg create mode 100644 public/assets/img/logos/mark_bancoldex.svg create mode 100644 public/assets/img/logos/mark_fundacion.svg create mode 100644 public/assets/img/logos/mark_presidencia.svg diff --git a/app/controllers/index.js b/app/controllers/index.js index c8971473..6f86388e 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -4,7 +4,7 @@ const {computed, get} = Ember; export default Ember.Controller.extend({ i18n: Ember.inject.service(), featureToggle: Ember.inject.service(), - + needs: ['search'], firstYear: computed.alias('featureToggle.first_year'), lastYear: computed.alias('featureToggle.last_year'), agcensusLastYear: computed.alias('featureToggle.year_ranges.agcensus.last_year'), diff --git a/app/index.html b/app/index.html index 2c57d0cb..0f3708ef 100644 --- a/app/index.html +++ b/app/index.html @@ -21,6 +21,9 @@ + + + @@ -28,8 +31,8 @@ {{content-for 'head'}} - - + + @@ -40,6 +43,7 @@ + {{content-for 'body-footer'}} diff --git a/app/locales/en-col/translations.js b/app/locales/en-col/translations.js index 93518540..903184ba 100644 --- a/app/locales/en-col/translations.js +++ b/app/locales/en-col/translations.js @@ -39,17 +39,17 @@ export default { "country.show.dotplot-column": "Departments Across Colombia", "country.show.eci": "0.037", "country.show.economic_structure": "Economic Structure", - "country.show.economic_structure.copy.p1": "With a population of 49.5 million (as of December 2017), Colombia is the third largest country in Latin America. Its total GDP in 2016 was Col$772.4 trillion, or US$253.2 billion at the average exchange rate of 2016 (1 US dollar = 3.050 Colombian pesos). In 2016, income per capita reached Col$17.708.353 or US$5.806 . Colombia\u2019s economic growth rate hits 2% in 2016.", - "country.show.economic_structure.copy.p2": "Business and financial services contribute 20.9% of GDP, making it the largest industry, followed by governmental, communal and personal services (15,4%) and manufacturing activities (11,2%). Bogot\u00e1 D.C., Antioquia and Valle del Cauca represent nearly half of economic activity, contributing 25.7, 13.9 and 9.7% to total GDP, respectively. However, two oil-producing departments \u2013 Casanare and Meta \u2013 boast the highest GDP per capita. The following graphs provide more details.", + "country.show.economic_structure.copy.p1": "With a population of 49.5 million (as of December 2017), Colombia is the third largest country in Latin America. Its total GDP in 2017 was Col$835.1 trillion, or US$283 billion at the average exchange rate of 2017 (1 US dollar = 2.951 Colombian pesos). In 2017, income per capita reached Col$18.828.100 or US$6.380 . Colombia’s economic growth rate hits 1,8% in 2017.", + "country.show.economic_structure.copy.p2": "Bogot\u00e1 D.C., Antioquia and Valle del Cauca represent nearly half of economic activity, contributing 26.4%, 15% and 9% to total GDP to total GDP, respectively. However, two oil-producing departments \u2013 Casanare and Meta \u2013 boast the highest GDP per capita. The following graphs provide more details.", "country.show.employment_wage_occupation": "Formal Employment, Occupations and Wages", "country.show.employment_wage_occupation.copy.p1": "The registries of the PILA, which cover the universe of workers who make contributions to the social security system, indicate that the effective number of year-round workers in the formal sector in 2016 was 8.2 million. Bogot\u00e1 DC, Antioquia and Valle del Cauca generate, respectively 31.7%, 17.1%, and 10.8% of (effective) formal employment.", - "country.show.employment_wage_occupation.copy.p2": "The following graphs present more detailed information on the patterns of formal employment and wages paid based on PILA. Also included is data on vacancies announced and wages offered by occupation, computed from job announcements placed by firms on internet sites in 2014.", + "country.show.employment_wage_occupation.copy.p2": "The following graphs present more detailed information on the patterns of formal employment and wages paid based on PILA. Also included is data on vacancies announced and wages offered by occupation, computed from job announcements placed by firms on internet sites in 2017.", "country.show.export_complexity_possibilities": "Export Complexity and Possibilities", "country.show.export_complexity_possibilities.copy.p1": "The concept of export complexity is similar to that of industry complexity introduced above. It has been found that countries that export products that are relatively complex for their level of economic development tend to grow faster than countries that export relatively simple products. Based on the complexity of its export basket in 2013, Colombia ranks 53rd among 124 countries and is predicted to grow at an annual rate of 3.3% in the period 2013-2023 based on its economic complexity.", "country.show.export_complexity_possibilities.copy.p2": "The \u2018Product Technological Similarity Space\u2019 (or Product Space) shown below is a graphical network representation of technological similarities across all export products, and is based on international export patterns. Each dot or node represents a product; nodes connected by lines require similar capabilities. More connected products are clustered towards the middle of the network, implying that the capabilities they use can be deployed in the production of many other products.", "country.show.export_complexity_possibilities.copy.p3": "The highlighted nodes represent the products that Colombia exports in relatively large amounts (more precisely, with revealed comparative advantage higher than one, see the Glossary). Colors represent product groupings (which match the colors used in the industry technological space shown above). The figure further below and the accompanying table show what export products offer the best possibilities for Colombia, given the capabilities the country already has and how \u2018distant\u2019 are those capabilities to the ones needed for each product.", "country.show.exports": "Exports", - "country.show.exports.copy.p1": "Colombia exported US$32.5 billion in 2016, down from $35.1 billion in 2015 and $57.8 billion in 2016. Its main export partners are the United States, Panama, China and Spain. In 2016, minerals products (of which oil, coal and nickel are the largest items) comprised 51.75% of total merchandise exports, vegetables, foodstuffs and wood contributed 22.57%, and chemical and plastics products totaled 9.78% of exports. The following graphs provide further details.", + "country.show.exports.copy.p1": "Colombia exported US$38.2 billion in 2017. Its main export partners are the United States, Panama, China and Nederland. In 2017, minerals products (of which oil, coal and nickel are the largest items) comprised 56.2% of total merchandise exports, vegetables, foodstuffs and wood contributed 20.78%, and chemical and plastics products totaled 8.43% of exports. The following graphs provide further details.", "country.show.exports_composition_by_department": "Export Composition by Department ({{year}})", "country.show.exports_composition_by_products": "Export Composition by Product ({{year}})", "country.show.gdp": "Col $756,152 T", @@ -61,8 +61,8 @@ export default { "country.show.landuses": "Land Uses in Colombia", "country.show.landuses.area": "Total Area (ha)", "country.show.nonag_farmsize": "4.53 ha", - "country.show.occupation.num_vac": "Total advertised vacancies", - "country.show.population": "48.1 million", + "country.show.occupation.num_vac": "Total advertised vacancies (2017)", + "country.show.population": "49.5 million", "country.show.product_space": "Product Space", "country.show.total": "Total", "ctas.csv": "CSV", @@ -88,7 +88,7 @@ export default { "downloads.map.header": "Map Data", "downloads.occupations_copy": "All data on occupations (wages offered by occupation and industry, and occupational structure by industry) come from job vacancy announcements placed by firms in public and private Internet job sites. Occupations are classified according to the Occupational Information Network Numerical Index (ONET). The data were processed by Jeisson Arley C\u00e1rdenas Rubio, researcher of Universidad del Rosario, Bogot\u00e1, and Jaime Mauricio Monta\u00f1a Doncel, Masters student at the Paris School of Economics.", "downloads.occupations_head": "Occupations data", - "downloads.occupations_row_1": "Job vacancies and wages offered (2014)", + "downloads.occupations_row_1": "Job vacancies and wages offered (2017)", "downloads.other_copy": "DANE (the National Statistical Office) is the source of all data on GDP and population.", "downloads.other_head": "Other data (DANE)", "downloads.other_row_1": "GDP and demographic variables", @@ -562,7 +562,7 @@ export default { "index.profiles_cta": "Read the profile for Antioquia", "index.profiles_head": "Start with our profiles", "index.profiles_subhead": "Just the essentials, presented as a one-page summary", - "index.questions_head": "We\u2019re not a crystal ball, but we can answer a lot of questions", + "index.questions_head": "New 2016 update!
We\u2019re not a crystal ball, but we can answer a lot of questions", "index.questions_subhead": "index.questions_subhead", "index.research_head": "Research featured in", "industry.show.avg_wages": "Average wages ({{year}})", @@ -583,9 +583,9 @@ export default { "location.show.all_departments": "Compared to the other departments", "location.show.all_regions": "Compared to the other locations", "location.show.average_livestock_load": "Livestock Load ", - "location.show.bullet.gdp_grow_rate": "The GDP growth rate in the period {{yearRange}} was {{gdpGrowth}}, compared to 5.3% for Colombia", - "location.show.bullet.gdp_pc": "{{name}} has a GDP per capita of {{lastGdpPerCapita}}, compared to Col$15.1 million for Colombia in 2014.", - "location.show.bullet.last_pop": "The population is {{lastPop}}, compared to 46.3 million in Colombia as a whole in 2014.", + "location.show.bullet.gdp_grow_rate": "Main variables:", + "location.show.bullet.gdp_pc": "{{name}} has a GDP per capita of {{lastGdpPerCapita}}, compared to Col$18.8 million for Colombia in 2017.", + "location.show.bullet.last_pop": "The population is {{lastPop}}, compared to 49.5 million in Colombia as a whole in 2017.", "location.show.eci": "Export complexity", "location.show.employment": "Employment ({{lastYear}})", "location.show.employment_and_wages": "Formal employment and wages", @@ -654,4 +654,4 @@ export default { "search.results_rural": "Rural activities", "table.export_data": "Export Data", "thousands_delimiter": "," -}; \ No newline at end of file +}; diff --git a/app/locales/en-col/translations.original b/app/locales/en-col/translations.original new file mode 100644 index 00000000..7c24733a --- /dev/null +++ b/app/locales/en-col/translations.original @@ -0,0 +1,568 @@ +export default { + "abbr_billion": "B", + "abbr_million": "M", + "abbr_thousand": "K", + "abbr_trillion": "T", + "about.downloads.explanation.p1": "Download the document explaining how each of the complexity variables of Datlas is computed.", + "about.downloads.explanation.title": "Method of calculation of complexity variables", + "about.downloads.locations": "Lists of departments, cities (including metropolitan areas) and municipalities", + "about.glossary": "

See page \"About the data\" for further information about sources, computational methods of the complexity variables and downloadable databases.

Cities

A city is a metropolitan area or a municipality with more than 50,000 inhabitants, 75% of whom reside in the main urban location (cabecera). There are 62 cities (19 metropolitan areas comprising 115 municipalities, plus 43 other cities of just one municipality). The concept of city is relevant because Datlas presents complexity indicators by department and city, but not by municipality.

Complexity

Complexity is the amount and sophistication of knowhow required to produce something. The concept of complexity is central to Datlas because productivity and growth everywhere depend on firms to successfully produce and export goods and services that require skills and knowledge that are diverse and unique. Complexity can be measured by location, by industry or by export product.

Complexity Outlook

Measures the potential of a location to reach higher complexity levels. The measure accounts for the level of complexity of the industries (or exports) along with the distance of how close the productive capabilities that these industries require are to its current industries (or exports). More specifically, it measures the likelihood of different industries (or exports) appearing and the value of their added complexity. Higher outlook values indicate \u201ccloser distance\u201d to more, and more complex, industries (or exports).

Industry complexity outlook values are computed for departments and cities, not for the rest of municipalities. Export complexity outlook values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

DANE

DANE is the National Statistical Office. It is the source of all data on GDP and population used by Datlas.

DIAN

DIAN is the National Tax and Customs Authority. It is the source of all data on exports and imports by department and municipality in Datlas.

Distance

A measure of a location\u2019s ability to enter a specific industry or export, as determined by its current productive capabilities. Also known as a capability distance, the measure accounts for the similarity between the capabilities required by an industry or export and the capabilities already present in a location\u2019s industries or exports. Where a new industry or export requires many of the same capabilities already present in a location\u2019s industries or exports, the product is considered \u201ccloser\u201d or of a shorter \u201cdistance\u201d to acquire the missing capabilities to produce it. New industries or exports of a further distance require larger sets of productive capabilities that do not exist in the location and are therefore riskier ventures or less likely to be sustained. Thus, distance reflects the proportion of the productive knowledge necessary for an industry or export that a location does not have. This is measured by the proximity between industries or exports, or the probability that two industries or exports will both be present in a location, as embodied by the industry space and product space, respectively.

Industry distance values are computed for departments and cities, but not for the rest of municipalities. Export distance values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

Diversity

A measure of how many different types of products a place is able to produce. The production of a good requires a specific set of know-how; therefore, a country\u2019s total diversity is another way of expressing the amount of collective know-how that a place has.

Economic Complexity Index (ECI)

A measure of the sophistication of the productive capabilities of a location based on the diversity and ubiquity of its industries or exports. A location with high complexity produces or exports goods and services that few other locations produce. Highly complex locations tend to be more productive and generate higher wages and incomes. Countries with export baskets more sophisticated than what is expected for their income level (such as China) tend to grow faster than those where the opposite is true (such as Greece).

Industry ECI values are computed for departments and cities, but not for the rest of municipalities. Export ECI values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

Formal employment and wages, and formal employment rate

Formal employment is defined as employment covered by the health social security system and/or the pension system. The self-employed are not included. Formal wages are those reported by firms to that aim. Formal employment reported is the number of formal employees in an average month. Formality rate is defined as formal employment divided by population older than 15. Employment and wage data are taken from PILA. Population data comes from DANE.

Industry Complexity Index (ICI)

A measure of the amount of productive capabilities that an industry requires to operate. The ICI and the Product Complexity Index (PCI) are closely related, but are measured through independent datasets and classification systems as the PCI is computed only for internationally tradable goods, while the ICI is calculated for all industries that generate formal employment, including the public sector. Industries are complex when they require a sophisticated level of productive knowledge, such as many financial services and pharmaceutical industries, with many individuals with distinct specialized knowledge interacting in a large organization. Complexity of the industry is measured by calculating the average diversity of locations that hold the industry and the average ubiquity of the industries that those locations hold. The formal employment data required for these calculations comes from the PILA dataset held by the Ministry of Health.

Industry classification system

Colombia\u2019s industry classification system is a modified version of the International Standard Industrial Classification of All Economic Activities (ISIC). Datlas shows industry information at two- and four-digit level. All industry data come from PILA. Following national accounting conventions, workers hired by temporary employment firms are classified in the labor recruitment industry (7491), not in the industry of the firm where they physically work.

Industry technological similarity space (or industry space)

A visualization that depicts how similar/dissimilar the productive knowledge requirements are between industries. Each dot represents an industry and each link between a pair of industries indicates that they require similar productive capabilities to operate. Colored dots are industries with revealed comparative advantage larger than one. When an industry is selected, the map shows the industries that require similar productive capabilities. An industry with more links offers greater potential for diversification across shared capabilities. Thus the number of links that existing industries share to untapped, complex industries determines the complexity outlook of the location. The Colombian industry similarity space is based on formal employment data by industry and municipality from the PILA dataset of the Ministry of Health.

Metropolitan area

A metropolitan area is a combination of two or more municipalities that are connected through relatively large commuting flows (irrespective of their size or contiguity). A municipality must send at least 10% of its workers as daily commuters to the rest of the metropolitan area municipalities to be included.

Based on this definition there are 19 metropolitan areas in Colombia, which comprise 115 municipalities. The resulting metro areas, which are distinct from official measures, are computed with the methodology of G. Duranton (2013): \u201cDelineating metropolitan areas: Measuring spatial labour market networks through commuting patterns.\u201d Wharton School, University of Pennsylvania.

Occupations

Occupations are classified according to the Occupational Information Network Numerical Index (ONET). All data on occupations (wages offered by occupation, occupational structure by industry, and education level required by occupation) come from job vacancy announcements placed by firms in public and private Internet job sites during 2014. The data were processed by Jeisson Arley C\u00e1rdenas Rubio (Universidad del Rosario, Bogot\u00e1) and Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics).

Opportunity gain

Measures how much a location could benefit by developing a particular industry (or export). Also known also as \u201cstrategic value,\u201d the measure accounts for the distances to all other industries (or exports) that a location does not currently produce with revealed comparative advantage larger than one and their respective complexities. Opportunity gain quantifies how a new industry (or export) can open up links to more, and more complex, products. Thus, the measure calculates the value of an industry (or export) based on the paths it opens to industrial expansion into more complex sectors.

Industry opportunity gain values are computed for departments and cities, but not for the rest of municipalities. Export opportunity gain values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

PILA

PILA is the Integrated Report of Social Security Contributions, managed by the Ministry of Health. It is the main source of industry data. It contains information on formal employment, wages and number of firms by municipality and industry.

Product Complexity Index (PCI)

Measures the amount of productive capabilities required to manufacture a product. Complex exports, which include many chemical and machinery products, require a sophisticated level, and diverse base, of productive knowledge, with many individuals with distinct specialized knowledge interacting in a large organization. This contrasts with low complexity exports, like coffee, which require much less basic productive knowledge that can be found in a family-run business. UN Comtrade data are used to compute the complexity of export products.

Product technological similarity space (or product space)

A visualization that depicts how similar/dissimilar the productive knowledge requirements are between export products. Each dot represents a product and each link between a pair of products indicates that the two products require similar capabilities in their production. Colored dots are exports with revealed comparative advantage larger than one. When a product is selected, the map shows the products that require similar productive capabilities. A product with more links offers greater potential for diversification across shared capabilities. Thus the number of links that existing products share to complex products that a location does not currently produce determines the complexity outlook of its exports.

The shape of the space is based on international trade data for 192 countries over 50 years. See The International Atlas of Economic Complexity.

Revealed Comparative Advantage (RCA)

Measures the relative size of an industry or an export product in a location. RCA is not a measure of productive efficiency or competitiveness, but just a \u201clocation quotient\u201d, as is often referred to. RCA is computed as the ratio between an industry\u2019s share of total formal employment in a location and the share of that industry\u2019s total formal employment in Colombia as a whole. For instance, if the chemical industry generates10% of a city\u2019s employment, while it generates only 1% of total employment in Colombia, the RCA of the industry in the city is 10. For exports, RCA is the ratio between the share of the export in the export basket of the location and its share in total world trade. If this ratio is larger than 1, the location is said to have revealed comparative advantage in the industry or export. For instance, if a department\u2019s coffee exports are 30% of its exports but coffee accounts for just 0.3% of world trade, the department\u2019s RCA in coffee is 100.

Ubiquity

A measure of the number of places that are able to make a product.

", + "about.glossary_name": "Glossary", + "about.project_description.cid.header": "CID and the Growth Lab", + "about.project_description.cid.p1": "This project was developed by the Center for International Development at Harvard University, under the leadership of Professor Ricardo Hausmann.", + "about.project_description.cid.p2": "The Center for International Development (CID) at Harvard University works to advance the understanding of development challenges and offer viable, inclusive solutions to problems of global poverty. The Growth Lab is one of CID\u2019s core research programs.", + "about.project_description.contact.header": "Contact information", + "about.project_description.contact.link": "Datlascolombia@bancoldex.com", + "about.project_description.founder1.header": "Banc\u00f3ldex", + "about.project_description.founder1.p": "Banc\u00f3ldex is the entrepreneurial development bank of Colombia. It is committed to developing financial and non-financial instruments geared to enhance the competitiveness, productivity, growth and internationalization of Colombian enterprises. Leveraging on its unique relational equity and market position, Banc\u00f3ldex manages financial assets, develops access solutions to financing and deploys innovative capital solutions, to foster and accelerate company growth. Besides offering traditional loans, Banc\u00f3ldex has been appointed to implement several development program such as iNNpulsa Colombia, iNNpulsa Mipyme, Banca de las Oportunidades, and the Productive Transformation Program, all of them, in an effort to consolidate an integrated offer to promote Colombian business environment and overall competitiveness. Datlas elaborates on the work that Banc\u00f3ldex has been undertaking through its Productive Transformation Program and INNpulsa Colombia initiatives.", + "about.project_description.founder2.header": "Mario Santo Domingo Foundation", + "about.project_description.founder2.p": "Created in 1953, the Mario Santo Domingo Foundation (FMSD) is a non-profit organization dedicated to implementing community development programs in Colombia. FMSD decided to concentrate its main efforts in the construction of affordable housing within a Community Development Model, named Integral Development of Sustainable Communities (DINCS in its Spanish initials) and designed by the FMSD as a response to the large housing deficit in Colombia. Through this program, the FMSD delivers social support for families, and social infrastructure and urban development for the less privileged. FMSD also supports entrepreneurs in the Northern region of Colombia and in Bogot\u00e1 through its Microfinance Unit which provides training and financial services such as microcredit. More than 130,000 entrepreneurs have received loans from the Foundation since its launch in 1984. The FMSD works also to identify alliances and synergies between the public and private sectors in critical social development areas such as early childhood, environmental sustainability, disaster attention, education and health.", + "about.project_description.founders.header": "Founding Partners", + "about.project_description.founders.p": "This project is funded by Banc\u00f3ldex and Fundaci\u00f3n Mario Santo Domingo ", + "about.project_description.github": "See our code", + "about.project_description.intro.p1": "In Colombia, income gaps between regions are huge and have been growing: new job opportunities are increasingly concentrated in the metropolitan areas of Bogot\u00e1, Medell\u00edn and Cali, as well as a few places where oil and other minerals are extracted. The average income of residents of Bogot\u00e1 is four times that of Colombians living in the 12 poorest departments", + "about.project_description.intro.p2": "Datlas is a diagnostic tool that firms, investors and policymakers can use to improve the productivity of departments, cities and municipalities. It maps the geographical distribution of Colombia\u2019s productive activities and employment by department, metropolitan area and municipality, and identifies exports and industries of potential to increase economic complexity and accelerate growth.", + "about.project_description.intro.p3": "Economic complexity is a measure of the amount of productive capabilities, or knowhow, that a country or a city has. Products are vehicles for knowledge. To make a shirt, one must design it, produce the fabric, cut it, sew it, pack it, market it and distribute it. For a country to produce shirts, it needs people who have expertise in each of these areas. Each of these tasks involves many more capabilities than any one person can master. Only by combining know-how from different people can any one product be made. The road to economic development involves increasing what a society knows how to do. Countries with more productive capabilities can make a greater diversity of products. Economic growth occurs when countries develop the capabilities and productive knowledge to produce more, and more complex, products.", + "about.project_description.intro.p4": "This conceptual approach, which has been applied at the international level in The Atlas of Economic Complexity, is now used in this online tool to investigate export and industry possibilities at the sub-national level in Colombia.", + "about.project_description.letter.header": "Sign up for our Newsletter", + "about.project_description.letter.p": "Sign up for CID\u2019s Research Newsletter to keep up-to-date with related breakthrough research and practical tools, including updates to this site http://www.hks.harvard.edu/centers/cid/news-events/subscribe ", + "about.project_description.team.header": "Academic and Technical Team", + "about.project_description.team.p": "Academic team at Harvard\u2019s CID: Ricardo Hausmann (director), Eduardo Lora (coordinator), Tim Cheston, Andr\u00e9s G\u00f3mez-Li\u00e9vano, Jos\u00e9 Ram\u00f3n Morales, Neave O\u2019Clery and Juan T\u00e9llez. Programming and visualization team at Harvard\u2019s CID: Greg Shapiro (coordinator), Mali Akmanalp, Katy Harris, Quinn Lee, Romain Vuillemot, and Gus Wezerek. Statistical advisor in Colombia: Marcela Eslava (Universidad de los Andes). Compilation and processing of job vacancies data in Colombia: Jeisson Arley C\u00e1rdenas Rubio (Universidad del Rosario, Bogot\u00e1) and Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics).", + "about.project_description_name": "About", + "census_year": "2014", + "country.show.ag_farmsize": "45.99 ha", + "country.show.dotplot-column": "Departments Across Colombia", + "country.show.eci": "0.037", + "country.show.economic_structure": "Economic Structure", + "country.show.economic_structure.copy.p1": "With a population of 48.1 million (as of May 2015), Colombia is the third largest country in Latin America. Its total GDP in 2014 was Col$756.1 trillion, or US$377.9 billion at the average exchange rate of 2014 (1 US dollar = 2000.6 Colombian pesos). In 2014, income per capita reached Col$15,864,953 or US$7,930. Yearly economic growth since 2008 has averaged 4.3% (or 3.1% in per capita terms).", + "country.show.economic_structure.copy.p2": "Business and financial services contribute 18.8% of GDP, making it the largest industry, followed by governmental, communal and personal services (16.5%) and manufacturing activities (11.2%). Bogot\u00e1 D.C., Antioquia and Valle del Cauca represent nearly half of economic activity, contributing 24.7, 13.1 and 9.2% to total GDP, respectively. However, two oil-producing departments \u2013 Casanare and Meta \u2013 boast the highest GDP per capita. The following graphs provide more details.", + "country.show.employment_wage_occupation": "Formal Employment, Occupations and Wages", + "country.show.employment_wage_occupation.copy.p1": "In 2014, approximately 21.6 million Colombians were occupied in either a formal or an informal job, increasing slightly over 2013, at 21.1 million. The registries of the PILA, which cover the universe of workers who make contributions to the social security system, indicate that 13.3 million workers were occupied for some period in a formal job in 2013. Taking into account the number of months occupied, the effective number of year-round workers in the formal sector in 2013 was 6.7 million. Bogot\u00e1 DC, Antioquia and Valle del Cauca generate, respectively 32.7, 16.7, and 10.7% of (effective) formal employment.", + "country.show.employment_wage_occupation.copy.p2": "The following graphs present more detailed information on the patterns of formal employment and wages paid based on PILA. Also included is data on vacancies announced and wages offered by occupation, computed from job announcements placed by firms on internet sites in 2014.", + "country.show.export_complexity_possibilities": "Export Complexity and Possibilities", + "country.show.export_complexity_possibilities.copy.p1": "The concept of export complexity is similar to that of industry complexity introduced above. It has been found that countries that export products that are relatively complex for their level of economic development tend to grow faster than countries that export relatively simple products. Based on the complexity of its export basket in 2013, Colombia ranks 53rd among 124 countries and is predicted to grow at an annual rate of 3.3% in the period 2013-2023 based on its economic complexity.", + "country.show.export_complexity_possibilities.copy.p2": "The \u2018Product Technological Similarity Space\u2019 (or Product Space) shown below is a graphical network representation of technological similarities across all export products, and is based on international export patterns. Each dot or node represents a product; nodes connected by lines require similar capabilities. More connected products are clustered towards the middle of the network, implying that the capabilities they use can be deployed in the production of many other products.", + "country.show.export_complexity_possibilities.copy.p3": "The highlighted nodes represent the products that Colombia exports in relatively large amounts (more precisely, with revealed comparative advantage higher than one, see the Glossary). Colors represent product groupings (which match the colors used in the industry technological space shown above). The figure further below and the accompanying table show what export products offer the best possibilities for Colombia, given the capabilities the country already has and how \u2018distant\u2019 are those capabilities to the ones needed for each product.", + "country.show.exports": "Exports", + "country.show.exports.copy.p1": "Colombia exported US$54.8 billion in 2014, down from $58.8 billion in 2013 and $60.1 billion in 2012. Its main export partners are the United States, Venezuela, Ecuador and Peru. In 2014, mining products (of which oil, coal and nickel are the largest items) comprised 59.3% of total merchandise exports, manufactured goods contributed 35.6%, and agricultural products totaled 4.6% of exports. The following graphs provide further details.", + "country.show.exports_composition_by_department": "Export Composition by Department ({{year}})", + "country.show.exports_composition_by_products": "Export Composition by Product ({{year}})", + "country.show.gdp": "Col $756,152 T", + "country.show.gdp_per_capita": "Col $15.864.953", + "country.show.industry_complex": "Industry Complexity", + "country.show.industry_complex.copy.p1": "Industry complexity is a measure of the range of capabilities, skills or know-how required by an industry. Industries such as chemicals and machinery are said to be highly complex, because they require a sophisticated level of productive knowledge likely to be present only in large organizations where a number of highly specialized individuals interact. Conversely, industries such as retail trade or restaurants require only a basic level of know-how which may be found at a family-run business. More complex industries contribute to raising productivity and income per- capita. Departments and cities with more complex industries have a more diversified industrial base and tend to create more formal employment.", + "country.show.industry_complex.copy.p2": "The 'IndustryTechnological Similarity Space\u2019 (or Industry Space) shown below is a graphical representation of the similarity between the capabilities and know-how required by pairs of industries. Each dot or node represents an industry; nodes connected by lines require similar capabilities. More connected industries use capabilities that can be deployed in many other industries. Colors represent industry groupings.", + "country.show.industry_space": "Industry Space", + "country.show.nonag_farmsize": "4.53 ha", + "country.show.occupation.num_vac": "Total advertised vacancies (2014)", + "country.show.population": "48.1 million", + "country.show.product_space": "Product Space", + "country.show.total": "Total", + "ctas.csv": "CSV", + "ctas.download": "Download this data", + "ctas.embed": "Embed", + "ctas.excel": "Excel", + "ctas.export": "Export", + "ctas.facebook": "Facebook", + "ctas.pdf": "PDF", + "ctas.png": "PNG", + "ctas.share": "Share", + "ctas.twitter": "Twitter", + "currency": "Col$", + "decimal_delmiter": ".", + "downloads.cta_download": "Download", + "downloads.cta_na": "Not available", + "downloads.head": "About the Data", + "downloads.industry_copy": "PILA (the Integrated Report of Social Security Contributions), managed by the Ministry of Health) is the main source of industry data. It contains information on formal employment, wages and number of firms by municipality and industry. Colombia\u2019s industry classification is a modified version of the International Standard Industrial Classification of All Economic Activities (ISIC). The list of industries can be found in the downloadable databases for industries. The list of industries in the ISIC which are not included in the industry space (for reasons explained in \"Calculation Methods\") can be downloaded here.", + "downloads.industry_head": "Industry data (PILA)", + "downloads.industry_row_1": "Employment, wages, number of firms and complexity indicators ({{yearRange}})", + "downloads.list_of_cities.header": "Lists of departments, cities and municipalities", + "downloads.map.cell": "Map boundary and geo data is from GeoFabrik.de, based on OpenStreetMap data", + "downloads.map.header": "Map Data", + "downloads.occupations_copy": "All data on occupations (wages offered by occupation and industry, and occupational structure by industry) come from job vacancy announcements placed by firms in public and private Internet job sites. Occupations are classified according to the Occupational Information Network Numerical Index (ONET). The data were processed by Jeisson Arley C\u00e1rdenas Rubio, researcher of Universidad del Rosario, Bogot\u00e1, and Jaime Mauricio Monta\u00f1a Doncel, Masters student at the Paris School of Economics.", + "downloads.occupations_head": "Occupations data", + "downloads.occupations_row_1": "Job vacancies and wages offered (2014)", + "downloads.other_copy": "DANE (the National Statistical Office) is the source of all data on GDP and population.", + "downloads.other_head": "Other data (DANE)", + "downloads.other_row_1": "GDP and demographic variables", + "downloads.thead_departments": "Departments", + "downloads.thead_met": "Cities", + "downloads.thead_muni": "Municipalities", + "downloads.thead_national": "National", + "downloads.trade_copy": "The source of all data on exports and imports by department and municipality is DIAN\u2019s Customs Data (DIAN is the National Tax and Customs Authority). Colombian Customs uses the product classification NANDINA, which matches the Harmonized System (HS) classification at the 6-digit level. We then standardize that to HS 1992 in order to fix any version inconsistencies across the years in order to be able to view the data over time. The list of products can be found in the downloadable databases for exports and imports.

The origin of an export is established in two stages. First, the department of origin is defined as the last place of processing, assembly or packaging, according with DIAN. Then, export values are distributed among municipalities according with the composition of employment of the exporting firm based on PILA (for firms without this information the value is assigned to the capital of department). In the case of petroleum oil (2709) and gas (2711), total export values were distributed by origin according to production by municipality (sources: Hydrocarbons National Agency and Colombian Petroleum Association), and in the case of oil refined products (2710), according to value added by municipality (industries 2231, 2322 y 2320 SIIC revision 3, Annual Manufacturing Survey, DANE).

\u00a0

Export totals by product may not correspond to official data because the following are excluded: (a) exports lacking information on the industry of the exporter and/or the department or municipality of origin, and (b) exports for which DIAN reports free zones as the place of destination; while the following are included: (c) exports from free zones, which DIAN does not include in those export totals.

In a similar fashion, import totals by product may not correspond to official data because the following are excluded: (a) imports lacking information on the department or municipality of destination, and (b) imports for which DIAN reports free zones as the place of origin; while the following are included: (c) imports done by free zones, which DIAN does not include in those import totals.

A file that describes the correspondence between the HS version used by DIAN and HS 1992 can be found here.

Included here is a file with the list of products in the Harmonized System that are not represented in the product space (for reasons explained in \"Calculation Methods\").", + "downloads.trade_head": "Trade data (DIAN)", + "downloads.trade_row_1": "Exports, imports and export complexity indicators ({{yearRange}})", + "downloads.trade_row_2": "Exports and imports with country of destination and origin ({{yearRange}})", + "first_year": "2008", + "general.export_and_import": "Products", + "general.geo": "Geographic map", + "general.glossary": "Glossary", + "general.industries": "Industries", + "general.industry": "industry", + "general.location": "location", + "general.locations": "Locations", + "general.multiples": "Area charts", + "general.occupation": "occupation", + "general.occupations": "Occupations", + "general.product": "product", + "general.scatter": "Scatterplot", + "general.similarity": "Industry Space", + "general.total": "Total", + "general.treemap": "Treemap", + "geomap.center": "4.6,-74.06", + "glossary.head": "Glossary", + "graph_builder.builder_mod_header.agproduct.departments.land_harvested": "Land Harvested (ha)", + "graph_builder.builder_mod_header.agproduct.departments.land_sown": "Land Sown (ha)", + "graph_builder.builder_mod_header.agproduct.departments.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.agproduct.municipalities.land_harvested": "Land Harvested (ha)", + "graph_builder.builder_mod_header.agproduct.municipalities.land_sown": "Land Sown (ha)", + "graph_builder.builder_mod_header.agproduct.municipalities.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.industry.cities.employment": "Total employment", + "graph_builder.builder_mod_header.industry.cities.wage_avg": "Average monthly wages, Col$", + "graph_builder.builder_mod_header.industry.cities.wages": "Total wages, Col$", + "graph_builder.builder_mod_header.industry.departments.employment": "Total employment", + "graph_builder.builder_mod_header.industry.departments.wage_avg": "Average monthly wages, Col$", + "graph_builder.builder_mod_header.industry.departments.wages": "Total wages, Col$", + "graph_builder.builder_mod_header.industry.locations.employment": "Total employment", + "graph_builder.builder_mod_header.industry.locations.wage_avg": "Average monthly wages, Col$", + "graph_builder.builder_mod_header.industry.locations.wages": "Total wages, Col$", + "graph_builder.builder_mod_header.industry.occupations.num_vacancies": "Total advertised vacancies", + "graph_builder.builder_mod_header.landUse.departments.area": "Total Area", + "graph_builder.builder_mod_header.landUse.municipalities.area": "Total Area ", + "graph_builder.builder_mod_header.location.agproducts.land_harvested": "Land harvested (hectares)", + "graph_builder.builder_mod_header.location.agproducts.land_sown": "Land sown (hectares)", + "graph_builder.builder_mod_header.location.agproducts.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.location.farmtypes.num_farms": "Number of farms", + "graph_builder.builder_mod_header.location.industries.employment": "Total employment", + "graph_builder.builder_mod_header.location.industries.scatter": "Complexity,distance and opportunity gain of potential industries", + "graph_builder.builder_mod_header.location.industries.similarity": "Industries with revealed comparative advantage >1 (colored) and <1 (grey)", + "graph_builder.builder_mod_header.location.industries.wages": "Total wages", + "graph_builder.builder_mod_header.location.landUses.area": "Total Area ", + "graph_builder.builder_mod_header.location.livestock.num_farms": "Number of livestock farms", + "graph_builder.builder_mod_header.location.livestock.num_livestock": "Number of livestock", + "graph_builder.builder_mod_header.location.partners.export_value": "Total exports", + "graph_builder.builder_mod_header.location.partners.import_value": "Total imports", + "graph_builder.builder_mod_header.location.products.export_value": "Total exports", + "graph_builder.builder_mod_header.location.products.import_value": "Total imports", + "graph_builder.builder_mod_header.location.products.scatter": "Complexity, distance and opportunity gain of potential export products", + "graph_builder.builder_mod_header.location.products.similarity": "Export products with revealed comparative advantage >1 (colored) and <1 (grey)", + "graph_builder.builder_mod_header.product.cities.export_value": "Total Exports", + "graph_builder.builder_mod_header.product.cities.import_value": "Total Imports", + "graph_builder.builder_mod_header.product.departments.export_value": "Total Exports", + "graph_builder.builder_mod_header.product.departments.import_value": "Total Imports", + "graph_builder.builder_mod_header.product.partners.export_value": "Total exports", + "graph_builder.builder_mod_header.product.partners.import_value": "Total imports", + "graph_builder.builder_nav.header": "More graphs for this {{entity}}", + "graph_builder.builder_nav.intro": "Select a question to see the corresponding graph. If the question has missing parameters ({{icon}}) , you\u2019ll fill those in when you click.", + "graph_builder.builder_questions.city": "Questions: Cities", + "graph_builder.builder_questions.department": "Questions: Departments", + "graph_builder.builder_questions.employment": "Questions: Employment", + "graph_builder.builder_questions.export": "Questions: Exports", + "graph_builder.builder_questions.import": "Questions: Imports", + "graph_builder.builder_questions.industry": "Questions: Industries", + "graph_builder.builder_questions.landUse": "Questions: Land Use ", + "graph_builder.builder_questions.location": "Questions: Locations", + "graph_builder.builder_questions.occupation": "Questions: Occupations", + "graph_builder.builder_questions.partner": "Questions: Partners", + "graph_builder.builder_questions.product": "Questions: Products", + "graph_builder.builder_questions.wage": "Questions: Total Wages", + "graph_builder.change_graph.geo_description": "Map the data", + "graph_builder.change_graph.label": "Change graph", + "graph_builder.change_graph.multiples_description": "Compare growth over time", + "graph_builder.change_graph.scatter_description": "Plot complexity and distance", + "graph_builder.change_graph.similarity_description": "Show revealed comparative advantages", + "graph_builder.change_graph.treemap_description": "See composition at different levels", + "graph_builder.change_graph.unavailable": "Graph is unavailable for this question", + "graph_builder.download.agproduct": "Agricultural Product", + "graph_builder.download.area": "Area", + "graph_builder.download.average_wages": "Avg. monthly wage, Col$", + "graph_builder.download.avg_wage": "Avg. monthly wage, Col$", + "graph_builder.download.code": "Code", + "graph_builder.download.cog": "Opportunity gain", + "graph_builder.download.complexity": "Complexity", + "graph_builder.download.distance": "Distance", + "graph_builder.download.eci": "Export complexity", + "graph_builder.download.employment": "Employment", + "graph_builder.download.employment_growth": "Employment growth rate ({{yearRange}})", + "graph_builder.download.export": "Export", + "graph_builder.download.export_num_plants": "Firm number", + "graph_builder.download.export_rca": "Revealed comparative advantage", + "graph_builder.download.export_value": "Exports, USD", + "graph_builder.download.farmtype": "Farm Type", + "graph_builder.download.gdp_pc_real": "GDP per Capita, Col $", + "graph_builder.download.gdp_real": "GDP, Col $", + "graph_builder.download.import_value": "Imports, USD", + "graph_builder.download.industry": "Industry", + "graph_builder.download.industry_eci": "Industry complexity", + "graph_builder.download.land_harvested": "Land harvested (ha)", + "graph_builder.download.land_sown": "Land sown (ha)", + "graph_builder.download.land_use": "Land Use", + "graph_builder.download.less_than_5": "Less than 5", + "graph_builder.download.livestock": "Livestock", + "graph_builder.download.location": "Location", + "graph_builder.download.monthly_wages": "Avg. monthly wage, Col$", + "graph_builder.download.name": "Name", + "graph_builder.download.num_establishments": "Firm number", + "graph_builder.download.num_farms": "Number of farms", + "graph_builder.download.num_livestock": "Number of livestock", + "graph_builder.download.num_vacancies": "Vacancies", + "graph_builder.download.occupation": "Occupation", + "graph_builder.download.parent": "Parent", + "graph_builder.download.population": "Population", + "graph_builder.download.production_tons": "Production (tons)", + "graph_builder.download.rca": "Revealed comparative advantage", + "graph_builder.download.read_more": "Unfamiliar with any of the indicators above? Look them up in the", + "graph_builder.download.wages": "Total wages, Col$", + "graph_builder.download.year": "Year", + "graph_builder.download.yield_index": "Yield Index", + "graph_builder.download.yield_ratio": "Yield (tons/ha)", + "graph_builder.explanation": "Explanation", + "graph_builder.explanation.agproduct.departments.land_harvested": "Shows the composition of locations that harvest this agricultural product, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.departments.land_sown": "Shows the composition of locations that sow this agricultural product, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.departments.production_tons": "Shows the composition of locations that produce this agricultural product, by tons produced. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.land_harvested": "Shows the composition of locations that harvest this agricultural product, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.land_sown": "Shows the composition of locations that sow this agricultural product, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.production_tons": "Shows the composition of locations that produce this agricultural product, by tons produced. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.hide": "Hide", + "graph_builder.explanation.industry.cities.employment": "Shows the composition by department of formal employment in the industry. Source: PILA.", + "graph_builder.explanation.industry.cities.wages": "Shows the composition by department of total wages paid by the industry. Source: PILA.", + "graph_builder.explanation.industry.departments.employment": "Shows the composition by department of formal employment in the industry. Source: PILA.", + "graph_builder.explanation.industry.departments.wages": "Shows the composition by department of total wages paid by the industry. Source: PILA.", + "graph_builder.explanation.industry.occupations.num_vacancies": "Shows the composition of vacancies announced in Internet sites and wages offered.", + "graph_builder.explanation.landUse.departments.area": "Shows the composition of locations that use land in this specific way, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.landUse.municipalities.area": "Shows the composition of locations that use land in this specific way, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.agproducts.land_harvested": "Shows the composition of agricultural products of this location, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.land_sown": "Shows the composition of agricultural products of this location, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.production_tons": "Shows the composition of agricultural products of this location, by weight. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.farmtypes.num_farms": "Shows the composition of farms in this location, by type of farm. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.industries.employment": "Shows the industry composition of formal empoyment in the department. Source: PILA.", + "graph_builder.explanation.location.industries.scatter": "Dots represent industries. Upon selecting a dot, a display shows the industry name and its revealed comparative advantage in the location. Colors represent industry groups (see the table). The vertical axis is the Industry Complexity Index and the horizontal axis is the Distance from the existing industries, where shorter distances mean that the location has more of the knowhow needed to develop the industry. The size of the dots is proportional to the Opportunity Gain of the industry for the department, namely the potential that the industry offers for the department to acquire new capabilities that may help to develop other industries. The more interesting industries are the ones located at the top left, especially if the dots are large. Source: calculations by CID based on PILA data. (The glossary offers more detailed explanations of the concepts). ", + "graph_builder.explanation.location.industries.similarity": "The industry technological similarity space (or industry space) shows how similar is the knowhow required by any pair of industries. Each dot represents an industry. Dots connected with a line represent industries that require similar knowhow. Dots colored are industries with revealed comparative advantage (RCA) higher than one in the department or city. Each color corresponds to an industry group (see table). Upon selecting a dot, a display shows the industry name, its RCA and its links to other industries. Source: calculations by CID based on PILA data. (The glossary offers more detailed explanations of the concepts).", + "graph_builder.explanation.location.industries.wages": "Shows the industry composition of total wages paid in the department or city. Source: PILA.", + "graph_builder.explanation.location.landUses.area": "Shows the composition of land uses in this location, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.livestock.num_farms": "Shows the composition of livestock types of this location, by number of farms. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.livestock.num_livestock": "Shows the composition of livestock types of this location, by number of livestock. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.partners.export_value": "Shows the destination country composition of exports of this place, nested by world regions. Source: DIAN.", + "graph_builder.explanation.location.partners.import_value": "Shows the countries from which this location imports products, nested by world regions. Source: DIAN.", + "graph_builder.explanation.location.products.export_value": "Shows the product composition of exports of the department or city. Colors represent product groups (see table). Source: DIAN.", + "graph_builder.explanation.location.products.import_value": "Shows the product composition of imports of the department or city. Colors represent product groups (see table). Source: DIAN.", + "graph_builder.explanation.location.products.scatter": "Dots represent export products. Upon selecting a dot, a display shows the product name and its revealed comparative advantage in the department or city. Colors represent product groups (see the table). The vertical axis is the Product Complexity Index and the horizontal axis is the Distance from the existing exports, where shorter distances mean that the location has more of the knowhow needed to export the product. The dashed line is the average Index of Economic Complexity of the place. The size of the dots is proportional to the Opportunity Gain of the export for the department or city, namely the potential that exporting the product offers for the department or city to acquire new capabilities that may help to export other products. The more interesting export products are the ones located at the top left, especially if the dots are large. Source: calculations by CID based on DIAN data. (The glossary offers more detailed explanations of the concepts). ", + "graph_builder.explanation.location.products.similarity": "The product technological similarity space (or product space) shows how similar is the knowhow required by any pair of export products. Each dot represents an export product. Dots connected with a line represent products that require similar knowhow. Dots colored are products with revealed comparative advantage (RCA) higher than one in the department or city. Each color corresponds to an export group (see table). Upon selecting a dot, a display shows the product name, its RCA and its links to other products. Source: calculations by CID based on DIAN data. (The glossary offers more detailed explanations of the concepts).", + "graph_builder.explanation.product.cities.export_value": "Shows the composition by city of the product exports. Source: DIAN.", + "graph_builder.explanation.product.cities.import_value": "Shows the composition by city of the product imports. Source: DIAN.", + "graph_builder.explanation.product.departments.export_value": "Shows the composition by department of the product exports. Source: DIAN.", + "graph_builder.explanation.product.departments.import_value": "Shows the composition by department of the product imports. Source: DIAN.", + "graph_builder.explanation.product.partners.export_value": "Shows where Colombia exports this product to, nested by world regions. Source: DIAN.", + "graph_builder.explanation.product.partners.import_value": "Shows where Colombia imports this product from, nested by world regions. Source: DIAN.", + "graph_builder.explanation.show": "Show", + "graph_builder.multiples.show_all": "Show All", + "graph_builder.page_title.agproduct.departments.land_harvested": "What departments harvest this agricultural product?", + "graph_builder.page_title.agproduct.departments.land_sown": "What departments sow this agricultural product?", + "graph_builder.page_title.agproduct.departments.production_tons": "What departments produce this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.land_harvested": "What municipalities harvest this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.land_sown": "What municipalities sow this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.production_tons": "What municipalities produce this agricultural product?", + "graph_builder.page_title.industry.cities.employment": "What cities in Colombia does this industry employ the most people?", + "graph_builder.page_title.industry.cities.wages": "What cities in Colombia does this industry pay the highest total wages?", + "graph_builder.page_title.industry.departments.employment": "What departments in Colombia does this industry employ the most people?", + "graph_builder.page_title.industry.departments.wages": "What departments in Colombia does this industry pay the highest total wages?", + "graph_builder.page_title.industry.occupations.num_vacancies": "What occupations does this industry employ?", + "graph_builder.page_title.landUse.departments.area": "Which departments have this type of land use?", + "graph_builder.page_title.landUse.municipalities.area": "Which municipalities have this type of land use?", + "graph_builder.page_title.location.agproducts.land_harvested.country": "What agricultural products are harvested in Colombia?", + "graph_builder.page_title.location.agproducts.land_harvested.department": "What agricultural products are harvested in this department?", + "graph_builder.page_title.location.agproducts.land_harvested.municipality": "What agricultural products are harvested in this municipality?", + "graph_builder.page_title.location.agproducts.land_sown.country": "What agricultural products are planted in Colombia?", + "graph_builder.page_title.location.agproducts.land_sown.department": "What agricultural products are planted in this department?", + "graph_builder.page_title.location.agproducts.land_sown.municipality": "What agricultural products are planted in this municipality?", + "graph_builder.page_title.location.agproducts.production_tons.country": "What agricultural products are produced in Colombia?", + "graph_builder.page_title.location.agproducts.production_tons.department": "What agricultural products are produced in this department?", + "graph_builder.page_title.location.agproducts.production_tons.municipality": "What agricultural products are produced in this municipality?", + "graph_builder.page_title.location.destination_by_product.export_value.department": "Where does this department export oil to?", + "graph_builder.page_title.location.destination_by_product.import_value.department": "Where does this department import cars from?", + "graph_builder.page_title.location.farmtypes.num_farms.country": "What types of farms are there in Colombia?", + "graph_builder.page_title.location.farmtypes.num_farms.department": "What types of farms are there in this department?", + "graph_builder.page_title.location.farmtypes.num_farms.municipality": "What types of farms are there in this municipality?", + "graph_builder.page_title.location.industries.employment.country": "What industries in Colombia employ the most people?", + "graph_builder.page_title.location.industries.employment.department": "What industries in this department employ the most people?", + "graph_builder.page_title.location.industries.employment.msa": "What industries in this city employ the most people?", + "graph_builder.page_title.location.industries.employment.municipality": "What industries in this municipality employ the most people?", + "graph_builder.page_title.location.industries.scatter.country": "What relatively complex industries have the most possibilities for Colombia?", + "graph_builder.page_title.location.industries.scatter.department": "What relatively complex industries have the most possibilities for this department?", + "graph_builder.page_title.location.industries.scatter.msa": "What relatively complex industries have the most possibilities for this city?", + "graph_builder.page_title.location.industries.scatter.municipality": "What relatively complex industries have the most possibilities for this municipality?", + "graph_builder.page_title.location.industries.similarity.country": "Where is Colombia in the industry space?", + "graph_builder.page_title.location.industries.similarity.department": "Where is this department in the industry space?", + "graph_builder.page_title.location.industries.similarity.msa": "Where is this city in the industry space?", + "graph_builder.page_title.location.industries.similarity.municipality": "Where is this municipality in the industry space?", + "graph_builder.page_title.location.industries.wages.country": "What industries in Colombia are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.department": "What industries in this department are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.msa": "What industries in this city are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.municipality": "What industries in this municipality are the largest by total wages?", + "graph_builder.page_title.location.landUses.area.country": "Which types of land uses are in Colombia?", + "graph_builder.page_title.location.landUses.area.department": "Which types of land uses are in this department?", + "graph_builder.page_title.location.landUses.area.municipality": "Which types of land uses are in this municipality?", + "graph_builder.page_title.location.livestock.num_farms.country": "What kinds of livestock farms does Colombia have?", + "graph_builder.page_title.location.livestock.num_farms.department": "What kinds of livestock farms does this department have?", + "graph_builder.page_title.location.livestock.num_farms.municipality": "What kinds of livestock farms does this municipality have?", + "graph_builder.page_title.location.livestock.num_livestock.country": "What kinds of livestock does Colombia have?", + "graph_builder.page_title.location.livestock.num_livestock.department": "What kinds of livestock does this department have?", + "graph_builder.page_title.location.livestock.num_livestock.municipality": "What kinds of livestock does this municipality have?", + "graph_builder.page_title.location.partners.export_value.country": "What countries does Colombia export to?", + "graph_builder.page_title.location.partners.export_value.department": "What countries does this department export to?", + "graph_builder.page_title.location.partners.export_value.msa": "What countries does this city export to?", + "graph_builder.page_title.location.partners.export_value.municipality": "What countries does this municipality export to?", + "graph_builder.page_title.location.partners.import_value.country": "What countries does Colombia import from?", + "graph_builder.page_title.location.partners.import_value.department": "What countries does this department import from?", + "graph_builder.page_title.location.partners.import_value.msa": "What countries does this city import from?", + "graph_builder.page_title.location.partners.import_value.municipality": "What countries does this municipality import from?", + "graph_builder.page_title.location.products.export_value.country": "What products does Colombia export?", + "graph_builder.page_title.location.products.export_value.department": "What products does this department export?", + "graph_builder.page_title.location.products.export_value.msa": "What products does this city export?", + "graph_builder.page_title.location.products.export_value.municipality": "What products does this municipality export?", + "graph_builder.page_title.location.products.import_value.country": "What products does Colombia import?", + "graph_builder.page_title.location.products.import_value.department": "What products does this department import?", + "graph_builder.page_title.location.products.import_value.msa": "What products does this city import?", + "graph_builder.page_title.location.products.import_value.municipality": "What products does this municipality import?", + "graph_builder.page_title.location.products.scatter.country": "What products have the most potential for Colombia?", + "graph_builder.page_title.location.products.scatter.department": "What products have the most potential for this department?", + "graph_builder.page_title.location.products.scatter.msa": "What products have the most potential for this city?", + "graph_builder.page_title.location.products.scatter.municipality": "What products have the most potential for this municipality?", + "graph_builder.page_title.location.products.similarity.country": "Where is Colombia in the product space?", + "graph_builder.page_title.location.products.similarity.department": "Where is this department in the product space?", + "graph_builder.page_title.location.products.similarity.msa": "Where is this city in the product space?", + "graph_builder.page_title.location.products.similarity.municipality": "Where is this municipality in the product space?", + "graph_builder.page_title.product.cities.export_value": "What cities in Colombia export this product?", + "graph_builder.page_title.product.cities.import_value": "What cities in Colombia import this product?", + "graph_builder.page_title.product.departments.export_value": "What departments in Colombia export this product?", + "graph_builder.page_title.product.departments.import_value": "What departments in Colombia import this product?", + "graph_builder.page_title.product.partners.export_value": "Where does Colombia export this product to?", + "graph_builder.page_title.product.partners.export_value.destination": "Where does {{location}} export {{product}} to?", + "graph_builder.page_title.product.partners.import_value": "Where does Colombia import this product from?", + "graph_builder.page_title.product.partners.import_value.origin": "Where does {{location}} import {{product}} from?", + "graph_builder.questions.label": "Change question", + "graph_builder.recirc.header.industry": "Read the profile for this industry", + "graph_builder.recirc.header.location": "Read the profile for this location", + "graph_builder.recirc.header.product": "Read the profile for this product", + "graph_builder.search.placeholder.agproducts": "Highlight agricultural products in the graph below", + "graph_builder.search.placeholder.cities": "Highlight a city on the graph below", + "graph_builder.search.placeholder.departments": "Highlight a department on the graph below", + "graph_builder.search.placeholder.farmtypes": "Highlight a farm type in the graph below", + "graph_builder.search.placeholder.industries": "Highlight industries on the graph below", + "graph_builder.search.placeholder.landUses": "Highlight a land use on the graph below", + "graph_builder.search.placeholder.livestock": "Highlight a livestock type in the graph below", + "graph_builder.search.placeholder.locations": "Highlight locations on the graph below", + "graph_builder.search.placeholder.municipalities": "Highlight a municipality on the graph below", + "graph_builder.search.placeholder.occupations": "Highlight an occupation on the graph below", + "graph_builder.search.placeholder.partners": "Highlight trade partners on the graph below", + "graph_builder.search.placeholder.products": "Highlight products on the graph below", + "graph_builder.search.submit": "Highlight", + "graph_builder.settings.change_time": "Change time period", + "graph_builder.settings.close_settings": "Save and close", + "graph_builder.settings.label": "Change Characteristics", + "graph_builder.settings.rca": "Revealed comparative advantage", + "graph_builder.settings.rca.all": "All", + "graph_builder.settings.rca.greater": "> 1", + "graph_builder.settings.rca.less": "< 1", + "graph_builder.settings.to": "to", + "graph_builder.settings.year": "Years", + "graph_builder.settings.year.next": "Next", + "graph_builder.settings.year.previous": "Previous", + "graph_builder.table.agproduct": "Agricultural Product", + "graph_builder.table.area": "Area ", + "graph_builder.table.average_wages": "Avg. monthly wage, Col$", + "graph_builder.table.avg_wage": "Avg. monthly wage, Col$", + "graph_builder.table.code": "Code", + "graph_builder.table.cog": "Opportunity gain", + "graph_builder.table.coi": "Export complexity outlook", + "graph_builder.table.complexity": "Complexity", + "graph_builder.table.country": "Country", + "graph_builder.table.distance": "Distance", + "graph_builder.table.eci": "Export complexity", + "graph_builder.table.employment": "Employment", + "graph_builder.table.employment_growth": "Employment growth rate ({{yearRange}})", + "graph_builder.table.export": "Export", + "graph_builder.table.export_num_plants": "Firm number", + "graph_builder.table.export_rca": "Revealed comparative advantage", + "graph_builder.table.export_value": "Exports, USD", + "graph_builder.table.farmtype": "Farm Type", + "graph_builder.table.gdp_pc_real": "GDP per Capita", + "graph_builder.table.gdp_real": "GDP", + "graph_builder.table.import_value": "Imports, USD", + "graph_builder.table.industry": "Industry", + "graph_builder.table.industry_coi": "Industry complexity outlook", + "graph_builder.table.industry_eci": "Industry complexity", + "graph_builder.table.land_harvested": "Land harvested (ha)", + "graph_builder.table.land_sown": "Land sown (ha)", + "graph_builder.table.land_use": "Land Use", + "graph_builder.table.less_than_5": "Less than 5", + "graph_builder.table.livestock": "Livestock", + "graph_builder.table.location": "Location", + "graph_builder.table.monthly_wages": "Avg. monthly wage, Col$", + "graph_builder.table.name": "Name", + "graph_builder.table.num_establishments": "Firm number", + "graph_builder.table.num_farms": "Number of farms", + "graph_builder.table.num_livestock": "Number of livestock", + "graph_builder.table.num_vacancies": "Vacancies", + "graph_builder.table.occupation": "Occupation", + "graph_builder.table.parent": "Parent", + "graph_builder.table.parent.country": "Region", + "graph_builder.table.population": "Population", + "graph_builder.table.production_tons": "Production (tons)", + "graph_builder.table.rca": "Revealed comparative advantage", + "graph_builder.table.read_more": "Unfamiliar with any of the indicators above? Look them up in the", + "graph_builder.table.share": "Share", + "graph_builder.table.wages": "Total wages, Col$ (in thousands)", + "graph_builder.table.year": "Year", + "graph_builder.table.yield_index": "Yield Index", + "graph_builder.table.yield_ratio": "Yield (tons/ha)", + "graph_builder.view_more": "View more", + "header.destination": "Destination", + "header.destination_by_products": "Destinations by Products", + "header.employment": "Employment", + "header.export": "Exports", + "header.import": "Imports", + "header.industry": "Industries", + "header.industry_potential": "Potential", + "header.industry_space": "Industry space", + "header.landUse": "Land Use", + "header.land_harvested": "Land Harvested", + "header.land_sown": "Land Sown", + "header.occupation": "Occupations", + "header.occupation.available_jobs": "Job openings", + "header.origin": "Origin", + "header.origin_by_products": "Origin by Products", + "header.overview": "Overview", + "header.partner": "Partners", + "header.product": "Products", + "header.product_potential": "Potential", + "header.product_space": "Product space", + "header.production_tons": "Production", + "header.region": "By department", + "header.subregion": "By city", + "header.subsubregion": "By municipality ", + "header.wage": "Total wages", + "index.builder_cta": "Build graphs about coffee", + "index.builder_head": "Then dive into the graph builder", + "index.builder_subhead": "Create graphs and maps for your presentations", + "index.complexity_caption": "How good is it? Country growth predictions using economic complexity were more than six times as accurate as conventional metrics, such as the Global Competitiveness Index.", + "index.complexity_cta": "Read more about complexity concepts", + "index.complexity_figure.WEF_name": "Global Competitiveness Index", + "index.complexity_figure.complexity_name": "Complexity ranking", + "index.complexity_figure.head": "Growth explained (percent of 10-year variance)", + "index.complexity_head": "The complexity advantage", + "index.complexity_subhead": "Countries that export complex products, which require a lot of knowledge, grow faster than those that export raw materials. Using the methods of measuring and visualizing economic complexity developed by Harvard University, Datlas helps to explore the production and export possibilities of every city and department in Colombia.", + "index.country_profile": "Read the profile for Colombia", + "index.dropdown.industries": "461,488", + "index.dropdown.locations": "41,87,34,40", + "index.dropdown.products": "1143,87", + "index.future_head": "Mapping the future", + "index.future_subhead": "Scatterplots and network diagrams help find the untapped markets best suited to a city or a department.", + "index.graphbuilder.id": "87", + "index.header_h1": "The Colombian Atlas of Economic Complexity", + "index.header_head": "You haven\u2019t seen Colombia like this before", + "index.header_subhead": "Visualize the possibilities for industries, exports and locations across Colombia.", + "index.industry_head": "Learn about an industry", + "index.industry_q1": "Where in Colombia does the chemical industry employ the most people?", + "index.industry_q1.id": "461", + "index.industry_q2": "What occupations are demanded by the chemical industry?", + "index.industry_q2.id": "461", + "index.location_head": "Learn about a location", + "index.location_q1": "What industries in Bogot\u00e1 Met employ the most people?", + "index.location_q1.id": "41", + "index.location_q2": "What products have the most potential in Bogot\u00e1 Met?", + "index.location_q2.id": "41", + "index.location_viewall": "See all questions", + "index.present_head": "Charting the present", + "index.present_subhead": "Use our treemaps, charts, and maps to break down your department, city or municipality\u2019s exports and employment.", + "index.product_head": "Learn about an export", + "index.product_q1": "What places in Colombia export computers?", + "index.product_q1.id": "1143", + "index.product_q2": "What places in Colombia import computers?", + "index.product_q2.id": "1143", + "index.profile.id": "1", + "index.profiles_cta": "Read the profile for Antioquia", + "index.profiles_head": "Start with our profiles", + "index.profiles_subhead": "Just the essentials, presented as a one-page summary", + "index.questions_head": "We\u2019re not a crystal ball, but we can answer a lot of questions", + "index.questions_subhead": "index.questions_subhead", + "index.research_head": "Research featured in", + "industry.show.avg_wages": "Average wages ({{year}})", + "industry.show.employment": "Employment ({{year}})", + "industry.show.employment_and_wages": "Formal employment and wages", + "industry.show.employment_growth": "Employment growth rate ({{yearRange}})", + "industry.show.industries": "Industries", + "industry.show.industry_composition": "Industry composition, {{year}}", + "industry.show.occupation": "Occupations", + "industry.show.occupation_demand": "Occupations most demanded by this industry, 2014", + "industry.show.value": "Value", + "last_year": "2014", + "location.model.country": "Colombia", + "location.model.department": "department", + "location.model.msa": "city", + "location.model.municipality": "municipality", + "location.show.ag_farmsize": "Avg. agricultural farm size (ha)", + "location.show.all_departments": "Compared to the other departments", + "location.show.all_regions": "Compared to the other locations", + "location.show.bullet.gdp_grow_rate": "The GDP growth rate in the period {{yearRange}} was {{gdpGrowth}}, compared to 5.3% for Colombia", + "location.show.bullet.gdp_pc": "{{name}} has a GDP per capita of {{lastGdpPerCapita}}, compared to Col$15.1 million for Colombia in 2014.", + "location.show.bullet.last_pop": "The population is {{lastPop}}, compared to 46.3 million in Colombia as a whole in 2014.", + "location.show.eci": "Export complexity", + "location.show.employment": "Employment ({{lastYear}})", + "location.show.employment_and_wages": "Formal employment and wages", + "location.show.export_possiblities": "Export possiblities", + "location.show.export_possiblities.footer": "Some exports make not be viable due to local factors not considered by the technological similarity approach.", + "location.show.export_possiblities.intro": "We\u2019ve found that countries which export complex products grow faster than those which export simple products. Using the product space presented above, we\u2019ve highlighted \u00a0high potential products for {{name}}, ranked by which have the highest combination of opportunity and complexity.", + "location.show.exports": "Exports ({{year}})", + "location.show.exports_and_imports": "Exports and imports", + "location.show.gdp": "GDP", + "location.show.gdp_pc": "GDP per Capita", + "location.show.growth_annual": "Growth rate ({{yearRange}})", + "location.show.imports": "Imports ({{year}})", + "location.show.nonag_farmsize": "Avg. nonagricultural farm size (ha)", + "location.show.overview": "Overview", + "location.show.population": "Population", + "location.show.subregion.exports": "Export Composition by Municipality ({{year}})", + "location.show.subregion.imports": "Import Composition by Municipality ({{year}})", + "location.show.subregion.title": "Export and Import by Municipality", + "location.show.total_wages": "Total wages ({{lastYear}})", + "location.show.value": "Value", + "pageheader.about": "About", + "pageheader.alternative_title": "Atlas of Economic Complexity", + "pageheader.brand_slogan": "You haven't seen Colombia like this before", + "pageheader.download": "About the Data", + "pageheader.graph_builder_link": "Graph Builder", + "pageheader.profile_link": "Profile", + "pageheader.rankings": "Rankings", + "pageheader.search_link": "Search", + "pageheader.search_placeholder": "Search for a location, product or industry", + "pageheader.search_placeholder.industry": "Search for a industry", + "pageheader.search_placeholder.location": "Search for a location", + "pageheader.search_placeholder.product": "Search for a product", + "rankings.explanation.body": "", + "rankings.explanation.title": "Explanation", + "rankings.intro.p": "Compare departments and cities across Colombia.", + "rankings.pagetitle": "Rankings", + "rankings.section.cities": "Cities", + "rankings.section.departments": "Departments", + "rankings.table-title": "rank", + "search.didnt_find": "Didn\u2019t find what you were looking for? Let us know: Datlascolombia@bancoldex.com", + "search.header": "results", + "search.intro": "Search for the location, product, industry or occupation that you\u2019re interested in", + "search.level.4digit": "HS (1992) four-digit", + "search.level.class": "ISIC four-digit", + "search.level.country": "Country", + "search.level.department": "Department", + "search.level.division": "ISIC two-digit", + "search.level.msa": "City", + "search.level.municipality": "Municipality", + "search.level.parent.4digit": "HS (1992) two-digit", + "search.level.parent.class": "ISIC two-digit", + "search.level.parent.country": "Region", + "search.placeholder": "Type here to search", + "search.results_industries": "Industries", + "search.results_locations": "Locations", + "search.results_products": "Products", + "table.export_data": "Export Data", + "thousands_delimiter": "," +}; \ No newline at end of file diff --git a/app/locales/en-col/translations_2016.js b/app/locales/en-col/translations_2016.js new file mode 100644 index 00000000..f8471f68 --- /dev/null +++ b/app/locales/en-col/translations_2016.js @@ -0,0 +1,657 @@ +export default { + "abbr_billion": "B", + "abbr_million": "M", + "abbr_thousand": "K", + "abbr_trillion": "T", + "about.downloads.explanation.p1": "Download the document explaining how each of the complexity variables of Datlas is computed.", + "about.downloads.explanation.title": "Method of calculation of complexity variables", + "about.downloads.locations": "Lists of departments, cities (including metropolitan areas) and municipalities", + "about.glossary": "

See page \"About the data\" for further information about sources, computational methods of the complexity variables and downloadable databases.

Cities

A city is a metropolitan area or a municipality with more than 50,000 inhabitants, 75% of whom reside in the main urban location (cabecera). There are 62 cities (19 metropolitan areas comprising 115 municipalities, plus 43 other cities of just one municipality). The concept of city is relevant because Datlas presents complexity indicators by department and city, but not by municipality.

Complexity

Complexity is the amount and sophistication of knowhow required to produce something. The concept of complexity is central to Datlas because productivity and growth everywhere depend on firms to successfully produce and export goods and services that require skills and knowledge that are diverse and unique. Complexity can be measured by location, by industry or by export product.

Complexity Outlook

Measures the potential of a location to reach higher complexity levels. The measure accounts for the level of complexity of the industries (or exports) along with the distance of how close the productive capabilities that these industries require are to its current industries (or exports). More specifically, it measures the likelihood of different industries (or exports) appearing and the value of their added complexity. Higher outlook values indicate \u201ccloser distance\u201d to more, and more complex, industries (or exports).

Industry complexity outlook values are computed for departments and cities, not for the rest of municipalities. Export complexity outlook values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

DANE

DANE is the National Statistical Office. It is the source of all data on GDP and population used by Datlas.

DIAN

DIAN is the National Tax and Customs Authority. It is the source of all data on exports and imports by department and municipality in Datlas.

Distance

A measure of a location\u2019s ability to enter a specific industry or export, as determined by its current productive capabilities. Also known as a capability distance, the measure accounts for the similarity between the capabilities required by an industry or export and the capabilities already present in a location\u2019s industries or exports. Where a new industry or export requires many of the same capabilities already present in a location\u2019s industries or exports, the product is considered \u201ccloser\u201d or of a shorter \u201cdistance\u201d to acquire the missing capabilities to produce it. New industries or exports of a further distance require larger sets of productive capabilities that do not exist in the location and are therefore riskier ventures or less likely to be sustained. Thus, distance reflects the proportion of the productive knowledge necessary for an industry or export that a location does not have. This is measured by the proximity between industries or exports, or the probability that two industries or exports will both be present in a location, as embodied by the industry space and product space, respectively.

Industry distance values are computed for departments and cities, but not for the rest of municipalities. Export distance values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

Diversity

A measure of how many different types of products a place is able to produce. The production of a good requires a specific set of know-how; therefore, a country\u2019s total diversity is another way of expressing the amount of collective know-how that a place has.

Economic Complexity Index (ECI)

A measure of the sophistication of the productive capabilities of a location based on the diversity and ubiquity of its industries or exports. A location with high complexity produces or exports goods and services that few other locations produce. Highly complex locations tend to be more productive and generate higher wages and incomes. Countries with export baskets more sophisticated than what is expected for their income level (such as China) tend to grow faster than those where the opposite is true (such as Greece).

Industry ECI values are computed for departments and cities, but not for the rest of municipalities. Export ECI values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

Formal employment and wages, and formal employment rate

Formal employment is defined as employment covered by the health social security system and/or the pension system. The self-employed are not included. Formal wages are those reported by firms to that aim. Formal employment reported is the number of formal employees in an average month. Formality rate is defined as formal employment divided by population older than 15. Employment and wage data are taken from PILA. Population data comes from DANE.

Industry Complexity Index (ICI)

A measure of the amount of productive capabilities that an industry requires to operate. The ICI and the Product Complexity Index (PCI) are closely related, but are measured through independent datasets and classification systems as the PCI is computed only for internationally tradable goods, while the ICI is calculated for all industries that generate formal employment, including the public sector. Industries are complex when they require a sophisticated level of productive knowledge, such as many financial services and pharmaceutical industries, with many individuals with distinct specialized knowledge interacting in a large organization. Complexity of the industry is measured by calculating the average diversity of locations that hold the industry and the average ubiquity of the industries that those locations hold. The formal employment data required for these calculations comes from the PILA dataset held by the Ministry of Health.

Industry classification system

Colombia\u2019s industry classification system is a modified version of the International Standard Industrial Classification of All Economic Activities (ISIC). Datlas shows industry information at two- and four-digit level. All industry data come from PILA. Following national accounting conventions, workers hired by temporary employment firms are classified in the labor recruitment industry (7491), not in the industry of the firm where they physically work.

Industry technological similarity space (or industry space)

A visualization that depicts how similar/dissimilar the productive knowledge requirements are between industries. Each dot represents an industry and each link between a pair of industries indicates that they require similar productive capabilities to operate. Colored dots are industries with revealed comparative advantage larger than one. When an industry is selected, the map shows the industries that require similar productive capabilities. An industry with more links offers greater potential for diversification across shared capabilities. Thus the number of links that existing industries share to untapped, complex industries determines the complexity outlook of the location. The Colombian industry similarity space is based on formal employment data by industry and municipality from the PILA dataset of the Ministry of Health.

Metropolitan area

A metropolitan area is a combination of two or more municipalities that are connected through relatively large commuting flows (irrespective of their size or contiguity). A municipality must send at least 10% of its workers as daily commuters to the rest of the metropolitan area municipalities to be included.

Based on this definition there are 19 metropolitan areas in Colombia, which comprise 115 municipalities. The resulting metro areas, which are distinct from official measures, are computed with the methodology of G. Duranton (2013): \u201cDelineating metropolitan areas: Measuring spatial labour market networks through commuting patterns.\u201d Wharton School, University of Pennsylvania.

Occupations

Occupations are classified according to the Occupational Information Network Numerical Index (ONET). All data on occupations (wages offered by occupation, occupational structure by industry, and education level required by occupation) come from job vacancy announcements placed by firms in public and private Internet job sites during 2014. The data were processed by Jeisson Arley C\u00e1rdenas Rubio (Universidad del Rosario, Bogot\u00e1) and Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics).

Opportunity gain

Measures how much a location could benefit by developing a particular industry (or export). Also known also as \u201cstrategic value,\u201d the measure accounts for the distances to all other industries (or exports) that a location does not currently produce with revealed comparative advantage larger than one and their respective complexities. Opportunity gain quantifies how a new industry (or export) can open up links to more, and more complex, products. Thus, the measure calculates the value of an industry (or export) based on the paths it opens to industrial expansion into more complex sectors.

Industry opportunity gain values are computed for departments and cities, but not for the rest of municipalities. Export opportunity gain values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

PILA

PILA is the Integrated Report of Social Security Contributions, managed by the Ministry of Health. It is the main source of industry data. It contains information on formal employment, wages and number of firms by municipality and industry.

Product Complexity Index (PCI)

Measures the amount of productive capabilities required to manufacture a product. Complex exports, which include many chemical and machinery products, require a sophisticated level, and diverse base, of productive knowledge, with many individuals with distinct specialized knowledge interacting in a large organization. This contrasts with low complexity exports, like coffee, which require much less basic productive knowledge that can be found in a family-run business. UN Comtrade data are used to compute the complexity of export products.

Product technological similarity space (or product space)

A visualization that depicts how similar/dissimilar the productive knowledge requirements are between export products. Each dot represents a product and each link between a pair of products indicates that the two products require similar capabilities in their production. Colored dots are exports with revealed comparative advantage larger than one. When a product is selected, the map shows the products that require similar productive capabilities. A product with more links offers greater potential for diversification across shared capabilities. Thus the number of links that existing products share to complex products that a location does not currently produce determines the complexity outlook of its exports.

The shape of the space is based on international trade data for 192 countries over 50 years. See The International Atlas of Economic Complexity.

Revealed Comparative Advantage (RCA)

Measures the relative size of an industry or an export product in a location. RCA is not a measure of productive efficiency or competitiveness, but just a \u201clocation quotient\u201d, as is often referred to. RCA is computed as the ratio between an industry\u2019s share of total formal employment in a location and the share of that industry\u2019s total formal employment in Colombia as a whole. For instance, if the chemical industry generates10% of a city\u2019s employment, while it generates only 1% of total employment in Colombia, the RCA of the industry in the city is 10. For exports, RCA is the ratio between the share of the export in the export basket of the location and its share in total world trade. If this ratio is larger than 1, the location is said to have revealed comparative advantage in the industry or export. For instance, if a department\u2019s coffee exports are 30% of its exports but coffee accounts for just 0.3% of world trade, the department\u2019s RCA in coffee is 100.

Ubiquity

A measure of the number of places that are able to make a product.

UPAs and UPNAs

Rural production units are classified according to DANE\u2019s Agricultural National Census (2014) in \u201cagriculture production units\u201d, or UPAs, and \u201cnon-agriculture production units\u201d, or UPNAs. While agriculture production (which includes crops and livestock) can only take place in UPAs, both UPAs and UPNAs may have non-agriculture production activities.

Yield

For any product and location, land productivity is the yield in tons per hectare of harvested land. Computations are made by agricultural year (adding up the second semester of the previous year and the first semester of the corresponding year) with data taken from the Ministry of Agriculture\u2019s Agronet survey (2017).

Yield Indices

A yield index (for any product and location) is the yield divided by the national-level yield. Yield indexes for more than one product (by location) are computed as the weighted average of the yield indices of the products, where the weights are the corresponding lands harvested for each product.

\n", + "about.glossary_name": "Glossary", + "about.project_description.cid.header": "CID and the Growth Lab", + "about.project_description.cid.p1": "This project was developed by the Center for International Development at Harvard University, under the leadership of Professor Ricardo Hausmann.", + "about.project_description.cid.p2": "The Center for International Development (CID) at Harvard University works to advance the understanding of development challenges and offer viable, inclusive solutions to problems of global poverty. The Growth Lab is one of CID\u2019s core research programs.", + "about.project_description.contact.header": "Contact information", + "about.project_description.contact.link": "Datlascolombia@bancoldex.com", + "about.project_description.founder1.header": "Banc\u00f3ldex", + "about.project_description.founder1.p": "Banc\u00f3ldex is the entrepreneurial development bank of Colombia. It is committed to developing financial and non-financial instruments geared to enhance the competitiveness, productivity, growth and internationalization of Colombian enterprises. Leveraging on its unique relational equity and market position, Banc\u00f3ldex manages financial assets, develops access solutions to financing and deploys innovative capital solutions, to foster and accelerate company growth. Besides offering traditional loans, Banc\u00f3ldex has been appointed to implement several development program such as iNNpulsa Colombia, iNNpulsa Mipyme, Banca de las Oportunidades, and the Productive Transformation Program, all of them, in an effort to consolidate an integrated offer to promote Colombian business environment and overall competitiveness. Datlas elaborates on the work that Banc\u00f3ldex has been undertaking through its Productive Transformation Program and INNpulsa Colombia initiatives.", + "about.project_description.founder2.header": "The National Department of Planning", + "about.project_description.founder2.p": "The National Department of Planning (DNP) is an Administrative Department that belongs to the executive branch of public power and reports directly to the President of the Republic. The DNP is a technical institution that promotes the implementation of a strategic vision for the country in the social, economic and environmental fields, through the design, direction and evaluation of public policies to Colombia, also is the responsible of the management, allocation of the public investment and the realization of the plans, programs and projects of the government.", + "about.project_description.founder3.header": "Mario Santo Domingo Foundation", + "about.project_description.founder3.p": "Created in 1953, the Mario Santo Domingo Foundation (FMSD) is a non-profit organization dedicated to implementing community development programs in Colombia. FMSD decided to concentrate its main efforts in the construction of affordable housing within a Community Development Model, named Integral Development of Sustainable Communities (DINCS in its Spanish initials) and designed by the FMSD as a response to the large housing deficit in Colombia. Through this program, the FMSD delivers social support for families, and social infrastructure and urban development for the less privileged. FMSD also supports entrepreneurs in the Northern region of Colombia and in Bogot\u00e1 through its Microfinance Unit which provides training and financial services such as microcredit. More than 130,000 entrepreneurs have received loans from the Foundation since its launch in 1984. The FMSD works also to identify alliances and synergies between the public and private sectors in critical social development areas such as early childhood, environmental sustainability, disaster attention, education and health.", + "about.project_description.founders.header": "Founding Partners", + "about.project_description.founders.p": "This project is funded by Banc\u00f3ldex and Fundaci\u00f3n Mario Santo Domingo ", + "about.project_description.github": "See our code", + "about.project_description.intro.p1": "In Colombia, income gaps between regions are huge and have been growing: new job opportunities are increasingly concentrated in the metropolitan areas of Bogot\u00e1, Medell\u00edn and Cali, as well as a few places where oil and other minerals are extracted. The average income of residents of Bogot\u00e1 is four times that of Colombians living in the 12 poorest departments", + "about.project_description.intro.p2": "Datlas is a diagnostic tool that firms, investors and policymakers can use to improve the productivity of departments, cities and municipalities. It maps the geographical distribution of Colombia\u2019s productive activities and employment by department, metropolitan area and municipality, and identifies exports and industries of potential to increase economic complexity and accelerate growth.", + "about.project_description.intro.p3": "Economic complexity is a measure of the amount of productive capabilities, or knowhow, that a country or a city has. Products are vehicles for knowledge. To make a shirt, one must design it, produce the fabric, cut it, sew it, pack it, market it and distribute it. For a country to produce shirts, it needs people who have expertise in each of these areas. Each of these tasks involves many more capabilities than any one person can master. Only by combining know-how from different people can any one product be made. The road to economic development involves increasing what a society knows how to do. Countries with more productive capabilities can make a greater diversity of products. Economic growth occurs when countries develop the capabilities and productive knowledge to produce more, and more complex, products.", + "about.project_description.intro.p4": "This conceptual approach, which has been applied at the international level in The Atlas of Economic Complexity, is now used in this online tool to investigate export and industry possibilities at the sub-national level in Colombia.", + "about.project_description.letter.header": "Sign up for our Newsletter", + "about.project_description.letter.p": "Sign up for CID\u2019s Research Newsletter to keep up-to-date with related breakthrough research and practical tools, including updates to this site http://www.hks.harvard.edu/centers/cid/news-events/subscribe ", + "about.project_description.team.header": "Academic and Technical Team", + "about.project_description.team.p": "The academic team at Harvard\u2019s CID included Ricardo Hausmann (director), Andr\u00e9s G\u00f3mez- Li\u00e9vano, Eduardo Lora and Sid Ravinutala. In previous phases of the project, Tim Cheston, Jos\u00e9 Ram\u00f3n Morales, Neave O\u2019Clery and Juan T\u00e9llez were part of the academic team. Programming and visualization team at Harvard\u2019s CID: Annie White (coordinator) and Mali Akmanalp. In previous phases of the project, Katy Harris, Quinn Lee, Greg Shapiro, Romain Vuillemot and Gus Wezerek were part of the programming and visualization team. Compilation and processing of job vacancies data in Colombia were done by Jeisson Arley C\u00e1rdenas Rubio (Institute for Employment Research \u2013IER, University of Warwick) and Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics). Updates by Gustavo Montes and Oscar Hern\u00e1ndez (Banc\u00f3ldex).", + "about.project_description_name": "About", + "census_year": "2014", + "country.show.ag_farmsize": "45.99 ha", + "country.show.agproducts": "Tons Produced Per Crop in Colombia", + "country.show.agproducts.production_tons": "Production (tons)", + "country.show.average_livestock_load": "628 livestock / UPA", + "country.show.dotplot-column": "Departments Across Colombia", + "country.show.eci": "0.037", + "country.show.economic_structure": "Economic Structure", + "country.show.economic_structure.copy.p1": "With a population of 49.5 million (as of December 2017), Colombia is the third largest country in Latin America. Its total GDP in 2016 was Col$772.4 trillion, or US$253.2 billion at the average exchange rate of 2016 (1 US dollar = 3.050 Colombian pesos). In 2016, income per capita reached Col$17.708.353 or US$5.806 . Colombia\u2019s economic growth rate hits 2% in 2016.", + "country.show.economic_structure.copy.p2": "Business and financial services contribute 20.9% of GDP, making it the largest industry, followed by governmental, communal and personal services (15,4%) and manufacturing activities (11,2%). Bogot\u00e1 D.C., Antioquia and Valle del Cauca represent nearly half of economic activity, contributing 25.7, 13.9 and 9.7% to total GDP, respectively. However, two oil-producing departments \u2013 Casanare and Meta \u2013 boast the highest GDP per capita. The following graphs provide more details.", + "country.show.employment_wage_occupation": "Formal Employment, Occupations and Wages", + "country.show.employment_wage_occupation.copy.p1": "The registries of the PILA, which cover the universe of workers who make contributions to the social security system, indicate that the effective number of year-round workers in the formal sector in 2016 was 8.2 million. Bogot\u00e1 DC, Antioquia and Valle del Cauca generate, respectively 31.7%, 17.1%, and 10.8% of (effective) formal employment.", + "country.show.employment_wage_occupation.copy.p2": "The following graphs present more detailed information on the patterns of formal employment and wages paid based on PILA. Also included is data on vacancies announced and wages offered by occupation, computed from job announcements placed by firms on internet sites in 2014.", + "country.show.export_complexity_possibilities": "Export Complexity and Possibilities", + "country.show.export_complexity_possibilities.copy.p1": "The concept of export complexity is similar to that of industry complexity introduced above. It has been found that countries that export products that are relatively complex for their level of economic development tend to grow faster than countries that export relatively simple products. Based on the complexity of its export basket in 2013, Colombia ranks 53rd among 124 countries and is predicted to grow at an annual rate of 3.3% in the period 2013-2023 based on its economic complexity.", + "country.show.export_complexity_possibilities.copy.p2": "The \u2018Product Technological Similarity Space\u2019 (or Product Space) shown below is a graphical network representation of technological similarities across all export products, and is based on international export patterns. Each dot or node represents a product; nodes connected by lines require similar capabilities. More connected products are clustered towards the middle of the network, implying that the capabilities they use can be deployed in the production of many other products.", + "country.show.export_complexity_possibilities.copy.p3": "The highlighted nodes represent the products that Colombia exports in relatively large amounts (more precisely, with revealed comparative advantage higher than one, see the Glossary). Colors represent product groupings (which match the colors used in the industry technological space shown above). The figure further below and the accompanying table show what export products offer the best possibilities for Colombia, given the capabilities the country already has and how \u2018distant\u2019 are those capabilities to the ones needed for each product.", + "country.show.exports": "Exports", + "country.show.exports.copy.p1": "Colombia exported US$32.5 billion in 2016, down from $35.1 billion in 2015 and $57.8 billion in 2016. Its main export partners are the United States, Panama, China and Spain. In 2016, minerals products (of which oil, coal and nickel are the largest items) comprised 51.75% of total merchandise exports, vegetables, foodstuffs and wood contributed 22.57%, and chemical and plastics products totaled 9.78% of exports. The following graphs provide further details.", + "country.show.exports_composition_by_department": "Export Composition by Department ({{year}})", + "country.show.exports_composition_by_products": "Export Composition by Product ({{year}})", + "country.show.gdp": "Col $756,152 T", + "country.show.gdp_per_capita": "Col $15.864.953", + "country.show.industry_complex": "Industry Complexity", + "country.show.industry_complex.copy.p1": "Industry complexity is a measure of the range of capabilities, skills or know-how required by an industry. Industries such as chemicals and machinery are said to be highly complex, because they require a sophisticated level of productive knowledge likely to be present only in large organizations where a number of highly specialized individuals interact. Conversely, industries such as retail trade or restaurants require only a basic level of know-how which may be found at a family-run business. More complex industries contribute to raising productivity and income per- capita. Departments and cities with more complex industries have a more diversified industrial base and tend to create more formal employment.", + "country.show.industry_complex.copy.p2": "The 'IndustryTechnological Similarity Space\u2019 (or Industry Space) shown below is a graphical representation of the similarity between the capabilities and know-how required by pairs of industries. Each dot or node represents an industry; nodes connected by lines require similar capabilities. More connected industries use capabilities that can be deployed in many other industries. Colors represent industry groupings.", + "country.show.industry_space": "Industry Space", + "country.show.landuses": "Land Uses in Colombia", + "country.show.landuses.area": "Total Area (ha)", + "country.show.nonag_farmsize": "4.53 ha", + "country.show.occupation.num_vac": "Total advertised vacancies", + "country.show.population": "48.1 million", + "country.show.product_space": "Product Space", + "country.show.total": "Total", + "ctas.csv": "CSV", + "ctas.download": "Download this data", + "ctas.embed": "Embed", + "ctas.excel": "Excel", + "ctas.export": "Export", + "ctas.facebook": "Facebook", + "ctas.pdf": "PDF", + "ctas.png": "PNG", + "ctas.share": "Share", + "ctas.twitter": "Twitter", + "currency": "Col$", + "decimal_delmiter": ".", + "downloads.cta_download": "Download", + "downloads.cta_na": "Not available", + "downloads.head": "About the Data", + "downloads.industry_copy": "PILA (the Integrated Report of Social Security Contributions), managed by the Ministry of Health) is the main source of industry data. It contains information on formal employment, wages and number of firms by municipality and industry. Colombia\u2019s industry classification is a modified version of the International Standard Industrial Classification of All Economic Activities (ISIC). The list of industries can be found in the downloadable databases for industries. The list of industries in the ISIC which are not included in the industry space (for reasons explained in \"Calculation Methods\") can be downloaded here.", + "downloads.industry_head": "Industry data (PILA)", + "downloads.industry_row_1": "Employment, wages, number of firms and complexity indicators ({{yearRange}})", + "downloads.list_of_cities.header": "Lists of departments, cities and municipalities", + "downloads.map.cell": "Map boundary and geo data is from GeoFabrik.de, based on OpenStreetMap data", + "downloads.map.header": "Map Data", + "downloads.occupations_copy": "All data on occupations (wages offered by occupation and industry, and occupational structure by industry) come from job vacancy announcements placed by firms in public and private Internet job sites. Occupations are classified according to the Occupational Information Network Numerical Index (ONET). The data were processed by Jeisson Arley C\u00e1rdenas Rubio, researcher of Universidad del Rosario, Bogot\u00e1, and Jaime Mauricio Monta\u00f1a Doncel, Masters student at the Paris School of Economics.", + "downloads.occupations_head": "Occupations data", + "downloads.occupations_row_1": "Job vacancies and wages offered (2014)", + "downloads.other_copy": "DANE (the National Statistical Office) is the source of all data on GDP and population.", + "downloads.other_head": "Other data (DANE)", + "downloads.other_row_1": "GDP and demographic variables", + "downloads.rural_agproduct": "Agricultural products", + "downloads.rural_copy": "

Two sources of rural data are utilized: DANE\u2019s Agricultural National Census (2014) and the Ministry of Agriculture\u2019s Agronet survey (2017).

Land use classification and the corresponding extensions in hectares (1 hectare = 10,000 squared meters) come from the Census. Rural production units are classified according to the Census in \u201cAgriculture Production Units\u201d, or UPAs, and \u201cNon-Agriculture Production units\u201d, or UPNAs. While agriculture production (which includes crops and livestock) can only take place in UPAs, both UPAs and UPNAs may have non-agriculture production activities. The classification of non-agriculture production activities comes from the Census and does not match the CIIU classification used for industries. UPAs and UPNAs may be informal (not registered as businesses).

Crop information, which comes from Agronet, is for agricultural years 2008-2015 (an agricultural year corresponds to the second semester of the previous year and the first semester of the corresponding year). Land sown and land harvested are measured in hectares and production is measured in metric tons (in all cases, adding the two semesters of the agricultural year). Land productivity (for any product and location) is the yield in tons per hectare of harvested land. A yield index (for any product and location) is the yield divided by the national-level yield. Yield indexes for more than one product (by location) are computed as the weighted average of the yield indices of the products, where the weights are the corresponding lands harvested for each product.

It is important to bear in mind that the information presented in this section for sugarcane corresponds to the yield (ton/ha) of green material and not to sugar. This is because there is a ratio of approximately 10 tons of green material per ton of sugar.

", + "downloads.rural_farmsize": "Size of UPA", + "downloads.rural_farmtype": "Type of UPA", + "downloads.rural_head": "Rural data", + "downloads.rural_landuse": "Land use", + "downloads.rural_livestock": "Livestock", + "downloads.rural_nonag": "Non-agricultural activities", + "downloads.thead_departments": "Departments", + "downloads.thead_met": "Cities", + "downloads.thead_muni": "Municipalities", + "downloads.thead_national": "National", + "downloads.trade_copy": "The source of all data on exports and imports by department and municipality is DIAN\u2019s Customs Data (DIAN is the National Tax and Customs Authority). Colombian Customs uses the product classification NANDINA, which matches the Harmonized System (HS) classification at the 6-digit level. We then standardize that to HS 1992 in order to fix any version inconsistencies across the years in order to be able to view the data over time. The list of products can be found in the downloadable databases for exports and imports.

The origin of an export is established in two stages. First, the department of origin is defined as the last place of processing, assembly or packaging, according with DIAN. Then, export values are distributed among municipalities according with the composition of employment of the exporting firm based on PILA (for firms without this information the value is assigned to the capital of department). In the case of petroleum oil (2709) and gas (2711), total export values were distributed by origin according to production by municipality (sources: Hydrocarbons National Agency and Colombian Petroleum Association), and in the case of oil refined products (2710), according to value added by municipality (industries 2231, 2322 and 2320 SIIC revision 3, Annual Manufacturing Survey, DANE).

\u00a0

Export totals by product may not correspond to official data because the following are excluded: (a) exports lacking information on the industry of the exporter and/or the department or municipality of origin, and (b) exports for which DIAN reports free zones as the place of destination; while the following are included: (c) exports from free zones, which DIAN does not include in those export totals.

In a similar fashion, import totals by product may not correspond to official data because the following are excluded: (a) imports lacking information on the department or municipality of destination, and (b) imports for which DIAN reports free zones as the place of origin; while the following are included: (c) imports done by free zones, which DIAN does not include in those import totals.

A file that describes the correspondence between the HS version used by DIAN and HS 1992 can be found here.

Included here is a file with the list of products in the Harmonized System that are not represented in the product space (for reasons explained in \"Calculation Methods\").", + "downloads.trade_head": "Trade data (DIAN)", + "downloads.trade_row_1": "Exports, imports and export complexity indicators ({{yearRange}})", + "downloads.trade_row_2": "Exports and imports with country of destination and origin ({{yearRange}})", + "first_year": "2008", + "general.export_and_import": "Products", + "general.geo": "Geographic map", + "general.glossary": "Glossary", + "general.industries": "Industries", + "general.industry": "industry", + "general.location": "location", + "general.locations": "Locations", + "general.multiples": "Area charts", + "general.occupation": "occupation", + "general.occupations": "Occupations", + "general.product": "product", + "general.scatter": "Scatterplot", + "general.similarity": "Industry Space", + "general.total": "Total", + "general.treemap": "Treemap", + "geomap.center": "4.6,-74.06", + "glossary.head": "Glossary", + "graph_builder.builder_mod_header.agproduct.departments.land_harvested": "Land Harvested (ha)", + "graph_builder.builder_mod_header.agproduct.departments.land_sown": "Land Sown (ha)", + "graph_builder.builder_mod_header.agproduct.departments.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.agproduct.municipalities.land_harvested": "Land Harvested (ha)", + "graph_builder.builder_mod_header.agproduct.municipalities.land_sown": "Land Sown (ha)", + "graph_builder.builder_mod_header.agproduct.municipalities.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.industry.cities.employment": "Total employment", + "graph_builder.builder_mod_header.industry.cities.wage_avg": "Average monthly wages", + "graph_builder.builder_mod_header.industry.cities.wages": "Total wages", + "graph_builder.builder_mod_header.industry.departments.employment": "Total employment", + "graph_builder.builder_mod_header.industry.departments.wage_avg": "Average monthly wages", + "graph_builder.builder_mod_header.industry.departments.wages": "Total wages", + "graph_builder.builder_mod_header.industry.locations.employment": "Total employment", + "graph_builder.builder_mod_header.industry.locations.wage_avg": "Average monthly wages", + "graph_builder.builder_mod_header.industry.locations.wages": "Total wages", + "graph_builder.builder_mod_header.industry.occupations.num_vacancies": "Total advertised vacancies", + "graph_builder.builder_mod_header.landUse.departments.area": "Total area", + "graph_builder.builder_mod_header.landUse.municipalities.area": "Total area", + "graph_builder.builder_mod_header.livestock.departments.num_farms": "Number of UPAs", + "graph_builder.builder_mod_header.livestock.departments.num_livestock": "Number of livestock", + "graph_builder.builder_mod_header.livestock.municipalities.num_farms": "Number of UPAs", + "graph_builder.builder_mod_header.livestock.municipalities.num_livestock": "Number of livestock", + "graph_builder.builder_mod_header.location.agproducts.land_harvested": "Land harvested (hectares)", + "graph_builder.builder_mod_header.location.agproducts.land_sown": "Land sown (hectares)", + "graph_builder.builder_mod_header.location.agproducts.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.location.agproducts.yield_ratio": "Productivity (tons/ha)", + "graph_builder.builder_mod_header.location.farmtypes.num_farms": "UPAs and UPNAs", + "graph_builder.builder_mod_header.location.industries.employment": "Total employment", + "graph_builder.builder_mod_header.location.industries.scatter": "Complexity,distance and opportunity gain of potential industries", + "graph_builder.builder_mod_header.location.industries.similarity": "Industries with revealed comparative advantage >1 (colored) and <1 (grey)", + "graph_builder.builder_mod_header.location.industries.wages": "Total wages", + "graph_builder.builder_mod_header.location.landUses.area": "Total area", + "graph_builder.builder_mod_header.location.livestock.num_farms": "Number of livestock UPAs", + "graph_builder.builder_mod_header.location.livestock.num_livestock": "Number of livestock", + "graph_builder.builder_mod_header.location.nonags.num_farms": "Number of UPNAs", + "graph_builder.builder_mod_header.location.partners.export_value": "Total exports", + "graph_builder.builder_mod_header.location.partners.import_value": "Total imports", + "graph_builder.builder_mod_header.location.products.export_value": "Total exports", + "graph_builder.builder_mod_header.location.products.import_value": "Total imports", + "graph_builder.builder_mod_header.location.products.scatter": "Complexity, distance and opportunity gain of potential export products", + "graph_builder.builder_mod_header.location.products.similarity": "Export products with revealed comparative advantage >1 (colored) and <1 (grey)", + "graph_builder.builder_mod_header.nonag.departments.num_farms": "Number of UPNAs", + "graph_builder.builder_mod_header.nonag.municipalities.num_farms": "Number of UPNAs", + "graph_builder.builder_mod_header.product.cities.export_value": "Total Exports", + "graph_builder.builder_mod_header.product.cities.import_value": "Total Imports", + "graph_builder.builder_mod_header.product.departments.export_value": "Total Exports", + "graph_builder.builder_mod_header.product.departments.import_value": "Total Imports", + "graph_builder.builder_mod_header.product.partners.export_value": "Total exports", + "graph_builder.builder_mod_header.product.partners.import_value": "Total imports", + "graph_builder.builder_nav.header": "More graphs for this {{entity}}", + "graph_builder.builder_nav.intro": "Select a question to see the corresponding graph. If the question has missing parameters ({{icon}}) , you\u2019ll fill those in when you click.", + "graph_builder.builder_questions.city": "Questions: Cities", + "graph_builder.builder_questions.department": "Questions: Departments", + "graph_builder.builder_questions.employment": "Questions: Employment", + "graph_builder.builder_questions.export": "Questions: Exports", + "graph_builder.builder_questions.import": "Questions: Imports", + "graph_builder.builder_questions.industry": "Questions: Industries", + "graph_builder.builder_questions.landUse": "Questions: Land Use ", + "graph_builder.builder_questions.land_harvested": "Questions: Land Harvested", + "graph_builder.builder_questions.land_sown": "Questions: Land Sown", + "graph_builder.builder_questions.livestock_num_farms": "Questions: Number of UPAs", + "graph_builder.builder_questions.livestock_num_livestock": "Questions: Number of livestock", + "graph_builder.builder_questions.location": "Questions: Locations", + "graph_builder.builder_questions.nonag": "Questions: Non-agricultural Activities", + "graph_builder.builder_questions.occupation": "Questions: Occupations", + "graph_builder.builder_questions.partner": "Questions: Partners", + "graph_builder.builder_questions.product": "Questions: Products", + "graph_builder.builder_questions.production_tons": "Questions: Production", + "graph_builder.builder_questions.rural": "Questions: Rural activities", + "graph_builder.builder_questions.wage": "Questions: Total Wages", + "graph_builder.change_graph.geo_description": "Map the data", + "graph_builder.change_graph.label": "Change graph", + "graph_builder.change_graph.multiples_description": "Compare growth over time", + "graph_builder.change_graph.scatter_description": "Plot complexity and distance", + "graph_builder.change_graph.similarity_description": "Show revealed comparative advantages", + "graph_builder.change_graph.treemap_description": "See composition at different levels", + "graph_builder.change_graph.unavailable": "Graph is unavailable for this question", + "graph_builder.download.agproduct": "Agricultural Product", + "graph_builder.download.area": "Area", + "graph_builder.download.average_livestock_load": "Livestock load", + "graph_builder.download.average_wages": "Avg. monthly wage, Col$", + "graph_builder.download.avg_wage": "Avg. monthly wage, Col$", + "graph_builder.download.code": "Code", + "graph_builder.download.cog": "Opportunity gain", + "graph_builder.download.complexity": "Complexity", + "graph_builder.download.distance": "Distance", + "graph_builder.download.eci": "Export complexity", + "graph_builder.download.employment": "Employment", + "graph_builder.download.employment_growth": "Employment growth rate ({{yearRange}})", + "graph_builder.download.export": "Export", + "graph_builder.download.export_num_plants": "Firm number", + "graph_builder.download.export_rca": "Revealed comparative advantage", + "graph_builder.download.export_value": "Exports, USD", + "graph_builder.download.farmtype": "Type of UPA", + "graph_builder.download.gdp_pc_real": "GDP per Capita, Col $", + "graph_builder.download.gdp_real": "GDP, Col $", + "graph_builder.download.import_value": "Imports, USD", + "graph_builder.download.industry": "Industry", + "graph_builder.download.industry_eci": "Industry complexity", + "graph_builder.download.land_harvested": "Land harvested (ha)", + "graph_builder.download.land_sown": "Land sown (ha)", + "graph_builder.download.land_use": "Land Use", + "graph_builder.download.less_than_5": "Less than 5", + "graph_builder.download.livestock": "Livestock", + "graph_builder.download.location": "Location", + "graph_builder.download.monthly_wages": "Avg. monthly wage, Col$", + "graph_builder.download.name": "Name", + "graph_builder.download.num_establishments": "Firm number", + "graph_builder.download.num_farms": "Number of Production Units", + "graph_builder.download.num_farms_ag": "Number of UPAs", + "graph_builder.download.num_farms_nonag": "Number of UPNAs", + "graph_builder.download.num_livestock": "Number of livestock", + "graph_builder.download.num_vacancies": "Vacancies", + "graph_builder.download.occupation": "Occupation", + "graph_builder.download.parent": "Parent", + "graph_builder.download.population": "Population", + "graph_builder.download.production_tons": "Production (tons)", + "graph_builder.download.rca": "Revealed comparative advantage", + "graph_builder.download.read_more": "Unfamiliar with any of the indicators above? Look them up in the", + "graph_builder.download.wages": "Total wages, Col$", + "graph_builder.download.year": "Year", + "graph_builder.download.yield_index": "Yield Index", + "graph_builder.download.yield_ratio": "Yield (tons/ha)", + "graph_builder.explanation": "Explanation", + "graph_builder.explanation.agproduct.departments.land_harvested": "Shows the composition of locations that harvest this agricultural product, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.departments.land_sown": "Shows the composition of locations that sow this agricultural product, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.departments.production_tons": "Shows the composition of locations that produce this agricultural product, by tons produced. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.land_harvested": "Shows the composition of locations that harvest this agricultural product, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.land_sown": "Shows the composition of locations that sow this agricultural product, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.production_tons": "Shows the composition of locations that produce this agricultural product, by tons produced. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.hide": "Hide", + "graph_builder.explanation.industry.cities.employment": "Shows the composition by department of formal employment in the industry. Source: PILA.", + "graph_builder.explanation.industry.cities.wages": "Shows the composition by department of total wages paid by the industry. Source: PILA.", + "graph_builder.explanation.industry.departments.employment": "Shows the composition by department of formal employment in the industry. Source: PILA.", + "graph_builder.explanation.industry.departments.wages": "Shows the composition by department of total wages paid by the industry. Source: PILA.", + "graph_builder.explanation.industry.occupations.num_vacancies": "Shows the composition of vacancies announced in Internet sites and wages offered.", + "graph_builder.explanation.landUse.departments.area": "Shows the composition of locations that use land in this specific way, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.landUse.municipalities.area": "Shows the composition of locations that use land in this specific way, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.livestock.departments.num_farms": "Shows the composition of locations for this livestock type, by number of UPAs. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.livestock.departments.num_livestock": "Shows the composition of locations for this livestock type, by number of livestock. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.livestock.municipalities.num_farms": "Shows the composition of locations for this livestock type, by number of UPAs. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.livestock.municipalities.num_livestock": "Shows the composition of locations for this livestock type, by number of livestock. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.agproducts.land_harvested": "Shows the composition of agricultural products of this location, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.land_sown": "Shows the composition of agricultural products of this location, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.production_tons": "Shows the composition of agricultural products of this location, by weight. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.yield_ratio": "Shows the productivity of the UPAs of this location, by agricultural product. Source: Agronet (2017), Ministerio de Agricultura. Link. Information about sugarcane: It is important to bear in mind that the information presented in this section for sugarcane corresponds to the yield (ton/ha) of green material and not to sugar. This is because there is a ratio of approximately 10 tons of green material per ton of sugar.", + "graph_builder.explanation.location.farmtypes.num_farms": "Shows the composition of UPAs in this location, by type of UPA. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.industries.employment": "Shows the industry composition of formal empoyment in the department. Source: PILA.", + "graph_builder.explanation.location.industries.scatter": "Dots represent industries. Upon selecting a dot, a display shows the industry name and its revealed comparative advantage in the location. Colors represent industry groups (see the table). The vertical axis is the Industry Complexity Index and the horizontal axis is the Distance from the existing industries, where shorter distances mean that the location has more of the knowhow needed to develop the industry. The size of the dots is proportional to the Opportunity Gain of the industry for the department, namely the potential that the industry offers for the department to acquire new capabilities that may help to develop other industries. The more interesting industries are the ones located at the top left, especially if the dots are large. Source: calculations by CID based on PILA data. (The glossary offers more detailed explanations of the concepts). ", + "graph_builder.explanation.location.industries.similarity": "The industry technological similarity space (or industry space) shows how similar is the knowhow required by any pair of industries. Each dot represents an industry. Dots connected with a line represent industries that require similar knowhow. Dots colored are industries with revealed comparative advantage (RCA) higher than one in the department or city. Each color corresponds to an industry group (see table). Upon selecting a dot, a display shows the industry name, its RCA and its links to other industries. Source: calculations by CID based on PILA data. (The glossary offers more detailed explanations of the concepts).", + "graph_builder.explanation.location.industries.wages": "Shows the industry composition of total wages paid in the department or city. Source: PILA.", + "graph_builder.explanation.location.landUses.area": "Shows the composition of land uses in this location, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.livestock.num_farms": "Shows the composition of livestock types of this location, by number of UPAs. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.livestock.num_livestock": "Shows the composition of livestock types of this location, by number of livestock. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.nonags.num_farms": "Shows the composition of non-agricultural activities performed in this location, by the number of UPAs that perform them. Source: CNA", + "graph_builder.explanation.location.partners.export_value": "Shows the destination country composition of exports of this place, nested by world regions. Source: DIAN.", + "graph_builder.explanation.location.partners.import_value": "Shows the countries from which this location imports products, nested by world regions. Source: DIAN.", + "graph_builder.explanation.location.products.export_value": "Shows the product composition of exports of the department or city. Colors represent product groups (see table). Source: DIAN.", + "graph_builder.explanation.location.products.import_value": "Shows the product composition of imports of the department or city. Colors represent product groups (see table). Source: DIAN.", + "graph_builder.explanation.location.products.scatter": "Dots represent export products. Upon selecting a dot, a display shows the product name and its revealed comparative advantage in the department or city. Colors represent product groups (see the table). The vertical axis is the Product Complexity Index and the horizontal axis is the Distance from the existing exports, where shorter distances mean that the location has more of the knowhow needed to export the product. The dashed line is the average Index of Economic Complexity of the place. The size of the dots is proportional to the Opportunity Gain of the export for the department or city, namely the potential that exporting the product offers for the department or city to acquire new capabilities that may help to export other products. The more interesting export products are the ones located at the top left, especially if the dots are large. Source: calculations by CID based on DIAN data. (The glossary offers more detailed explanations of the concepts). ", + "graph_builder.explanation.location.products.similarity": "The product technological similarity space (or product space) shows how similar is the knowhow required by any pair of export products. Each dot represents an export product. Dots connected with a line represent products that require similar knowhow. Dots colored are products with revealed comparative advantage (RCA) higher than one in the department or city. Each color corresponds to an export group (see table). Upon selecting a dot, a display shows the product name, its RCA and its links to other products. Source: calculations by CID based on DIAN data. (The glossary offers more detailed explanations of the concepts).", + "graph_builder.explanation.nonag.departments.num_farms": "Shows the composition of locations that perform this non-agricultural activity, by number of UPAs that perform it. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.nonag.municipalities.num_farms": "Shows the composition of locations that sow this agricultural product, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.product.cities.export_value": "Shows the composition by city of the product exports. Source: DIAN.", + "graph_builder.explanation.product.cities.import_value": "Shows the composition by city of the product imports. Source: DIAN.", + "graph_builder.explanation.product.departments.export_value": "Shows the composition by department of the product exports. Source: DIAN.", + "graph_builder.explanation.product.departments.import_value": "Shows the composition by department of the product imports. Source: DIAN.", + "graph_builder.explanation.product.partners.export_value": "Shows where Colombia exports this product to, nested by world regions. Source: DIAN.", + "graph_builder.explanation.product.partners.import_value": "Shows where Colombia imports this product from, nested by world regions. Source: DIAN.", + "graph_builder.explanation.show": "Show", + "graph_builder.multiples.show_all": "Show All", + "graph_builder.page_title.agproduct.departments.land_harvested": "What departments harvest this agricultural product?", + "graph_builder.page_title.agproduct.departments.land_sown": "What departments sow this agricultural product?", + "graph_builder.page_title.agproduct.departments.production_tons": "What departments produce this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.land_harvested": "What municipalities harvest this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.land_sown": "What municipalities sow this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.production_tons": "What municipalities produce this agricultural product?", + "graph_builder.page_title.industry.cities.employment": "What cities in Colombia does this industry employ the most people?", + "graph_builder.page_title.industry.cities.wages": "What cities in Colombia does this industry pay the highest total wages?", + "graph_builder.page_title.industry.departments.employment": "What departments in Colombia does this industry employ the most people?", + "graph_builder.page_title.industry.departments.wages": "What departments in Colombia does this industry pay the highest total wages?", + "graph_builder.page_title.industry.occupations.num_vacancies": "What occupations does this industry employ?", + "graph_builder.page_title.landUse.departments.area": "Which departments have this type of land use?", + "graph_builder.page_title.landUse.municipalities.area": "Which municipalities have this type of land use?", + "graph_builder.page_title.livestock.departments.num_farms": "How many rural production units raise this livestock species in each department?", + "graph_builder.page_title.livestock.departments.num_livestock": "How many animals of this livestock species are raised in each department?", + "graph_builder.page_title.livestock.municipalities.num_farms": "How many rural production units raise this livestock species in each municipality?", + "graph_builder.page_title.livestock.municipalities.num_livestock": "How many animals of this livestock species are raised in each municipality?", + "graph_builder.page_title.location.agproducts.land_harvested.country": "How many hectares per crop are harvested in Colombia?", + "graph_builder.page_title.location.agproducts.land_harvested.department": "How many hectares per crop are harvested in this department?", + "graph_builder.page_title.location.agproducts.land_harvested.municipality": "How many hectares per crop are harvested in this municipality?", + "graph_builder.page_title.location.agproducts.land_sown.country": "How many hectares per crop are sown in Colombia?", + "graph_builder.page_title.location.agproducts.land_sown.department": "How many hectares per crop are sown in this department?", + "graph_builder.page_title.location.agproducts.land_sown.municipality": "How many hectares per crop are sown in this municipality?", + "graph_builder.page_title.location.agproducts.production_tons.country": "How many tons of each crop does Colombia produce?", + "graph_builder.page_title.location.agproducts.production_tons.department": "How many tons of each crop does this department produce?", + "graph_builder.page_title.location.agproducts.production_tons.municipality": "How many tons of each crop does this municipality produce?", + "graph_builder.page_title.location.agproducts.yield_ratio.country": "What is the yield (ton/ha) of crops in Colombia?", + "graph_builder.page_title.location.agproducts.yield_ratio.department": "What is the yield (ton/ha) of crops in this department?", + "graph_builder.page_title.location.agproducts.yield_ratio.municipality": "What is the yield (ton/ha) of crops in this municipality?", + "graph_builder.page_title.location.destination_by_product.export_value.department": "Where does this department export oil to?", + "graph_builder.page_title.location.destination_by_product.import_value.department": "Where does this department import cars from?", + "graph_builder.page_title.location.farmtypes.num_farms.country": "How many agricultural production units (UPAs) and non-agricultural production units (UPNAs) are there in Colombia?", + "graph_builder.page_title.location.farmtypes.num_farms.department": "How many agricultural production units (UPAs) and non-agricultural production units (UPNAs) are there in this department?", + "graph_builder.page_title.location.farmtypes.num_farms.municipality": "How many agricultural production units (UPAs) and non-agricultural production units (UPNAs) are there in this municipality?", + "graph_builder.page_title.location.industries.employment.country": "What industries in Colombia employ the most people?", + "graph_builder.page_title.location.industries.employment.department": "What industries in this department employ the most people?", + "graph_builder.page_title.location.industries.employment.msa": "What industries in this city employ the most people?", + "graph_builder.page_title.location.industries.employment.municipality": "What industries in this municipality employ the most people?", + "graph_builder.page_title.location.industries.scatter.country": "What relatively complex industries have the most possibilities for Colombia?", + "graph_builder.page_title.location.industries.scatter.department": "What relatively complex industries have the most possibilities for this department?", + "graph_builder.page_title.location.industries.scatter.msa": "What relatively complex industries have the most possibilities for this city?", + "graph_builder.page_title.location.industries.scatter.municipality": "What relatively complex industries have the most possibilities for this municipality?", + "graph_builder.page_title.location.industries.similarity.country": "Where is Colombia in the industry space?", + "graph_builder.page_title.location.industries.similarity.department": "Where is this department in the industry space?", + "graph_builder.page_title.location.industries.similarity.msa": "Where is this city in the industry space?", + "graph_builder.page_title.location.industries.similarity.municipality": "Where is this municipality in the industry space?", + "graph_builder.page_title.location.industries.wages.country": "What industries in Colombia are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.department": "What industries in this department are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.msa": "What industries in this city are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.municipality": "What industries in this municipality are the largest by total wages?", + "graph_builder.page_title.location.landUses.area.country": "How is the land used in Colombia?", + "graph_builder.page_title.location.landUses.area.department": "How is the land used in this department?", + "graph_builder.page_title.location.landUses.area.municipality": "How is the land used in this municipality?", + "graph_builder.page_title.location.livestock.num_farms.country": "How many rural production units raise each livestock species in Colombia?", + "graph_builder.page_title.location.livestock.num_farms.department": "How many rural production units raise each livestock species in this department?", + "graph_builder.page_title.location.livestock.num_farms.municipality": "How many rural production units raise each livestock species in this municipality?", + "graph_builder.page_title.location.livestock.num_livestock.country": "How many and which livestock species are raised in Colombia?", + "graph_builder.page_title.location.livestock.num_livestock.department": "How many and which livestock species are raised in this department?", + "graph_builder.page_title.location.livestock.num_livestock.municipality": "How many and which livestock species are raised in this municipality?", + "graph_builder.page_title.location.nonags.num_farms.country": "What non-agricultural activities do the rural production units of Colombia perform?", + "graph_builder.page_title.location.nonags.num_farms.department": "What non-agricultural activities do the rural production units of this department perform?", + "graph_builder.page_title.location.nonags.num_farms.municipality": "What non-agricultural activities do the rural production units of this municipality perform?", + "graph_builder.page_title.location.partners.export_value.country": "What countries does Colombia export to?", + "graph_builder.page_title.location.partners.export_value.department": "What countries does this department export to?", + "graph_builder.page_title.location.partners.export_value.msa": "What countries does this city export to?", + "graph_builder.page_title.location.partners.export_value.municipality": "What countries does this municipality export to?", + "graph_builder.page_title.location.partners.import_value.country": "What countries does Colombia import from?", + "graph_builder.page_title.location.partners.import_value.department": "What countries does this department import from?", + "graph_builder.page_title.location.partners.import_value.msa": "What countries does this city import from?", + "graph_builder.page_title.location.partners.import_value.municipality": "What countries does this municipality import from?", + "graph_builder.page_title.location.products.export_value.country": "What products does Colombia export?", + "graph_builder.page_title.location.products.export_value.department": "What products does this department export?", + "graph_builder.page_title.location.products.export_value.msa": "What products does this city export?", + "graph_builder.page_title.location.products.export_value.municipality": "What products does this municipality export?", + "graph_builder.page_title.location.products.import_value.country": "What products does Colombia import?", + "graph_builder.page_title.location.products.import_value.department": "What products does this department import?", + "graph_builder.page_title.location.products.import_value.msa": "What products does this city import?", + "graph_builder.page_title.location.products.import_value.municipality": "What products does this municipality import?", + "graph_builder.page_title.location.products.scatter.country": "What products have the most potential for Colombia?", + "graph_builder.page_title.location.products.scatter.department": "What products have the most potential for this department?", + "graph_builder.page_title.location.products.scatter.msa": "What products have the most potential for this city?", + "graph_builder.page_title.location.products.scatter.municipality": "What products have the most potential for this municipality?", + "graph_builder.page_title.location.products.similarity.country": "Where is Colombia in the product space?", + "graph_builder.page_title.location.products.similarity.department": "Where is this department in the product space?", + "graph_builder.page_title.location.products.similarity.msa": "Where is this city in the product space?", + "graph_builder.page_title.location.products.similarity.municipality": "Where is this municipality in the product space?", + "graph_builder.page_title.nonag.departments.num_farms": "How many rural production units (UPAs and UPNAs) by department have this non-agricultural activity?", + "graph_builder.page_title.nonag.municipalities.num_farms": "How many rural production units (UPAs and UPNAs) by municipality have this non-agricultural activity?", + "graph_builder.page_title.product.cities.export_value": "What cities in Colombia export this product?", + "graph_builder.page_title.product.cities.import_value": "What cities in Colombia import this product?", + "graph_builder.page_title.product.departments.export_value": "What departments in Colombia export this product?", + "graph_builder.page_title.product.departments.import_value": "What departments in Colombia import this product?", + "graph_builder.page_title.product.partners.export_value": "Where does Colombia export this product to?", + "graph_builder.page_title.product.partners.export_value.destination": "Where does {{location}} export {{product}} to?", + "graph_builder.page_title.product.partners.import_value": "Where does Colombia import this product from?", + "graph_builder.page_title.product.partners.import_value.origin": "Where does {{location}} import {{product}} from?", + "graph_builder.questions.label": "Change question", + "graph_builder.recirc.header.industry": "Read the profile for this industry", + "graph_builder.recirc.header.location": "Read the profile for this location", + "graph_builder.recirc.header.product": "Read the profile for this product", + "graph_builder.search.placeholder.agproducts": "Highlight agricultural products in the graph below", + "graph_builder.search.placeholder.cities": "Highlight a city on the graph below", + "graph_builder.search.placeholder.departments": "Highlight a department on the graph below", + "graph_builder.search.placeholder.farmtypes": "Highlight a type of rural production unit in the graph below", + "graph_builder.search.placeholder.industries": "Highlight industries on the graph below", + "graph_builder.search.placeholder.landUses": "Highlight a land use on the graph below", + "graph_builder.search.placeholder.livestock": "Highlight a livestock type in the graph below", + "graph_builder.search.placeholder.locations": "Highlight locations on the graph below", + "graph_builder.search.placeholder.municipalities": "Highlight a municipality on the graph below", + "graph_builder.search.placeholder.nonags": "Highlight a non-agricultural activity on the graph below", + "graph_builder.search.placeholder.occupations": "Highlight an occupation on the graph below", + "graph_builder.search.placeholder.partners": "Highlight trade partners on the graph below", + "graph_builder.search.placeholder.products": "Highlight products on the graph below", + "graph_builder.search.submit": "Highlight", + "graph_builder.settings.change_time": "Change time period", + "graph_builder.settings.close_settings": "Save and close", + "graph_builder.settings.label": "Change Characteristics", + "graph_builder.settings.rca": "Revealed comparative advantage", + "graph_builder.settings.rca.all": "All", + "graph_builder.settings.rca.greater": "> 1", + "graph_builder.settings.rca.less": "< 1", + "graph_builder.settings.to": "to", + "graph_builder.settings.year": "Years", + "graph_builder.settings.year.next": "Next", + "graph_builder.settings.year.previous": "Previous", + "graph_builder.table.agproduct": "Agricultural Product", + "graph_builder.table.area": "Area (ha)", + "graph_builder.table.average_livestock_load": "Livestock load", + "graph_builder.table.average_wages": "Avg. monthly wage, Col$", + "graph_builder.table.avg_wage": "Avg. monthly wage, Col$", + "graph_builder.table.code": "Code", + "graph_builder.table.cog": "Opportunity gain", + "graph_builder.table.coi": "Export complexity outlook", + "graph_builder.table.complexity": "Complexity", + "graph_builder.table.country": "Country", + "graph_builder.table.department": "Department", + "graph_builder.table.distance": "Distance", + "graph_builder.table.eci": "Export complexity", + "graph_builder.table.employment": "Employment", + "graph_builder.table.employment_growth": "Employment growth rate ({{yearRange}})", + "graph_builder.table.export": "Export", + "graph_builder.table.export_num_plants": "Firm number", + "graph_builder.table.export_rca": "Revealed comparative advantage", + "graph_builder.table.export_value": "Exports, USD", + "graph_builder.table.farmtype": "Type of UPA", + "graph_builder.table.gdp_pc_real": "GDP per Capita", + "graph_builder.table.gdp_real": "GDP", + "graph_builder.table.import_value": "Imports, USD", + "graph_builder.table.industry": "Industry", + "graph_builder.table.industry_coi": "Industry complexity outlook", + "graph_builder.table.industry_eci": "Industry complexity", + "graph_builder.table.land_harvested": "Land harvested (ha)", + "graph_builder.table.land_sown": "Land sown (ha)", + "graph_builder.table.land_use": "Land Use", + "graph_builder.table.less_than_5": "Less than 5", + "graph_builder.table.livestock": "Livestock", + "graph_builder.table.location": "Location", + "graph_builder.table.monthly_wages": "Avg. monthly wage, Col$", + "graph_builder.table.name": "Name", + "graph_builder.table.nonag": "Non-agricultural activities", + "graph_builder.table.num_establishments": "Firm number", + "graph_builder.table.num_farms": "Number of production units", + "graph_builder.table.num_farms_ag": "Number of UPAs", + "graph_builder.table.num_farms_nonag": "Number of UPNAs", + "graph_builder.table.num_livestock": "Number of livestock", + "graph_builder.table.num_vacancies": "Vacancies", + "graph_builder.table.occupation": "Occupation", + "graph_builder.table.parent": "Parent", + "graph_builder.table.parent.country": "Region", + "graph_builder.table.parent.location": "Region", + "graph_builder.table.population": "Population", + "graph_builder.table.production_tons": "Production (tons)", + "graph_builder.table.rca": "Revealed comparative advantage", + "graph_builder.table.read_more": "Unfamiliar with any of the indicators above? Look them up in the", + "graph_builder.table.share": "Share", + "graph_builder.table.wages": "Total wages, Col$ (in thousands)", + "graph_builder.table.year": "Year", + "graph_builder.table.yield_index": "Yield Index", + "graph_builder.table.yield_ratio": "Yield (tons/ha)", + "graph_builder.view_more": "View more", + "header.agproduct": "Agricultural products", + "header.destination": "Destination", + "header.destination_by_products": "Destinations by Products", + "header.employment": "Employment", + "header.export": "Exports", + "header.farmtypes.area": "Types of UPAs", + "header.import": "Imports", + "header.index": "Index", + "header.industry": "Industries", + "header.industry_potential": "Potential", + "header.industry_space": "Industry space", + "header.land-use": "Land Use", + "header.landUse": "Land Use", + "header.landUses.area": "Land uses", + "header.land_harvested": "Land Harvested", + "header.land_sown": "Land Sown", + "header.landuse": "Land uses", + "header.livestock": "Livestock", + "header.livestock.num_farms": "Number of UPAs", + "header.livestock.num_livestock": "Number of livestock", + "header.livestock_num_farms": "Number of UPAs", + "header.livestock_num_livestock": "Number of livestock", + "header.location": "Locations", + "header.nonag": "Non-agricultural activities", + "header.occupation": "Occupations", + "header.occupation.available_jobs": "Job openings", + "header.origin": "Origin", + "header.origin_by_products": "Origin by Products", + "header.overview": "Overview", + "header.partner": "Partners", + "header.product": "Products", + "header.product_potential": "Potential", + "header.product_space": "Product space", + "header.production_tons": "Production", + "header.region": "By department", + "header.rural": "Questions: Rural activities", + "header.subregion": "By city", + "header.subsubregion": "By municipality ", + "header.wage": "Total wages", + "header.yield_ratio": "Productivity", + "index.builder_cta": "Build graphs about coffee", + "index.builder_head": "Then dive into the graph builder", + "index.builder_subhead": "Create graphs and maps for your presentations", + "index.complexity_caption": "How good is it? Country growth predictions using economic complexity were more than six times as accurate as conventional metrics, such as the Global Competitiveness Index.", + "index.complexity_cta": "Read more about complexity concepts", + "index.complexity_figure.WEF_name": "Global Competitiveness Index", + "index.complexity_figure.complexity_name": "Complexity ranking", + "index.complexity_figure.head": "Growth explained (percent of 10-year variance)", + "index.complexity_head": "The complexity advantage", + "index.complexity_subhead": "Countries that export complex products, which require a lot of knowledge, grow faster than those that export raw materials. Using the methods of measuring and visualizing economic complexity developed by Harvard University, Datlas helps to explore the production and export possibilities of every city and department in Colombia.", + "index.country_profile": "Read the profile for Colombia", + "index.dropdown.industries": "461,488", + "index.dropdown.locations": "41,87,34,40", + "index.dropdown.products": "1143,87", + "index.farmandland_head": "Learn about Rural Activities", + "index.future_head": "Mapping the future", + "index.future_subhead": "Scatterplots and network diagrams help find the untapped markets best suited to a city or a department.", + "index.graphbuilder.id": "87", + "index.header_h1": "The Colombian Atlas of Economic Complexity", + "index.header_head": "You haven\u2019t seen Colombia like this before", + "index.header_subhead": "Visualize the possibilities for industries, exports and locations across Colombia.", + "index.industry_head": "Learn about an industry", + "index.industry_q1": "Where in Colombia does the chemical industry employ the most people?", + "index.industry_q1.id": "461", + "index.industry_q2": "What occupations are demanded by the chemical industry?", + "index.industry_q2.id": "461", + "index.landuse_q1": "How much land do departments use for crops?", + "index.livestock_q1": "What kinds of livestock UPAs does Colombia have?", + "index.location_head": "Learn about a location", + "index.location_q1": "What industries in Bogot\u00e1 Met employ the most people?", + "index.location_q1.id": "41", + "index.location_q2": "What products have the most potential in Bogot\u00e1 Met?", + "index.location_q2.id": "41", + "index.location_viewall": "See all questions", + "index.present_head": "Charting the present", + "index.present_subhead": "Use our treemaps, charts and maps to break down your department, city or municipality's exports, formal employment or rural activities.", + "index.product_head": "Learn about a product", + "index.product_q1": "What places in Colombia export computers?", + "index.product_q1.id": "1143", + "index.product_q2": "What places in Colombia import computers?", + "index.product_q2.id": "1143", + "index.profile.id": "1", + "index.profiles_cta": "Read the profile for Antioquia", + "index.profiles_head": "Start with our profiles", + "index.profiles_subhead": "Just the essentials, presented as a one-page summary", + "index.questions_head": "New 2016 update!
We\u2019re not a crystal ball, but we can answer a lot of questions", + "index.questions_subhead": "index.questions_subhead", + "index.research_head": "Research featured in", + "industry.show.avg_wages": "Average wages ({{year}})", + "industry.show.employment": "Employment ({{year}})", + "industry.show.employment_and_wages": "Formal employment and wages", + "industry.show.employment_growth": "Employment growth rate ({{yearRange}})", + "industry.show.industries": "Industries", + "industry.show.industry_composition": "Industry composition, {{year}}", + "industry.show.occupation": "Occupations", + "industry.show.occupation_demand": "Occupations most demanded by this industry, {{year}}", + "industry.show.value": "Value", + "last_year": "2014", + "location.model.country": "Colombia", + "location.model.department": "department", + "location.model.msa": "city", + "location.model.municipality": "municipality", + "location.show.ag_farmsize": "Avg. size of UPAs (ha)", + "location.show.all_departments": "Compared to the other departments", + "location.show.all_regions": "Compared to the other locations", + "location.show.average_livestock_load": "Livestock Load ", + "location.show.bullet.gdp_grow_rate": "The GDP growth rate in the period {{yearRange}} was {{gdpGrowth}}, compared to 5.3% for Colombia", + "location.show.bullet.gdp_pc": "{{name}} has a GDP per capita of {{lastGdpPerCapita}}, compared to Col$15.1 million for Colombia in 2014.", + "location.show.bullet.last_pop": "The population is {{lastPop}}, compared to 46.3 million in Colombia as a whole in 2014.", + "location.show.eci": "Export complexity", + "location.show.employment": "Employment ({{lastYear}})", + "location.show.employment_and_wages": "Formal employment and wages", + "location.show.export_possiblities": "Export possiblities", + "location.show.export_possiblities.footer": "Some exports make not be viable due to local factors not considered by the technological similarity approach.", + "location.show.export_possiblities.intro": "We\u2019ve found that countries which export complex products grow faster than those which export simple products. Using the product space presented above, we\u2019ve highlighted \u00a0high potential products for {{name}}, ranked by which have the highest combination of opportunity and complexity.", + "location.show.exports": "Exports ({{year}})", + "location.show.exports_and_imports": "Exports and imports", + "location.show.gdp": "GDP", + "location.show.gdp_pc": "GDP per Capita", + "location.show.growth_annual": "Growth rate ({{yearRange}})", + "location.show.imports": "Imports ({{year}})", + "location.show.nonag_farmsize": "Avg. size of UPNAs (ha)", + "location.show.overview": "Overview", + "location.show.population": "Population", + "location.show.subregion.exports": "Export Composition by Municipality ({{year}})", + "location.show.subregion.imports": "Import Composition by Municipality ({{year}})", + "location.show.subregion.title": "Export and Import by Municipality", + "location.show.total_wages": "Total wages ({{lastYear}})", + "location.show.value": "Value", + "location.show.yield_index": "Agricultural Yield Index", + "pageheader.about": "About", + "pageheader.alternative_title": "Atlas of Economic Complexity", + "pageheader.brand_slogan": "You haven't seen Colombia like this before", + "pageheader.download": "About the Data", + "pageheader.graph_builder_link": "Graph Builder", + "pageheader.profile_link": "Profile", + "pageheader.rankings": "Rankings", + "pageheader.search_link": "Search", + "pageheader.search_placeholder": "Search for a location, industry, product or rural activity", + "pageheader.search_placeholder.industry": "Search for an industry", + "pageheader.search_placeholder.location": "Search for a location", + "pageheader.search_placeholder.product": "Search for a product", + "pageheader.search_placeholder.rural": "Search for rural activities", + "rankings.explanation.body": "", + "rankings.explanation.title": "Explanation", + "rankings.intro.p": "Compare departments and cities across Colombia.", + "rankings.pagetitle": "Rankings", + "rankings.section.cities": "Cities", + "rankings.section.departments": "Departments", + "rankings.table-title": "Rank", + "search.didnt_find": "Didn\u2019t find what you were looking for? Let us know: Datlascolombia@bancoldex.com", + "search.header": "results", + "search.intro": "Search for the location, product, industry or occupation that you\u2019re interested in", + "search.level.4digit": "HS (1992) four-digit", + "search.level.class": "ISIC four-digit", + "search.level.country": "Country", + "search.level.department": "Department", + "search.level.division": "ISIC two-digit", + "search.level.level1": "", + "search.level.level2": "", + "search.level.level3": "", + "search.level.msa": "City", + "search.level.municipality": "Municipality", + "search.level.parent.4digit": "HS (1992) two-digit", + "search.level.parent.class": "ISIC two-digit", + "search.level.parent.country": "Region", + "search.placeholder": "Type here to search", + "search.results_agproducts": "Agricultural Products", + "search.results_industries": "Industries", + "search.results_landuses": "Land Uses", + "search.results_livestock": "Livestock", + "search.results_locations": "Locations", + "search.results_nonag": "Non-agricultural activities", + "search.results_products": "Products", + "search.results_rural": "Rural activities", + "table.export_data": "Export Data", + "thousands_delimiter": "," +}; diff --git a/app/locales/en-col/translationsold.js b/app/locales/en-col/translationsold.js new file mode 100644 index 00000000..7c24733a --- /dev/null +++ b/app/locales/en-col/translationsold.js @@ -0,0 +1,568 @@ +export default { + "abbr_billion": "B", + "abbr_million": "M", + "abbr_thousand": "K", + "abbr_trillion": "T", + "about.downloads.explanation.p1": "Download the document explaining how each of the complexity variables of Datlas is computed.", + "about.downloads.explanation.title": "Method of calculation of complexity variables", + "about.downloads.locations": "Lists of departments, cities (including metropolitan areas) and municipalities", + "about.glossary": "

See page \"About the data\" for further information about sources, computational methods of the complexity variables and downloadable databases.

Cities

A city is a metropolitan area or a municipality with more than 50,000 inhabitants, 75% of whom reside in the main urban location (cabecera). There are 62 cities (19 metropolitan areas comprising 115 municipalities, plus 43 other cities of just one municipality). The concept of city is relevant because Datlas presents complexity indicators by department and city, but not by municipality.

Complexity

Complexity is the amount and sophistication of knowhow required to produce something. The concept of complexity is central to Datlas because productivity and growth everywhere depend on firms to successfully produce and export goods and services that require skills and knowledge that are diverse and unique. Complexity can be measured by location, by industry or by export product.

Complexity Outlook

Measures the potential of a location to reach higher complexity levels. The measure accounts for the level of complexity of the industries (or exports) along with the distance of how close the productive capabilities that these industries require are to its current industries (or exports). More specifically, it measures the likelihood of different industries (or exports) appearing and the value of their added complexity. Higher outlook values indicate \u201ccloser distance\u201d to more, and more complex, industries (or exports).

Industry complexity outlook values are computed for departments and cities, not for the rest of municipalities. Export complexity outlook values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

DANE

DANE is the National Statistical Office. It is the source of all data on GDP and population used by Datlas.

DIAN

DIAN is the National Tax and Customs Authority. It is the source of all data on exports and imports by department and municipality in Datlas.

Distance

A measure of a location\u2019s ability to enter a specific industry or export, as determined by its current productive capabilities. Also known as a capability distance, the measure accounts for the similarity between the capabilities required by an industry or export and the capabilities already present in a location\u2019s industries or exports. Where a new industry or export requires many of the same capabilities already present in a location\u2019s industries or exports, the product is considered \u201ccloser\u201d or of a shorter \u201cdistance\u201d to acquire the missing capabilities to produce it. New industries or exports of a further distance require larger sets of productive capabilities that do not exist in the location and are therefore riskier ventures or less likely to be sustained. Thus, distance reflects the proportion of the productive knowledge necessary for an industry or export that a location does not have. This is measured by the proximity between industries or exports, or the probability that two industries or exports will both be present in a location, as embodied by the industry space and product space, respectively.

Industry distance values are computed for departments and cities, but not for the rest of municipalities. Export distance values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

Diversity

A measure of how many different types of products a place is able to produce. The production of a good requires a specific set of know-how; therefore, a country\u2019s total diversity is another way of expressing the amount of collective know-how that a place has.

Economic Complexity Index (ECI)

A measure of the sophistication of the productive capabilities of a location based on the diversity and ubiquity of its industries or exports. A location with high complexity produces or exports goods and services that few other locations produce. Highly complex locations tend to be more productive and generate higher wages and incomes. Countries with export baskets more sophisticated than what is expected for their income level (such as China) tend to grow faster than those where the opposite is true (such as Greece).

Industry ECI values are computed for departments and cities, but not for the rest of municipalities. Export ECI values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

Formal employment and wages, and formal employment rate

Formal employment is defined as employment covered by the health social security system and/or the pension system. The self-employed are not included. Formal wages are those reported by firms to that aim. Formal employment reported is the number of formal employees in an average month. Formality rate is defined as formal employment divided by population older than 15. Employment and wage data are taken from PILA. Population data comes from DANE.

Industry Complexity Index (ICI)

A measure of the amount of productive capabilities that an industry requires to operate. The ICI and the Product Complexity Index (PCI) are closely related, but are measured through independent datasets and classification systems as the PCI is computed only for internationally tradable goods, while the ICI is calculated for all industries that generate formal employment, including the public sector. Industries are complex when they require a sophisticated level of productive knowledge, such as many financial services and pharmaceutical industries, with many individuals with distinct specialized knowledge interacting in a large organization. Complexity of the industry is measured by calculating the average diversity of locations that hold the industry and the average ubiquity of the industries that those locations hold. The formal employment data required for these calculations comes from the PILA dataset held by the Ministry of Health.

Industry classification system

Colombia\u2019s industry classification system is a modified version of the International Standard Industrial Classification of All Economic Activities (ISIC). Datlas shows industry information at two- and four-digit level. All industry data come from PILA. Following national accounting conventions, workers hired by temporary employment firms are classified in the labor recruitment industry (7491), not in the industry of the firm where they physically work.

Industry technological similarity space (or industry space)

A visualization that depicts how similar/dissimilar the productive knowledge requirements are between industries. Each dot represents an industry and each link between a pair of industries indicates that they require similar productive capabilities to operate. Colored dots are industries with revealed comparative advantage larger than one. When an industry is selected, the map shows the industries that require similar productive capabilities. An industry with more links offers greater potential for diversification across shared capabilities. Thus the number of links that existing industries share to untapped, complex industries determines the complexity outlook of the location. The Colombian industry similarity space is based on formal employment data by industry and municipality from the PILA dataset of the Ministry of Health.

Metropolitan area

A metropolitan area is a combination of two or more municipalities that are connected through relatively large commuting flows (irrespective of their size or contiguity). A municipality must send at least 10% of its workers as daily commuters to the rest of the metropolitan area municipalities to be included.

Based on this definition there are 19 metropolitan areas in Colombia, which comprise 115 municipalities. The resulting metro areas, which are distinct from official measures, are computed with the methodology of G. Duranton (2013): \u201cDelineating metropolitan areas: Measuring spatial labour market networks through commuting patterns.\u201d Wharton School, University of Pennsylvania.

Occupations

Occupations are classified according to the Occupational Information Network Numerical Index (ONET). All data on occupations (wages offered by occupation, occupational structure by industry, and education level required by occupation) come from job vacancy announcements placed by firms in public and private Internet job sites during 2014. The data were processed by Jeisson Arley C\u00e1rdenas Rubio (Universidad del Rosario, Bogot\u00e1) and Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics).

Opportunity gain

Measures how much a location could benefit by developing a particular industry (or export). Also known also as \u201cstrategic value,\u201d the measure accounts for the distances to all other industries (or exports) that a location does not currently produce with revealed comparative advantage larger than one and their respective complexities. Opportunity gain quantifies how a new industry (or export) can open up links to more, and more complex, products. Thus, the measure calculates the value of an industry (or export) based on the paths it opens to industrial expansion into more complex sectors.

Industry opportunity gain values are computed for departments and cities, but not for the rest of municipalities. Export opportunity gain values are computed for departments and cities with at least 50 dollars of exports per capita (below this threshold export baskets are unstable and/or lack representativeness).

PILA

PILA is the Integrated Report of Social Security Contributions, managed by the Ministry of Health. It is the main source of industry data. It contains information on formal employment, wages and number of firms by municipality and industry.

Product Complexity Index (PCI)

Measures the amount of productive capabilities required to manufacture a product. Complex exports, which include many chemical and machinery products, require a sophisticated level, and diverse base, of productive knowledge, with many individuals with distinct specialized knowledge interacting in a large organization. This contrasts with low complexity exports, like coffee, which require much less basic productive knowledge that can be found in a family-run business. UN Comtrade data are used to compute the complexity of export products.

Product technological similarity space (or product space)

A visualization that depicts how similar/dissimilar the productive knowledge requirements are between export products. Each dot represents a product and each link between a pair of products indicates that the two products require similar capabilities in their production. Colored dots are exports with revealed comparative advantage larger than one. When a product is selected, the map shows the products that require similar productive capabilities. A product with more links offers greater potential for diversification across shared capabilities. Thus the number of links that existing products share to complex products that a location does not currently produce determines the complexity outlook of its exports.

The shape of the space is based on international trade data for 192 countries over 50 years. See The International Atlas of Economic Complexity.

Revealed Comparative Advantage (RCA)

Measures the relative size of an industry or an export product in a location. RCA is not a measure of productive efficiency or competitiveness, but just a \u201clocation quotient\u201d, as is often referred to. RCA is computed as the ratio between an industry\u2019s share of total formal employment in a location and the share of that industry\u2019s total formal employment in Colombia as a whole. For instance, if the chemical industry generates10% of a city\u2019s employment, while it generates only 1% of total employment in Colombia, the RCA of the industry in the city is 10. For exports, RCA is the ratio between the share of the export in the export basket of the location and its share in total world trade. If this ratio is larger than 1, the location is said to have revealed comparative advantage in the industry or export. For instance, if a department\u2019s coffee exports are 30% of its exports but coffee accounts for just 0.3% of world trade, the department\u2019s RCA in coffee is 100.

Ubiquity

A measure of the number of places that are able to make a product.

", + "about.glossary_name": "Glossary", + "about.project_description.cid.header": "CID and the Growth Lab", + "about.project_description.cid.p1": "This project was developed by the Center for International Development at Harvard University, under the leadership of Professor Ricardo Hausmann.", + "about.project_description.cid.p2": "The Center for International Development (CID) at Harvard University works to advance the understanding of development challenges and offer viable, inclusive solutions to problems of global poverty. The Growth Lab is one of CID\u2019s core research programs.", + "about.project_description.contact.header": "Contact information", + "about.project_description.contact.link": "Datlascolombia@bancoldex.com", + "about.project_description.founder1.header": "Banc\u00f3ldex", + "about.project_description.founder1.p": "Banc\u00f3ldex is the entrepreneurial development bank of Colombia. It is committed to developing financial and non-financial instruments geared to enhance the competitiveness, productivity, growth and internationalization of Colombian enterprises. Leveraging on its unique relational equity and market position, Banc\u00f3ldex manages financial assets, develops access solutions to financing and deploys innovative capital solutions, to foster and accelerate company growth. Besides offering traditional loans, Banc\u00f3ldex has been appointed to implement several development program such as iNNpulsa Colombia, iNNpulsa Mipyme, Banca de las Oportunidades, and the Productive Transformation Program, all of them, in an effort to consolidate an integrated offer to promote Colombian business environment and overall competitiveness. Datlas elaborates on the work that Banc\u00f3ldex has been undertaking through its Productive Transformation Program and INNpulsa Colombia initiatives.", + "about.project_description.founder2.header": "Mario Santo Domingo Foundation", + "about.project_description.founder2.p": "Created in 1953, the Mario Santo Domingo Foundation (FMSD) is a non-profit organization dedicated to implementing community development programs in Colombia. FMSD decided to concentrate its main efforts in the construction of affordable housing within a Community Development Model, named Integral Development of Sustainable Communities (DINCS in its Spanish initials) and designed by the FMSD as a response to the large housing deficit in Colombia. Through this program, the FMSD delivers social support for families, and social infrastructure and urban development for the less privileged. FMSD also supports entrepreneurs in the Northern region of Colombia and in Bogot\u00e1 through its Microfinance Unit which provides training and financial services such as microcredit. More than 130,000 entrepreneurs have received loans from the Foundation since its launch in 1984. The FMSD works also to identify alliances and synergies between the public and private sectors in critical social development areas such as early childhood, environmental sustainability, disaster attention, education and health.", + "about.project_description.founders.header": "Founding Partners", + "about.project_description.founders.p": "This project is funded by Banc\u00f3ldex and Fundaci\u00f3n Mario Santo Domingo ", + "about.project_description.github": "See our code", + "about.project_description.intro.p1": "In Colombia, income gaps between regions are huge and have been growing: new job opportunities are increasingly concentrated in the metropolitan areas of Bogot\u00e1, Medell\u00edn and Cali, as well as a few places where oil and other minerals are extracted. The average income of residents of Bogot\u00e1 is four times that of Colombians living in the 12 poorest departments", + "about.project_description.intro.p2": "Datlas is a diagnostic tool that firms, investors and policymakers can use to improve the productivity of departments, cities and municipalities. It maps the geographical distribution of Colombia\u2019s productive activities and employment by department, metropolitan area and municipality, and identifies exports and industries of potential to increase economic complexity and accelerate growth.", + "about.project_description.intro.p3": "Economic complexity is a measure of the amount of productive capabilities, or knowhow, that a country or a city has. Products are vehicles for knowledge. To make a shirt, one must design it, produce the fabric, cut it, sew it, pack it, market it and distribute it. For a country to produce shirts, it needs people who have expertise in each of these areas. Each of these tasks involves many more capabilities than any one person can master. Only by combining know-how from different people can any one product be made. The road to economic development involves increasing what a society knows how to do. Countries with more productive capabilities can make a greater diversity of products. Economic growth occurs when countries develop the capabilities and productive knowledge to produce more, and more complex, products.", + "about.project_description.intro.p4": "This conceptual approach, which has been applied at the international level in The Atlas of Economic Complexity, is now used in this online tool to investigate export and industry possibilities at the sub-national level in Colombia.", + "about.project_description.letter.header": "Sign up for our Newsletter", + "about.project_description.letter.p": "Sign up for CID\u2019s Research Newsletter to keep up-to-date with related breakthrough research and practical tools, including updates to this site http://www.hks.harvard.edu/centers/cid/news-events/subscribe ", + "about.project_description.team.header": "Academic and Technical Team", + "about.project_description.team.p": "Academic team at Harvard\u2019s CID: Ricardo Hausmann (director), Eduardo Lora (coordinator), Tim Cheston, Andr\u00e9s G\u00f3mez-Li\u00e9vano, Jos\u00e9 Ram\u00f3n Morales, Neave O\u2019Clery and Juan T\u00e9llez. Programming and visualization team at Harvard\u2019s CID: Greg Shapiro (coordinator), Mali Akmanalp, Katy Harris, Quinn Lee, Romain Vuillemot, and Gus Wezerek. Statistical advisor in Colombia: Marcela Eslava (Universidad de los Andes). Compilation and processing of job vacancies data in Colombia: Jeisson Arley C\u00e1rdenas Rubio (Universidad del Rosario, Bogot\u00e1) and Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics).", + "about.project_description_name": "About", + "census_year": "2014", + "country.show.ag_farmsize": "45.99 ha", + "country.show.dotplot-column": "Departments Across Colombia", + "country.show.eci": "0.037", + "country.show.economic_structure": "Economic Structure", + "country.show.economic_structure.copy.p1": "With a population of 48.1 million (as of May 2015), Colombia is the third largest country in Latin America. Its total GDP in 2014 was Col$756.1 trillion, or US$377.9 billion at the average exchange rate of 2014 (1 US dollar = 2000.6 Colombian pesos). In 2014, income per capita reached Col$15,864,953 or US$7,930. Yearly economic growth since 2008 has averaged 4.3% (or 3.1% in per capita terms).", + "country.show.economic_structure.copy.p2": "Business and financial services contribute 18.8% of GDP, making it the largest industry, followed by governmental, communal and personal services (16.5%) and manufacturing activities (11.2%). Bogot\u00e1 D.C., Antioquia and Valle del Cauca represent nearly half of economic activity, contributing 24.7, 13.1 and 9.2% to total GDP, respectively. However, two oil-producing departments \u2013 Casanare and Meta \u2013 boast the highest GDP per capita. The following graphs provide more details.", + "country.show.employment_wage_occupation": "Formal Employment, Occupations and Wages", + "country.show.employment_wage_occupation.copy.p1": "In 2014, approximately 21.6 million Colombians were occupied in either a formal or an informal job, increasing slightly over 2013, at 21.1 million. The registries of the PILA, which cover the universe of workers who make contributions to the social security system, indicate that 13.3 million workers were occupied for some period in a formal job in 2013. Taking into account the number of months occupied, the effective number of year-round workers in the formal sector in 2013 was 6.7 million. Bogot\u00e1 DC, Antioquia and Valle del Cauca generate, respectively 32.7, 16.7, and 10.7% of (effective) formal employment.", + "country.show.employment_wage_occupation.copy.p2": "The following graphs present more detailed information on the patterns of formal employment and wages paid based on PILA. Also included is data on vacancies announced and wages offered by occupation, computed from job announcements placed by firms on internet sites in 2014.", + "country.show.export_complexity_possibilities": "Export Complexity and Possibilities", + "country.show.export_complexity_possibilities.copy.p1": "The concept of export complexity is similar to that of industry complexity introduced above. It has been found that countries that export products that are relatively complex for their level of economic development tend to grow faster than countries that export relatively simple products. Based on the complexity of its export basket in 2013, Colombia ranks 53rd among 124 countries and is predicted to grow at an annual rate of 3.3% in the period 2013-2023 based on its economic complexity.", + "country.show.export_complexity_possibilities.copy.p2": "The \u2018Product Technological Similarity Space\u2019 (or Product Space) shown below is a graphical network representation of technological similarities across all export products, and is based on international export patterns. Each dot or node represents a product; nodes connected by lines require similar capabilities. More connected products are clustered towards the middle of the network, implying that the capabilities they use can be deployed in the production of many other products.", + "country.show.export_complexity_possibilities.copy.p3": "The highlighted nodes represent the products that Colombia exports in relatively large amounts (more precisely, with revealed comparative advantage higher than one, see the Glossary). Colors represent product groupings (which match the colors used in the industry technological space shown above). The figure further below and the accompanying table show what export products offer the best possibilities for Colombia, given the capabilities the country already has and how \u2018distant\u2019 are those capabilities to the ones needed for each product.", + "country.show.exports": "Exports", + "country.show.exports.copy.p1": "Colombia exported US$54.8 billion in 2014, down from $58.8 billion in 2013 and $60.1 billion in 2012. Its main export partners are the United States, Venezuela, Ecuador and Peru. In 2014, mining products (of which oil, coal and nickel are the largest items) comprised 59.3% of total merchandise exports, manufactured goods contributed 35.6%, and agricultural products totaled 4.6% of exports. The following graphs provide further details.", + "country.show.exports_composition_by_department": "Export Composition by Department ({{year}})", + "country.show.exports_composition_by_products": "Export Composition by Product ({{year}})", + "country.show.gdp": "Col $756,152 T", + "country.show.gdp_per_capita": "Col $15.864.953", + "country.show.industry_complex": "Industry Complexity", + "country.show.industry_complex.copy.p1": "Industry complexity is a measure of the range of capabilities, skills or know-how required by an industry. Industries such as chemicals and machinery are said to be highly complex, because they require a sophisticated level of productive knowledge likely to be present only in large organizations where a number of highly specialized individuals interact. Conversely, industries such as retail trade or restaurants require only a basic level of know-how which may be found at a family-run business. More complex industries contribute to raising productivity and income per- capita. Departments and cities with more complex industries have a more diversified industrial base and tend to create more formal employment.", + "country.show.industry_complex.copy.p2": "The 'IndustryTechnological Similarity Space\u2019 (or Industry Space) shown below is a graphical representation of the similarity between the capabilities and know-how required by pairs of industries. Each dot or node represents an industry; nodes connected by lines require similar capabilities. More connected industries use capabilities that can be deployed in many other industries. Colors represent industry groupings.", + "country.show.industry_space": "Industry Space", + "country.show.nonag_farmsize": "4.53 ha", + "country.show.occupation.num_vac": "Total advertised vacancies (2014)", + "country.show.population": "48.1 million", + "country.show.product_space": "Product Space", + "country.show.total": "Total", + "ctas.csv": "CSV", + "ctas.download": "Download this data", + "ctas.embed": "Embed", + "ctas.excel": "Excel", + "ctas.export": "Export", + "ctas.facebook": "Facebook", + "ctas.pdf": "PDF", + "ctas.png": "PNG", + "ctas.share": "Share", + "ctas.twitter": "Twitter", + "currency": "Col$", + "decimal_delmiter": ".", + "downloads.cta_download": "Download", + "downloads.cta_na": "Not available", + "downloads.head": "About the Data", + "downloads.industry_copy": "PILA (the Integrated Report of Social Security Contributions), managed by the Ministry of Health) is the main source of industry data. It contains information on formal employment, wages and number of firms by municipality and industry. Colombia\u2019s industry classification is a modified version of the International Standard Industrial Classification of All Economic Activities (ISIC). The list of industries can be found in the downloadable databases for industries. The list of industries in the ISIC which are not included in the industry space (for reasons explained in \"Calculation Methods\") can be downloaded here.", + "downloads.industry_head": "Industry data (PILA)", + "downloads.industry_row_1": "Employment, wages, number of firms and complexity indicators ({{yearRange}})", + "downloads.list_of_cities.header": "Lists of departments, cities and municipalities", + "downloads.map.cell": "Map boundary and geo data is from GeoFabrik.de, based on OpenStreetMap data", + "downloads.map.header": "Map Data", + "downloads.occupations_copy": "All data on occupations (wages offered by occupation and industry, and occupational structure by industry) come from job vacancy announcements placed by firms in public and private Internet job sites. Occupations are classified according to the Occupational Information Network Numerical Index (ONET). The data were processed by Jeisson Arley C\u00e1rdenas Rubio, researcher of Universidad del Rosario, Bogot\u00e1, and Jaime Mauricio Monta\u00f1a Doncel, Masters student at the Paris School of Economics.", + "downloads.occupations_head": "Occupations data", + "downloads.occupations_row_1": "Job vacancies and wages offered (2014)", + "downloads.other_copy": "DANE (the National Statistical Office) is the source of all data on GDP and population.", + "downloads.other_head": "Other data (DANE)", + "downloads.other_row_1": "GDP and demographic variables", + "downloads.thead_departments": "Departments", + "downloads.thead_met": "Cities", + "downloads.thead_muni": "Municipalities", + "downloads.thead_national": "National", + "downloads.trade_copy": "The source of all data on exports and imports by department and municipality is DIAN\u2019s Customs Data (DIAN is the National Tax and Customs Authority). Colombian Customs uses the product classification NANDINA, which matches the Harmonized System (HS) classification at the 6-digit level. We then standardize that to HS 1992 in order to fix any version inconsistencies across the years in order to be able to view the data over time. The list of products can be found in the downloadable databases for exports and imports.

The origin of an export is established in two stages. First, the department of origin is defined as the last place of processing, assembly or packaging, according with DIAN. Then, export values are distributed among municipalities according with the composition of employment of the exporting firm based on PILA (for firms without this information the value is assigned to the capital of department). In the case of petroleum oil (2709) and gas (2711), total export values were distributed by origin according to production by municipality (sources: Hydrocarbons National Agency and Colombian Petroleum Association), and in the case of oil refined products (2710), according to value added by municipality (industries 2231, 2322 y 2320 SIIC revision 3, Annual Manufacturing Survey, DANE).

\u00a0

Export totals by product may not correspond to official data because the following are excluded: (a) exports lacking information on the industry of the exporter and/or the department or municipality of origin, and (b) exports for which DIAN reports free zones as the place of destination; while the following are included: (c) exports from free zones, which DIAN does not include in those export totals.

In a similar fashion, import totals by product may not correspond to official data because the following are excluded: (a) imports lacking information on the department or municipality of destination, and (b) imports for which DIAN reports free zones as the place of origin; while the following are included: (c) imports done by free zones, which DIAN does not include in those import totals.

A file that describes the correspondence between the HS version used by DIAN and HS 1992 can be found here.

Included here is a file with the list of products in the Harmonized System that are not represented in the product space (for reasons explained in \"Calculation Methods\").", + "downloads.trade_head": "Trade data (DIAN)", + "downloads.trade_row_1": "Exports, imports and export complexity indicators ({{yearRange}})", + "downloads.trade_row_2": "Exports and imports with country of destination and origin ({{yearRange}})", + "first_year": "2008", + "general.export_and_import": "Products", + "general.geo": "Geographic map", + "general.glossary": "Glossary", + "general.industries": "Industries", + "general.industry": "industry", + "general.location": "location", + "general.locations": "Locations", + "general.multiples": "Area charts", + "general.occupation": "occupation", + "general.occupations": "Occupations", + "general.product": "product", + "general.scatter": "Scatterplot", + "general.similarity": "Industry Space", + "general.total": "Total", + "general.treemap": "Treemap", + "geomap.center": "4.6,-74.06", + "glossary.head": "Glossary", + "graph_builder.builder_mod_header.agproduct.departments.land_harvested": "Land Harvested (ha)", + "graph_builder.builder_mod_header.agproduct.departments.land_sown": "Land Sown (ha)", + "graph_builder.builder_mod_header.agproduct.departments.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.agproduct.municipalities.land_harvested": "Land Harvested (ha)", + "graph_builder.builder_mod_header.agproduct.municipalities.land_sown": "Land Sown (ha)", + "graph_builder.builder_mod_header.agproduct.municipalities.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.industry.cities.employment": "Total employment", + "graph_builder.builder_mod_header.industry.cities.wage_avg": "Average monthly wages, Col$", + "graph_builder.builder_mod_header.industry.cities.wages": "Total wages, Col$", + "graph_builder.builder_mod_header.industry.departments.employment": "Total employment", + "graph_builder.builder_mod_header.industry.departments.wage_avg": "Average monthly wages, Col$", + "graph_builder.builder_mod_header.industry.departments.wages": "Total wages, Col$", + "graph_builder.builder_mod_header.industry.locations.employment": "Total employment", + "graph_builder.builder_mod_header.industry.locations.wage_avg": "Average monthly wages, Col$", + "graph_builder.builder_mod_header.industry.locations.wages": "Total wages, Col$", + "graph_builder.builder_mod_header.industry.occupations.num_vacancies": "Total advertised vacancies", + "graph_builder.builder_mod_header.landUse.departments.area": "Total Area", + "graph_builder.builder_mod_header.landUse.municipalities.area": "Total Area ", + "graph_builder.builder_mod_header.location.agproducts.land_harvested": "Land harvested (hectares)", + "graph_builder.builder_mod_header.location.agproducts.land_sown": "Land sown (hectares)", + "graph_builder.builder_mod_header.location.agproducts.production_tons": "Production (tons)", + "graph_builder.builder_mod_header.location.farmtypes.num_farms": "Number of farms", + "graph_builder.builder_mod_header.location.industries.employment": "Total employment", + "graph_builder.builder_mod_header.location.industries.scatter": "Complexity,distance and opportunity gain of potential industries", + "graph_builder.builder_mod_header.location.industries.similarity": "Industries with revealed comparative advantage >1 (colored) and <1 (grey)", + "graph_builder.builder_mod_header.location.industries.wages": "Total wages", + "graph_builder.builder_mod_header.location.landUses.area": "Total Area ", + "graph_builder.builder_mod_header.location.livestock.num_farms": "Number of livestock farms", + "graph_builder.builder_mod_header.location.livestock.num_livestock": "Number of livestock", + "graph_builder.builder_mod_header.location.partners.export_value": "Total exports", + "graph_builder.builder_mod_header.location.partners.import_value": "Total imports", + "graph_builder.builder_mod_header.location.products.export_value": "Total exports", + "graph_builder.builder_mod_header.location.products.import_value": "Total imports", + "graph_builder.builder_mod_header.location.products.scatter": "Complexity, distance and opportunity gain of potential export products", + "graph_builder.builder_mod_header.location.products.similarity": "Export products with revealed comparative advantage >1 (colored) and <1 (grey)", + "graph_builder.builder_mod_header.product.cities.export_value": "Total Exports", + "graph_builder.builder_mod_header.product.cities.import_value": "Total Imports", + "graph_builder.builder_mod_header.product.departments.export_value": "Total Exports", + "graph_builder.builder_mod_header.product.departments.import_value": "Total Imports", + "graph_builder.builder_mod_header.product.partners.export_value": "Total exports", + "graph_builder.builder_mod_header.product.partners.import_value": "Total imports", + "graph_builder.builder_nav.header": "More graphs for this {{entity}}", + "graph_builder.builder_nav.intro": "Select a question to see the corresponding graph. If the question has missing parameters ({{icon}}) , you\u2019ll fill those in when you click.", + "graph_builder.builder_questions.city": "Questions: Cities", + "graph_builder.builder_questions.department": "Questions: Departments", + "graph_builder.builder_questions.employment": "Questions: Employment", + "graph_builder.builder_questions.export": "Questions: Exports", + "graph_builder.builder_questions.import": "Questions: Imports", + "graph_builder.builder_questions.industry": "Questions: Industries", + "graph_builder.builder_questions.landUse": "Questions: Land Use ", + "graph_builder.builder_questions.location": "Questions: Locations", + "graph_builder.builder_questions.occupation": "Questions: Occupations", + "graph_builder.builder_questions.partner": "Questions: Partners", + "graph_builder.builder_questions.product": "Questions: Products", + "graph_builder.builder_questions.wage": "Questions: Total Wages", + "graph_builder.change_graph.geo_description": "Map the data", + "graph_builder.change_graph.label": "Change graph", + "graph_builder.change_graph.multiples_description": "Compare growth over time", + "graph_builder.change_graph.scatter_description": "Plot complexity and distance", + "graph_builder.change_graph.similarity_description": "Show revealed comparative advantages", + "graph_builder.change_graph.treemap_description": "See composition at different levels", + "graph_builder.change_graph.unavailable": "Graph is unavailable for this question", + "graph_builder.download.agproduct": "Agricultural Product", + "graph_builder.download.area": "Area", + "graph_builder.download.average_wages": "Avg. monthly wage, Col$", + "graph_builder.download.avg_wage": "Avg. monthly wage, Col$", + "graph_builder.download.code": "Code", + "graph_builder.download.cog": "Opportunity gain", + "graph_builder.download.complexity": "Complexity", + "graph_builder.download.distance": "Distance", + "graph_builder.download.eci": "Export complexity", + "graph_builder.download.employment": "Employment", + "graph_builder.download.employment_growth": "Employment growth rate ({{yearRange}})", + "graph_builder.download.export": "Export", + "graph_builder.download.export_num_plants": "Firm number", + "graph_builder.download.export_rca": "Revealed comparative advantage", + "graph_builder.download.export_value": "Exports, USD", + "graph_builder.download.farmtype": "Farm Type", + "graph_builder.download.gdp_pc_real": "GDP per Capita, Col $", + "graph_builder.download.gdp_real": "GDP, Col $", + "graph_builder.download.import_value": "Imports, USD", + "graph_builder.download.industry": "Industry", + "graph_builder.download.industry_eci": "Industry complexity", + "graph_builder.download.land_harvested": "Land harvested (ha)", + "graph_builder.download.land_sown": "Land sown (ha)", + "graph_builder.download.land_use": "Land Use", + "graph_builder.download.less_than_5": "Less than 5", + "graph_builder.download.livestock": "Livestock", + "graph_builder.download.location": "Location", + "graph_builder.download.monthly_wages": "Avg. monthly wage, Col$", + "graph_builder.download.name": "Name", + "graph_builder.download.num_establishments": "Firm number", + "graph_builder.download.num_farms": "Number of farms", + "graph_builder.download.num_livestock": "Number of livestock", + "graph_builder.download.num_vacancies": "Vacancies", + "graph_builder.download.occupation": "Occupation", + "graph_builder.download.parent": "Parent", + "graph_builder.download.population": "Population", + "graph_builder.download.production_tons": "Production (tons)", + "graph_builder.download.rca": "Revealed comparative advantage", + "graph_builder.download.read_more": "Unfamiliar with any of the indicators above? Look them up in the", + "graph_builder.download.wages": "Total wages, Col$", + "graph_builder.download.year": "Year", + "graph_builder.download.yield_index": "Yield Index", + "graph_builder.download.yield_ratio": "Yield (tons/ha)", + "graph_builder.explanation": "Explanation", + "graph_builder.explanation.agproduct.departments.land_harvested": "Shows the composition of locations that harvest this agricultural product, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.departments.land_sown": "Shows the composition of locations that sow this agricultural product, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.departments.production_tons": "Shows the composition of locations that produce this agricultural product, by tons produced. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.land_harvested": "Shows the composition of locations that harvest this agricultural product, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.land_sown": "Shows the composition of locations that sow this agricultural product, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.production_tons": "Shows the composition of locations that produce this agricultural product, by tons produced. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.hide": "Hide", + "graph_builder.explanation.industry.cities.employment": "Shows the composition by department of formal employment in the industry. Source: PILA.", + "graph_builder.explanation.industry.cities.wages": "Shows the composition by department of total wages paid by the industry. Source: PILA.", + "graph_builder.explanation.industry.departments.employment": "Shows the composition by department of formal employment in the industry. Source: PILA.", + "graph_builder.explanation.industry.departments.wages": "Shows the composition by department of total wages paid by the industry. Source: PILA.", + "graph_builder.explanation.industry.occupations.num_vacancies": "Shows the composition of vacancies announced in Internet sites and wages offered.", + "graph_builder.explanation.landUse.departments.area": "Shows the composition of locations that use land in this specific way, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.landUse.municipalities.area": "Shows the composition of locations that use land in this specific way, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.agproducts.land_harvested": "Shows the composition of agricultural products of this location, by area of land harvested. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.land_sown": "Shows the composition of agricultural products of this location, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.production_tons": "Shows the composition of agricultural products of this location, by weight. Source: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.farmtypes.num_farms": "Shows the composition of farms in this location, by type of farm. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.industries.employment": "Shows the industry composition of formal empoyment in the department. Source: PILA.", + "graph_builder.explanation.location.industries.scatter": "Dots represent industries. Upon selecting a dot, a display shows the industry name and its revealed comparative advantage in the location. Colors represent industry groups (see the table). The vertical axis is the Industry Complexity Index and the horizontal axis is the Distance from the existing industries, where shorter distances mean that the location has more of the knowhow needed to develop the industry. The size of the dots is proportional to the Opportunity Gain of the industry for the department, namely the potential that the industry offers for the department to acquire new capabilities that may help to develop other industries. The more interesting industries are the ones located at the top left, especially if the dots are large. Source: calculations by CID based on PILA data. (The glossary offers more detailed explanations of the concepts). ", + "graph_builder.explanation.location.industries.similarity": "The industry technological similarity space (or industry space) shows how similar is the knowhow required by any pair of industries. Each dot represents an industry. Dots connected with a line represent industries that require similar knowhow. Dots colored are industries with revealed comparative advantage (RCA) higher than one in the department or city. Each color corresponds to an industry group (see table). Upon selecting a dot, a display shows the industry name, its RCA and its links to other industries. Source: calculations by CID based on PILA data. (The glossary offers more detailed explanations of the concepts).", + "graph_builder.explanation.location.industries.wages": "Shows the industry composition of total wages paid in the department or city. Source: PILA.", + "graph_builder.explanation.location.landUses.area": "Shows the composition of land uses in this location, by area. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.livestock.num_farms": "Shows the composition of livestock types of this location, by number of farms. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.livestock.num_livestock": "Shows the composition of livestock types of this location, by number of livestock. Source: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE).", + "graph_builder.explanation.location.partners.export_value": "Shows the destination country composition of exports of this place, nested by world regions. Source: DIAN.", + "graph_builder.explanation.location.partners.import_value": "Shows the countries from which this location imports products, nested by world regions. Source: DIAN.", + "graph_builder.explanation.location.products.export_value": "Shows the product composition of exports of the department or city. Colors represent product groups (see table). Source: DIAN.", + "graph_builder.explanation.location.products.import_value": "Shows the product composition of imports of the department or city. Colors represent product groups (see table). Source: DIAN.", + "graph_builder.explanation.location.products.scatter": "Dots represent export products. Upon selecting a dot, a display shows the product name and its revealed comparative advantage in the department or city. Colors represent product groups (see the table). The vertical axis is the Product Complexity Index and the horizontal axis is the Distance from the existing exports, where shorter distances mean that the location has more of the knowhow needed to export the product. The dashed line is the average Index of Economic Complexity of the place. The size of the dots is proportional to the Opportunity Gain of the export for the department or city, namely the potential that exporting the product offers for the department or city to acquire new capabilities that may help to export other products. The more interesting export products are the ones located at the top left, especially if the dots are large. Source: calculations by CID based on DIAN data. (The glossary offers more detailed explanations of the concepts). ", + "graph_builder.explanation.location.products.similarity": "The product technological similarity space (or product space) shows how similar is the knowhow required by any pair of export products. Each dot represents an export product. Dots connected with a line represent products that require similar knowhow. Dots colored are products with revealed comparative advantage (RCA) higher than one in the department or city. Each color corresponds to an export group (see table). Upon selecting a dot, a display shows the product name, its RCA and its links to other products. Source: calculations by CID based on DIAN data. (The glossary offers more detailed explanations of the concepts).", + "graph_builder.explanation.product.cities.export_value": "Shows the composition by city of the product exports. Source: DIAN.", + "graph_builder.explanation.product.cities.import_value": "Shows the composition by city of the product imports. Source: DIAN.", + "graph_builder.explanation.product.departments.export_value": "Shows the composition by department of the product exports. Source: DIAN.", + "graph_builder.explanation.product.departments.import_value": "Shows the composition by department of the product imports. Source: DIAN.", + "graph_builder.explanation.product.partners.export_value": "Shows where Colombia exports this product to, nested by world regions. Source: DIAN.", + "graph_builder.explanation.product.partners.import_value": "Shows where Colombia imports this product from, nested by world regions. Source: DIAN.", + "graph_builder.explanation.show": "Show", + "graph_builder.multiples.show_all": "Show All", + "graph_builder.page_title.agproduct.departments.land_harvested": "What departments harvest this agricultural product?", + "graph_builder.page_title.agproduct.departments.land_sown": "What departments sow this agricultural product?", + "graph_builder.page_title.agproduct.departments.production_tons": "What departments produce this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.land_harvested": "What municipalities harvest this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.land_sown": "What municipalities sow this agricultural product?", + "graph_builder.page_title.agproduct.municipalities.production_tons": "What municipalities produce this agricultural product?", + "graph_builder.page_title.industry.cities.employment": "What cities in Colombia does this industry employ the most people?", + "graph_builder.page_title.industry.cities.wages": "What cities in Colombia does this industry pay the highest total wages?", + "graph_builder.page_title.industry.departments.employment": "What departments in Colombia does this industry employ the most people?", + "graph_builder.page_title.industry.departments.wages": "What departments in Colombia does this industry pay the highest total wages?", + "graph_builder.page_title.industry.occupations.num_vacancies": "What occupations does this industry employ?", + "graph_builder.page_title.landUse.departments.area": "Which departments have this type of land use?", + "graph_builder.page_title.landUse.municipalities.area": "Which municipalities have this type of land use?", + "graph_builder.page_title.location.agproducts.land_harvested.country": "What agricultural products are harvested in Colombia?", + "graph_builder.page_title.location.agproducts.land_harvested.department": "What agricultural products are harvested in this department?", + "graph_builder.page_title.location.agproducts.land_harvested.municipality": "What agricultural products are harvested in this municipality?", + "graph_builder.page_title.location.agproducts.land_sown.country": "What agricultural products are planted in Colombia?", + "graph_builder.page_title.location.agproducts.land_sown.department": "What agricultural products are planted in this department?", + "graph_builder.page_title.location.agproducts.land_sown.municipality": "What agricultural products are planted in this municipality?", + "graph_builder.page_title.location.agproducts.production_tons.country": "What agricultural products are produced in Colombia?", + "graph_builder.page_title.location.agproducts.production_tons.department": "What agricultural products are produced in this department?", + "graph_builder.page_title.location.agproducts.production_tons.municipality": "What agricultural products are produced in this municipality?", + "graph_builder.page_title.location.destination_by_product.export_value.department": "Where does this department export oil to?", + "graph_builder.page_title.location.destination_by_product.import_value.department": "Where does this department import cars from?", + "graph_builder.page_title.location.farmtypes.num_farms.country": "What types of farms are there in Colombia?", + "graph_builder.page_title.location.farmtypes.num_farms.department": "What types of farms are there in this department?", + "graph_builder.page_title.location.farmtypes.num_farms.municipality": "What types of farms are there in this municipality?", + "graph_builder.page_title.location.industries.employment.country": "What industries in Colombia employ the most people?", + "graph_builder.page_title.location.industries.employment.department": "What industries in this department employ the most people?", + "graph_builder.page_title.location.industries.employment.msa": "What industries in this city employ the most people?", + "graph_builder.page_title.location.industries.employment.municipality": "What industries in this municipality employ the most people?", + "graph_builder.page_title.location.industries.scatter.country": "What relatively complex industries have the most possibilities for Colombia?", + "graph_builder.page_title.location.industries.scatter.department": "What relatively complex industries have the most possibilities for this department?", + "graph_builder.page_title.location.industries.scatter.msa": "What relatively complex industries have the most possibilities for this city?", + "graph_builder.page_title.location.industries.scatter.municipality": "What relatively complex industries have the most possibilities for this municipality?", + "graph_builder.page_title.location.industries.similarity.country": "Where is Colombia in the industry space?", + "graph_builder.page_title.location.industries.similarity.department": "Where is this department in the industry space?", + "graph_builder.page_title.location.industries.similarity.msa": "Where is this city in the industry space?", + "graph_builder.page_title.location.industries.similarity.municipality": "Where is this municipality in the industry space?", + "graph_builder.page_title.location.industries.wages.country": "What industries in Colombia are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.department": "What industries in this department are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.msa": "What industries in this city are the largest by total wages?", + "graph_builder.page_title.location.industries.wages.municipality": "What industries in this municipality are the largest by total wages?", + "graph_builder.page_title.location.landUses.area.country": "Which types of land uses are in Colombia?", + "graph_builder.page_title.location.landUses.area.department": "Which types of land uses are in this department?", + "graph_builder.page_title.location.landUses.area.municipality": "Which types of land uses are in this municipality?", + "graph_builder.page_title.location.livestock.num_farms.country": "What kinds of livestock farms does Colombia have?", + "graph_builder.page_title.location.livestock.num_farms.department": "What kinds of livestock farms does this department have?", + "graph_builder.page_title.location.livestock.num_farms.municipality": "What kinds of livestock farms does this municipality have?", + "graph_builder.page_title.location.livestock.num_livestock.country": "What kinds of livestock does Colombia have?", + "graph_builder.page_title.location.livestock.num_livestock.department": "What kinds of livestock does this department have?", + "graph_builder.page_title.location.livestock.num_livestock.municipality": "What kinds of livestock does this municipality have?", + "graph_builder.page_title.location.partners.export_value.country": "What countries does Colombia export to?", + "graph_builder.page_title.location.partners.export_value.department": "What countries does this department export to?", + "graph_builder.page_title.location.partners.export_value.msa": "What countries does this city export to?", + "graph_builder.page_title.location.partners.export_value.municipality": "What countries does this municipality export to?", + "graph_builder.page_title.location.partners.import_value.country": "What countries does Colombia import from?", + "graph_builder.page_title.location.partners.import_value.department": "What countries does this department import from?", + "graph_builder.page_title.location.partners.import_value.msa": "What countries does this city import from?", + "graph_builder.page_title.location.partners.import_value.municipality": "What countries does this municipality import from?", + "graph_builder.page_title.location.products.export_value.country": "What products does Colombia export?", + "graph_builder.page_title.location.products.export_value.department": "What products does this department export?", + "graph_builder.page_title.location.products.export_value.msa": "What products does this city export?", + "graph_builder.page_title.location.products.export_value.municipality": "What products does this municipality export?", + "graph_builder.page_title.location.products.import_value.country": "What products does Colombia import?", + "graph_builder.page_title.location.products.import_value.department": "What products does this department import?", + "graph_builder.page_title.location.products.import_value.msa": "What products does this city import?", + "graph_builder.page_title.location.products.import_value.municipality": "What products does this municipality import?", + "graph_builder.page_title.location.products.scatter.country": "What products have the most potential for Colombia?", + "graph_builder.page_title.location.products.scatter.department": "What products have the most potential for this department?", + "graph_builder.page_title.location.products.scatter.msa": "What products have the most potential for this city?", + "graph_builder.page_title.location.products.scatter.municipality": "What products have the most potential for this municipality?", + "graph_builder.page_title.location.products.similarity.country": "Where is Colombia in the product space?", + "graph_builder.page_title.location.products.similarity.department": "Where is this department in the product space?", + "graph_builder.page_title.location.products.similarity.msa": "Where is this city in the product space?", + "graph_builder.page_title.location.products.similarity.municipality": "Where is this municipality in the product space?", + "graph_builder.page_title.product.cities.export_value": "What cities in Colombia export this product?", + "graph_builder.page_title.product.cities.import_value": "What cities in Colombia import this product?", + "graph_builder.page_title.product.departments.export_value": "What departments in Colombia export this product?", + "graph_builder.page_title.product.departments.import_value": "What departments in Colombia import this product?", + "graph_builder.page_title.product.partners.export_value": "Where does Colombia export this product to?", + "graph_builder.page_title.product.partners.export_value.destination": "Where does {{location}} export {{product}} to?", + "graph_builder.page_title.product.partners.import_value": "Where does Colombia import this product from?", + "graph_builder.page_title.product.partners.import_value.origin": "Where does {{location}} import {{product}} from?", + "graph_builder.questions.label": "Change question", + "graph_builder.recirc.header.industry": "Read the profile for this industry", + "graph_builder.recirc.header.location": "Read the profile for this location", + "graph_builder.recirc.header.product": "Read the profile for this product", + "graph_builder.search.placeholder.agproducts": "Highlight agricultural products in the graph below", + "graph_builder.search.placeholder.cities": "Highlight a city on the graph below", + "graph_builder.search.placeholder.departments": "Highlight a department on the graph below", + "graph_builder.search.placeholder.farmtypes": "Highlight a farm type in the graph below", + "graph_builder.search.placeholder.industries": "Highlight industries on the graph below", + "graph_builder.search.placeholder.landUses": "Highlight a land use on the graph below", + "graph_builder.search.placeholder.livestock": "Highlight a livestock type in the graph below", + "graph_builder.search.placeholder.locations": "Highlight locations on the graph below", + "graph_builder.search.placeholder.municipalities": "Highlight a municipality on the graph below", + "graph_builder.search.placeholder.occupations": "Highlight an occupation on the graph below", + "graph_builder.search.placeholder.partners": "Highlight trade partners on the graph below", + "graph_builder.search.placeholder.products": "Highlight products on the graph below", + "graph_builder.search.submit": "Highlight", + "graph_builder.settings.change_time": "Change time period", + "graph_builder.settings.close_settings": "Save and close", + "graph_builder.settings.label": "Change Characteristics", + "graph_builder.settings.rca": "Revealed comparative advantage", + "graph_builder.settings.rca.all": "All", + "graph_builder.settings.rca.greater": "> 1", + "graph_builder.settings.rca.less": "< 1", + "graph_builder.settings.to": "to", + "graph_builder.settings.year": "Years", + "graph_builder.settings.year.next": "Next", + "graph_builder.settings.year.previous": "Previous", + "graph_builder.table.agproduct": "Agricultural Product", + "graph_builder.table.area": "Area ", + "graph_builder.table.average_wages": "Avg. monthly wage, Col$", + "graph_builder.table.avg_wage": "Avg. monthly wage, Col$", + "graph_builder.table.code": "Code", + "graph_builder.table.cog": "Opportunity gain", + "graph_builder.table.coi": "Export complexity outlook", + "graph_builder.table.complexity": "Complexity", + "graph_builder.table.country": "Country", + "graph_builder.table.distance": "Distance", + "graph_builder.table.eci": "Export complexity", + "graph_builder.table.employment": "Employment", + "graph_builder.table.employment_growth": "Employment growth rate ({{yearRange}})", + "graph_builder.table.export": "Export", + "graph_builder.table.export_num_plants": "Firm number", + "graph_builder.table.export_rca": "Revealed comparative advantage", + "graph_builder.table.export_value": "Exports, USD", + "graph_builder.table.farmtype": "Farm Type", + "graph_builder.table.gdp_pc_real": "GDP per Capita", + "graph_builder.table.gdp_real": "GDP", + "graph_builder.table.import_value": "Imports, USD", + "graph_builder.table.industry": "Industry", + "graph_builder.table.industry_coi": "Industry complexity outlook", + "graph_builder.table.industry_eci": "Industry complexity", + "graph_builder.table.land_harvested": "Land harvested (ha)", + "graph_builder.table.land_sown": "Land sown (ha)", + "graph_builder.table.land_use": "Land Use", + "graph_builder.table.less_than_5": "Less than 5", + "graph_builder.table.livestock": "Livestock", + "graph_builder.table.location": "Location", + "graph_builder.table.monthly_wages": "Avg. monthly wage, Col$", + "graph_builder.table.name": "Name", + "graph_builder.table.num_establishments": "Firm number", + "graph_builder.table.num_farms": "Number of farms", + "graph_builder.table.num_livestock": "Number of livestock", + "graph_builder.table.num_vacancies": "Vacancies", + "graph_builder.table.occupation": "Occupation", + "graph_builder.table.parent": "Parent", + "graph_builder.table.parent.country": "Region", + "graph_builder.table.population": "Population", + "graph_builder.table.production_tons": "Production (tons)", + "graph_builder.table.rca": "Revealed comparative advantage", + "graph_builder.table.read_more": "Unfamiliar with any of the indicators above? Look them up in the", + "graph_builder.table.share": "Share", + "graph_builder.table.wages": "Total wages, Col$ (in thousands)", + "graph_builder.table.year": "Year", + "graph_builder.table.yield_index": "Yield Index", + "graph_builder.table.yield_ratio": "Yield (tons/ha)", + "graph_builder.view_more": "View more", + "header.destination": "Destination", + "header.destination_by_products": "Destinations by Products", + "header.employment": "Employment", + "header.export": "Exports", + "header.import": "Imports", + "header.industry": "Industries", + "header.industry_potential": "Potential", + "header.industry_space": "Industry space", + "header.landUse": "Land Use", + "header.land_harvested": "Land Harvested", + "header.land_sown": "Land Sown", + "header.occupation": "Occupations", + "header.occupation.available_jobs": "Job openings", + "header.origin": "Origin", + "header.origin_by_products": "Origin by Products", + "header.overview": "Overview", + "header.partner": "Partners", + "header.product": "Products", + "header.product_potential": "Potential", + "header.product_space": "Product space", + "header.production_tons": "Production", + "header.region": "By department", + "header.subregion": "By city", + "header.subsubregion": "By municipality ", + "header.wage": "Total wages", + "index.builder_cta": "Build graphs about coffee", + "index.builder_head": "Then dive into the graph builder", + "index.builder_subhead": "Create graphs and maps for your presentations", + "index.complexity_caption": "How good is it? Country growth predictions using economic complexity were more than six times as accurate as conventional metrics, such as the Global Competitiveness Index.", + "index.complexity_cta": "Read more about complexity concepts", + "index.complexity_figure.WEF_name": "Global Competitiveness Index", + "index.complexity_figure.complexity_name": "Complexity ranking", + "index.complexity_figure.head": "Growth explained (percent of 10-year variance)", + "index.complexity_head": "The complexity advantage", + "index.complexity_subhead": "Countries that export complex products, which require a lot of knowledge, grow faster than those that export raw materials. Using the methods of measuring and visualizing economic complexity developed by Harvard University, Datlas helps to explore the production and export possibilities of every city and department in Colombia.", + "index.country_profile": "Read the profile for Colombia", + "index.dropdown.industries": "461,488", + "index.dropdown.locations": "41,87,34,40", + "index.dropdown.products": "1143,87", + "index.future_head": "Mapping the future", + "index.future_subhead": "Scatterplots and network diagrams help find the untapped markets best suited to a city or a department.", + "index.graphbuilder.id": "87", + "index.header_h1": "The Colombian Atlas of Economic Complexity", + "index.header_head": "You haven\u2019t seen Colombia like this before", + "index.header_subhead": "Visualize the possibilities for industries, exports and locations across Colombia.", + "index.industry_head": "Learn about an industry", + "index.industry_q1": "Where in Colombia does the chemical industry employ the most people?", + "index.industry_q1.id": "461", + "index.industry_q2": "What occupations are demanded by the chemical industry?", + "index.industry_q2.id": "461", + "index.location_head": "Learn about a location", + "index.location_q1": "What industries in Bogot\u00e1 Met employ the most people?", + "index.location_q1.id": "41", + "index.location_q2": "What products have the most potential in Bogot\u00e1 Met?", + "index.location_q2.id": "41", + "index.location_viewall": "See all questions", + "index.present_head": "Charting the present", + "index.present_subhead": "Use our treemaps, charts, and maps to break down your department, city or municipality\u2019s exports and employment.", + "index.product_head": "Learn about an export", + "index.product_q1": "What places in Colombia export computers?", + "index.product_q1.id": "1143", + "index.product_q2": "What places in Colombia import computers?", + "index.product_q2.id": "1143", + "index.profile.id": "1", + "index.profiles_cta": "Read the profile for Antioquia", + "index.profiles_head": "Start with our profiles", + "index.profiles_subhead": "Just the essentials, presented as a one-page summary", + "index.questions_head": "We\u2019re not a crystal ball, but we can answer a lot of questions", + "index.questions_subhead": "index.questions_subhead", + "index.research_head": "Research featured in", + "industry.show.avg_wages": "Average wages ({{year}})", + "industry.show.employment": "Employment ({{year}})", + "industry.show.employment_and_wages": "Formal employment and wages", + "industry.show.employment_growth": "Employment growth rate ({{yearRange}})", + "industry.show.industries": "Industries", + "industry.show.industry_composition": "Industry composition, {{year}}", + "industry.show.occupation": "Occupations", + "industry.show.occupation_demand": "Occupations most demanded by this industry, 2014", + "industry.show.value": "Value", + "last_year": "2014", + "location.model.country": "Colombia", + "location.model.department": "department", + "location.model.msa": "city", + "location.model.municipality": "municipality", + "location.show.ag_farmsize": "Avg. agricultural farm size (ha)", + "location.show.all_departments": "Compared to the other departments", + "location.show.all_regions": "Compared to the other locations", + "location.show.bullet.gdp_grow_rate": "The GDP growth rate in the period {{yearRange}} was {{gdpGrowth}}, compared to 5.3% for Colombia", + "location.show.bullet.gdp_pc": "{{name}} has a GDP per capita of {{lastGdpPerCapita}}, compared to Col$15.1 million for Colombia in 2014.", + "location.show.bullet.last_pop": "The population is {{lastPop}}, compared to 46.3 million in Colombia as a whole in 2014.", + "location.show.eci": "Export complexity", + "location.show.employment": "Employment ({{lastYear}})", + "location.show.employment_and_wages": "Formal employment and wages", + "location.show.export_possiblities": "Export possiblities", + "location.show.export_possiblities.footer": "Some exports make not be viable due to local factors not considered by the technological similarity approach.", + "location.show.export_possiblities.intro": "We\u2019ve found that countries which export complex products grow faster than those which export simple products. Using the product space presented above, we\u2019ve highlighted \u00a0high potential products for {{name}}, ranked by which have the highest combination of opportunity and complexity.", + "location.show.exports": "Exports ({{year}})", + "location.show.exports_and_imports": "Exports and imports", + "location.show.gdp": "GDP", + "location.show.gdp_pc": "GDP per Capita", + "location.show.growth_annual": "Growth rate ({{yearRange}})", + "location.show.imports": "Imports ({{year}})", + "location.show.nonag_farmsize": "Avg. nonagricultural farm size (ha)", + "location.show.overview": "Overview", + "location.show.population": "Population", + "location.show.subregion.exports": "Export Composition by Municipality ({{year}})", + "location.show.subregion.imports": "Import Composition by Municipality ({{year}})", + "location.show.subregion.title": "Export and Import by Municipality", + "location.show.total_wages": "Total wages ({{lastYear}})", + "location.show.value": "Value", + "pageheader.about": "About", + "pageheader.alternative_title": "Atlas of Economic Complexity", + "pageheader.brand_slogan": "You haven't seen Colombia like this before", + "pageheader.download": "About the Data", + "pageheader.graph_builder_link": "Graph Builder", + "pageheader.profile_link": "Profile", + "pageheader.rankings": "Rankings", + "pageheader.search_link": "Search", + "pageheader.search_placeholder": "Search for a location, product or industry", + "pageheader.search_placeholder.industry": "Search for a industry", + "pageheader.search_placeholder.location": "Search for a location", + "pageheader.search_placeholder.product": "Search for a product", + "rankings.explanation.body": "", + "rankings.explanation.title": "Explanation", + "rankings.intro.p": "Compare departments and cities across Colombia.", + "rankings.pagetitle": "Rankings", + "rankings.section.cities": "Cities", + "rankings.section.departments": "Departments", + "rankings.table-title": "rank", + "search.didnt_find": "Didn\u2019t find what you were looking for? Let us know: Datlascolombia@bancoldex.com", + "search.header": "results", + "search.intro": "Search for the location, product, industry or occupation that you\u2019re interested in", + "search.level.4digit": "HS (1992) four-digit", + "search.level.class": "ISIC four-digit", + "search.level.country": "Country", + "search.level.department": "Department", + "search.level.division": "ISIC two-digit", + "search.level.msa": "City", + "search.level.municipality": "Municipality", + "search.level.parent.4digit": "HS (1992) two-digit", + "search.level.parent.class": "ISIC two-digit", + "search.level.parent.country": "Region", + "search.placeholder": "Type here to search", + "search.results_industries": "Industries", + "search.results_locations": "Locations", + "search.results_products": "Products", + "table.export_data": "Export Data", + "thousands_delimiter": "," +}; \ No newline at end of file diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index 6f4a721d..2343801c 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -37,23 +37,23 @@ export default { "country.show.agproducts.production_tons": "Producci\u00f3n (toneladas)", "country.show.average_livestock_load": "628", "country.show.dotplot-column": "Departamentos de Colombia", - "country.show.eci": "0,037", + "country.show.eci": "0,35", "country.show.economic_structure": "Estructura econ\u00f3mica", - "country.show.economic_structure.copy.p1": "Con una poblaci\u00f3n de 49,5 millones (a diciembre 2017), Colombia es el tercer pa\u00eds m\u00e1s grande de Am\u00e9rica Latina. Su PIB total en 2016 fue Col $772,4 billones, o US$253,2 miles de millones a la tasa de cambio promedio de 2016 (1 US d\u00f3lar = 3.050 pesos colombianos). En 2016, se alcanz\u00f3 un nivel de ingreso per c\u00e1pita de Col $17.798.353 o US$5.806. Durante el a\u00f1o 2016 la econom\u00eda colombiana creci\u00f3 2%.", - "country.show.economic_structure.copy.p2": "Los servicios empresariales y financieros son el sector m\u00e1s grande, con una contribuci\u00f3n al PIB de 20,9%, seguidos por los servicios de gobierno, sociales y personales (15,4%) y las actividades manufactureras (11,2%). Bogot\u00e1 D.C., Antioquia y el Valle del Cauca concentran aproximadamente la mitad de la actividad productiva, con participaciones en el PIB de 25,7, 13,9 y 9,7%, respectivamente. Sin embargo, los departamentos con m\u00e1s alto PIB per c\u00e1pita son Casanare y Meta, ambos importantes productores de petr\u00f3leo. Los gr\u00e1ficos siguientes presentan m\u00e1s detalles.", + "country.show.economic_structure.copy.p1": "Con una poblaci\u00f3n de 49,5 millones (a diciembre 2017), Colombia es el tercer pa\u00eds m\u00e1s grande de Am\u00e9rica Latina. Su PIB total en 2017 fue Col $835,1 billones, o US$283 miles de millones a la tasa de cambio promedio de 2017 (1 US d\u00f3lar = 2.951 pesos colombianos). En 2017, se alcanz\u00f3 un nivel de ingreso per c\u00e1pita de Col $18.828.100 o US$6.380,24. Durante el a\u00f1o 2017 la econom\u00eda colombiana creci\u00f3 1.8%.", + "country.show.economic_structure.copy.p2": "Bogot\u00e1 D.C., Antioquia y el Valle del Cauca concentran aproximadamente la mitad de la actividad productiva, con participaciones en el PIB de 26,4%, 15% y 9%, respectivamente. Sin embargo, los departamentos con m\u00e1s alto PIB per c\u00e1pita son Casanare y Meta, ambos importantes productores de petr\u00f3leo. Los gr\u00e1ficos siguientes presentan m\u00e1s detalles.", "country.show.employment_wage_occupation": "Empleo formal, ocupaciones y salarios", - "country.show.employment_wage_occupation.copy.p1": "Los registros de la PILA, que cubren el universo de los trabajadores que hacen contribuciones al sistema de seguridad social, indican que el n\u00famero efectivo de trabajadores-a\u00f1o en el sector formal en 2016 fue 8,2 millones. Bogot\u00e1 DC, Antioquia y el Valle del Cauca generan, respectivamente 31,7%, 17,1%, and 10,8% del empleo formal (efectivo).", - "country.show.employment_wage_occupation.copy.p2": "Los siguientes gr\u00e1ficos ofrecen informaci\u00f3n m\u00e1s detallada de los patrones de empleo formal y los salarios pagados seg\u00fan los registros de PILA. Tambi\u00e9n se incluye informaci\u00f3n de vacantes anunciadas y salarios ofrecidos por ocupaci\u00f3n, calculados a partir de los anuncios colocados por empresas en sitios de Internet durante 2014.", + "country.show.employment_wage_occupation.copy.p1": "Los registros de la PILA, que cubren el universo de los trabajadores que hacen contribuciones al sistema de seguridad social, indican que el n\u00famero efectivo de trabajadores-a\u00f1o en el sector formal en 2016 fue 8,2 millones. Bogot\u00e1 DC, Antioquia y el Valle del Cauca generan, respectivamente 31,7%, 17,1%, y 10,8% del empleo formal (efectivo).", + "country.show.employment_wage_occupation.copy.p2": "Los siguientes gr\u00e1ficos ofrecen informaci\u00f3n m\u00e1s detallada de los patrones de empleo formal y los salarios pagados seg\u00fan los registros de PILA. Tambi\u00e9n se incluye informaci\u00f3n de vacantes anunciadas y salarios ofrecidos por ocupaci\u00f3n, calculados a partir de los anuncios colocados por empresas en sitios de Internet durante 2017.", "country.show.export_complexity_possibilities": "Complejidad de las exportaciones y posibilidades de exportaci\u00f3n", "country.show.export_complexity_possibilities.copy.p1": "El concepto de complejidad de las exportaciones es an\u00e1logo al de complejidad de los sectores sectorial presentado arriba, pero referido ahora a las exportaciones. Se mide mediante el \u00cdndice de Complejidad del Producto. Se ha comprobado que los pa\u00edses que exportan productos que son relativamente complejos con respecto a su nivel de desarrollo tienden a crecer m\u00e1s r\u00e1pido que los pa\u00edses que exportan bienes relativamente simples. Seg\u00fan la complejidad de su canasta exportadora en 2013, Colombia ocupa el puesto 53 entre 124 pa\u00edses. La tasa de crecimiento proyectada para Colombia con base en su complejidad y su nivel de desarrollo es 3,3% por a\u00f1o en el per\u00edodo 2013-2023.", "country.show.export_complexity_possibilities.copy.p2": "El \"mapa de similitud tecnol\u00f3gica de los productos de exportaci\u00f3n\" (o mapa de los productos) que se presenta enseguida es una representaci\u00f3n gr\u00e1fica de la similitud tecnol\u00f3gica entre todos los productos de exportaci\u00f3n, seg\u00fan los patrones de exportaci\u00f3n de todos los pa\u00edses. Cada punto o nodo representa un producto; los nodos conectados entre s\u00ed requieren capacidades productivas semejantes. Los productos que est\u00e1n m\u00e1s conectados tienden a agruparse en el centro de la red, lo cual implica que las capacidades que ellos usan pueden ser utilizadas en la producci\u00f3n de muchos otros productos.", "country.show.export_complexity_possibilities.copy.p3": "Los puntos que aparecen destacados representan productos que Colombia exporta en cantidades relativamente importantes (m\u00e1s exactamente, con ventaja comparativa revelada mayor de uno, v\u00e9ase el Glosario). Los colores representan grupos de productos (son los mismos colores usados para los sectores correspondientes en el mapa de similitud tecnol\u00f3gica presentado arriba). El gr\u00e1fico que aparece m\u00e1s abajo, junto con el cuadro que lo acompa\u00f1a, indica qu\u00e9 productos ofrecen las mejores posibilidades para Colombia, dadas las capacidades productivas que ya tiene el pa\u00eds y que tan \u2018distantes\u2019 son esas capacidades de las que requieren para exportar otras cosas. ", "country.show.exports": "Exportaciones", - "country.show.exports.copy.p1": "Colombia export\u00f3 US$32,5 miles de millones en 2016. Sus principales destinos de exportaci\u00f3n son los Estados Unidos, Panam\u00e1, China y Espa\u00f1a. En 2016, los productos minerales (entre los cuales, petr\u00f3leo, carb\u00f3n y ferron\u00edquel son los m\u00e1s importantes) representaron 51,7% de las exportaciones totales de bienes; los productos vegetales, alimentos y maderas 22,57%, y los quimicos y pl\u00e1sticos 9,78%. Los siguientes gr\u00e1ficos presentan m\u00e1s detalles.", + "country.show.exports.copy.p1": "Colombia export\u00f3 US$38,2 miles de millones en 2017. Sus principales destinos de exportaci\u00f3n son los Estados Unidos, Panam\u00e1, China y Holanda. En 2017, los productos minerales (entre los cuales, petr\u00f3leo, carb\u00f3n y ferron\u00edquel son los m\u00e1s importantes) representaron 56,2% de las exportaciones totales de bienes; los productos vegetales, alimentos y maderas 20,78%, y los quimicos y pl\u00e1sticos 8,43%. Los siguientes gr\u00e1ficos presentan m\u00e1s detalles.", "country.show.exports_composition_by_department": "Composici\u00f3n de las exportaciones por departamento ({{year}})", "country.show.exports_composition_by_products": "Composici\u00f3n de las exportaciones ({{year}})", "country.show.gdp": "Col $756,152 bill", - "country.show.gdp_per_capita": "Col $15.864.953", + "country.show.gdp_per_capita": "Col $18.828.100", "country.show.industry_complex": "Complejidad de los sectores productivos", "country.show.industry_complex.copy.p1": "La complejidad de los sectores productivos, que se cuantifica mediante el \u00cdndice de Complejidad del Sector, es una media de la amplitud de las capacidades y habilidades \u2013know-how\u2013 que se requiere en un sector productivo. Se dice que sectores tales como qu\u00edmicos o maquinaria son altamente complejos porque requieren un nivel sofisticado de conocimientos productivos que solo es factible encontrar en grandes empresas donde interact\u00faa un n\u00famero de individuos altamente capacitados. En contraste, sectores como el comercio minorista o restaurantes requieren solo niveles b\u00e1sicos de capacitaci\u00f3n que pueden encontrarse incluso en una peque\u00f1a empresa familiar. Los sectores m\u00e1s complejos son m\u00e1s productivos y contribuyen m\u00e1s a elevar el ingreso per c\u00e1pita. Los departamentos y ciudades con sectores m\u00e1s complejos tienen una base productiva m\u00e1s diversificada y tienden a crear m\u00e1s empleo formal.", "country.show.industry_complex.copy.p2": "El \"mapa de similitud tecnol\u00f3gica de los sectores\" (o mapa de los sectores) que se presenta enseguida es una representaci\u00f3n gr\u00e1fica de la similitud de las capacidades y habilidades entre pares de sectores. Cada punto (o nodo) representa un sector; los nodos conectados por l\u00edneas requieren capacidades semejantes. Los sectores con m\u00e1s conexiones usan capacidades que pueden ser utilizadas en muchos otros sectores. Los colores representan grupos de sectores.", @@ -61,8 +61,8 @@ export default { "country.show.landuses": "Uso del Suelo en Colombia", "country.show.landuses.area": "\u00c1rea Total (ha)", "country.show.nonag_farmsize": "4.53 ha", - "country.show.occupation.num_vac": "Vacantes anunciadas", - "country.show.population": "48,1 mill", + "country.show.occupation.num_vac": "Vacantes anunciadas (2017)", + "country.show.population": "49,5 mill", "country.show.product_space": "Mapa de los productos", "country.show.total": "Totales", "ctas.csv": "CSV", @@ -88,7 +88,7 @@ export default { "downloads.map.header": "Mapa", "downloads.occupations_copy": "Todos los datos sobre las ocupaciones (salarios ofrecidos por ocupaci\u00f3n y sector, y estructura ocupacional por sector) provienen de los anuncios de vacantes de empleo colocados por las empresas en los sitios de empleo de Internet p\u00fablicos y privados. Las ocupaciones se clasifican de acuerdo con el \u00cdndice Num\u00e9rico de la Red Ocupacional (ONET). Los datos fueron procesados \u200b\u200bpor Jeisson Arley Rubio C\u00e1rdenas, investigador de la Universidad del Rosario, Bogot\u00e1, y Jaime Mauricio Monta\u00f1a Doncel, estudiante de maestr\u00eda en la Escuela de Econom\u00eda de Par\u00eds.", "downloads.occupations_head": "Datos de ocupaciones", - "downloads.occupations_row_1": "Vacantes laborales y salarios ofrecidos (2014)", + "downloads.occupations_row_1": "Vacantes laborales y salarios ofrecidos (2017)", "downloads.other_copy": "El Departamento Administrativo Nacional de Estad\u00edstica, DANE, es la fuente de todos los datos sobre el PIB y la poblaci\u00f3n.", "downloads.other_head": "Otros datos (DANE)", "downloads.other_row_1": "PIB y variables demogr\u00e1ficas", @@ -527,7 +527,8 @@ export default { "index.complexity_figure.head": "Crecimiento econ\u00f3mico explicado (% de la varianza decenal)", "index.complexity_head": "La ventaja de la complejidad", "index.complexity_subhead": "Los pa\u00edses que exportan productos complejos, que requieren una gran cantidad de conocimientos, crecen m\u00e1s r\u00e1pido que los que exportan materias primas. Usando los m\u00e9todos para medir y visualizar la complejidad desarrollados por la Universidad de Harvard, Datlas permite explorar las posibilidades productivas y de exportaci\u00f3n de los departamentos y ciudades colombianas.", - "index.country_profile": "Lea el perfil de Colombia", + "index.country_profile_p1": "Lea el perfil", + "index.country_profile_p2": "de Colombia", "index.dropdown.industries": "461,488", "index.dropdown.locations": "41,87,34,40", "index.dropdown.products": "1143,87", @@ -535,9 +536,12 @@ export default { "index.future_head": "Avizorando el futuro", "index.future_subhead": "Los gr\u00e1ficos de dispersi\u00f3n y diagramas de redes permiten encontrar los sectores productivos que tienen las mejores posibilidades en un departamento o ciudad.", "index.graphbuilder.id": "87", - "index.header_h1": "El Atlas Colombiano de Complejidad Econ\u00f3mica", + "index.header_h1_p1": "El Atlas Colombiano de", + "index.header_h1_p2": "Complejidad Econ\u00f3mica", + "index.header_h1_add": "Quieres saber", "index.header_head": "Colombia como usted nunca la ha visto", "index.header_subhead": "Visualice las posibilidades de cualquier sector, cualquier producto de exportaci\u00f3n o cualquier lugar en Colombia.", + "index.header_subhead_add": "¿Qué sectores emplean más gente en Bogotá?", "index.industry_head": "Ent\u00e9rese de un sector", "index.industry_q1": "\u00bfEn d\u00f3nde emplea m\u00e1s personas el sector qu\u00edmico de Colombia?", "index.industry_q1.id": "461", @@ -562,7 +566,9 @@ export default { "index.profiles_cta": "Lea el perfil de Antioquia", "index.profiles_head": "Comience por los perfiles", "index.profiles_subhead": "S\u00f3lo lo esencial, en un resumen de una p\u00e1gina", - "index.questions_head": "No somos una bola de cristal, pero podemos responder muchas preguntas", + "index.questions_head_p1": "Actualizaciones", + "index.questions_head_p2": "M\u00f3dulos comercio exterior y sectores", + "index.sophistication_route": "Ruta de sofisticación y diversificación de producto", "index.questions_subhead": "index.questions_subhead", "index.research_head": "Investigaci\u00f3n mencionada en", "industry.show.avg_wages": "Salarios promedio ({{year}})", @@ -583,9 +589,9 @@ export default { "location.show.all_departments": "Comparaci\u00f3n con otros departamentos", "location.show.all_regions": "En comparaci\u00f3n con los otros lugares", "location.show.average_livestock_load": "", - "location.show.bullet.gdp_grow_rate": "La tasa de crecimiento del PIB en el per\u00edodo {{yearRange}} fue {{gdpGrowth}}, comparada con 5,3% para toda Colombia.", - "location.show.bullet.gdp_pc": "El PIB per capita de {{name}} es {{lastGdpPerCapita}}, comparado con Col$15,1 millones para toda Colombia en 2014.", - "location.show.bullet.last_pop": "La poblaci\u00f3n es {{lastPop}} de personas, frente a 46,3 millones de personas en todo el pa\u00eds en 2014.", + "location.show.bullet.gdp_grow_rate": "Principales variables del departamento:", + "location.show.bullet.gdp_pc": "El PIB per capita de {{name}} es {{lastGdpPerCapita}}, comparado con Col$18,8 millones para toda Colombia en 2017.", + "location.show.bullet.last_pop": "La poblaci\u00f3n es {{lastPop}} de personas, frente a 49,5 millones de personas en todo el pa\u00eds en 2017.", "location.show.eci": "Complejidad exportadora", "location.show.employment": "Empleo total ({{lastYear}})", "location.show.employment_and_wages": "Empleo formal y salarios", @@ -654,4 +660,4 @@ export default { "search.results_rural": "Actividades rurales", "table.export_data": "Descargar Datos", "thousands_delimiter": "." -}; \ No newline at end of file +}; diff --git a/app/locales/es-col/translations.original b/app/locales/es-col/translations.original new file mode 100644 index 00000000..9c3865a5 --- /dev/null +++ b/app/locales/es-col/translations.original @@ -0,0 +1,568 @@ +export default { + "abbr_billion": "mm", + "abbr_million": "mill", + "abbr_thousand": "miles", + "abbr_trillion": "bill", + "about.downloads.explanation.p1": "Descarque el documento que explica c\u00f3mo se calcula cada una de las variables de complejidad que utiliza Datlas.", + "about.downloads.explanation.title": "M\u00e9todos de c\u00e1lculo de las variables de complejidad", + "about.downloads.locations": "Listas de departmentos, ciudades (incluyendo \u00e1reas metropolitanas) y municipios", + "about.glossary": "

V\u00e9ase la p\u00e1gina \"Acerca de los datos\" para m\u00e1s informaci\u00f3n sobre fuentes, m\u00e9todos de c\u00e1lculo de las variables de complejidad y bases de datos descargables.

\u00c1reas metropolitanas

Un \u00e1rea metropolitana es la combinaci\u00f3n de dos o m\u00e1s municipios que est\u00e1n conectados a trav\u00e9s de flujos relativamente grandes de trabajadores (con independencia de su tama\u00f1o o contig\u00fcidad). Un municipio debe enviar al menos un 10% de sus trabajadores como viajeros diarios al resto de los municipios del \u00e1rea metropolitana para considerarse como parte de dicha \u00e1rea.

Con base en esta definici\u00f3n hay 19 \u00e1reas metropolitanas en Colombia, que comprenden 115 municipios. Las \u00e1reas metropolitanas resultantes son distintas de las oficiales. Se sigue la metodolog\u00eda de G. Duranton ( 2013): \u201cDelineating metropolitan areas: Measuring spatial labour market networks through commuting patterns.\u201d Wharton School, University of Pennsylvania.

Ciudades

Son las \u00e1reas metropolitanas y los municipios de m\u00e1s de 50.000 habitantes con al menos 75% de poblaci\u00f3n en la cabecera municipal. En total hay 62 ciudades (19 \u00e1reas metropolitanas que comprenden 115 municipios, m\u00e1s 43 ciudades de un solo municipio). El concepto de ciudad es relevante porque Datlas presenta indicadores de complejidad por departamento y por ciudad, pero no por municipio.

Complejidad

Complejidad es la diversidad y sofisticaci\u00f3n del \"know-how\" que se requiere para producir algo. El concepto de complejidad es central en Datlas porque la productividad y el crecimiento de cualquier lugar dependen de que las empresas puedan producir y exportar con \u00e9xito bienes y servicios que requieren capacidades y conocimientos m\u00e1s complejos, es decir m\u00e1s diversos y exclusivos. La complejidad puede medirse para un lugar, para un producto de exportaci\u00f3n, o para un sector.

Complejidad potencial de un lugar

Mide el potencial de aumento de la complejidad de un lugar. Tiene en cuenta el nivel de complejidad de todos los sectores productivos (o productos de exportaci\u00f3n), junto con la \u201cdistancia\u201d a los dem\u00e1s sectores (o productos). Con esta informaci\u00f3n mide la probabilidad de que aparezcan nuevos sectores (o exportaciones) y qu\u00e9 tanto elevar\u00edan la complejidad del lugar. Valores m\u00e1s altos indican que es m\u00e1s probable desarrollar nuevos sectores (o productos) m\u00e1s complejos que los que ya se tienen.

La complejidad potencial basada en sectores se calcula para los departamentos y ciudades, no para los dem\u00e1s municipios. La complejidad potencial basada en las exportaciones se calcula solamente por departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

DANE

DANE es el Departamento Administrativo Nacional de Estad\u00edstica de Colombia, fuente de todos los datos sobre el PIB y la poblaci\u00f3n que utiliza Datlas.

DIAN

DIAN es la Direcci\u00f3n de Impuestos y Aduanas Nacionales, fuente de toda la informaci\u00f3n sobre exportaciones e importaciones de Datlas.

Distancia a un sector o exportaci\u00f3n en un lugar

La \u201cdistancia\u201d es una medida de la capacidad de un lugar para desarrollar un sector o una exportaci\u00f3n espec\u00edfica, teniendo en cuenta las capacidades productivas existentes. La \u201cdistancia\u201d es menor en la medida en que las capacidades requeridas por un sector o exportaci\u00f3n son m\u00e1s similares a las ya existentes. En esa medida ser\u00e1n mayores las posibilidades de que desarrolle con \u00e9xito el sector o exportaci\u00f3n. Visto de otra forma, la distancia refleja la proporci\u00f3n del conocimiento productivo que se necesita para que aparezca un sector o exportaci\u00f3n que a\u00fan no existe en el lugar.

Las distancias por sectores productivos se calculan solamente para los departamentos y ciudades, no para los dem\u00e1s municipios. Las distancias para las exportaciones se calculan solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

Diversidad

Es una medida de cu\u00e1ntos productos diferentes puede hacer un lugar. La producci\u00f3n de un bien cualquiera requiere un conjunto espec\u00edfico de capacidades; por consiguiente la diversidad es otra forma de expresar la cantidad de conocimiento productivo de un lugar.

Empleo, salarios y tasa de empleo formal

El empleo formal es aquel que est\u00e1 cubierto por el sistema de seguridad social en salud y/o por el sistema de pensiones. No incluye trabajadores independientes. El empleo formal reportado es el n\u00famero de empleados formales en un mes promedio. La tasa de formalidad es el empleo formal dividido por la poblaci\u00f3n mayor de 15 a\u00f1os. Los datos de empleo y salarios provienen de la PILA del Ministerio de Salud. Los datos de poblaci\u00f3n son del DANE.

Empresas, n\u00famero de

El conteo de empresas con actividad productiva por lugar (municipio, departamento, nacional) se hizo teniendo en cuenta todas aquellas empresas registradas en la PILA que hicieron alg\u00fan aporte a la seguridad social para sus empleados en el a\u00f1o de referencia (aunque no hayan estado en operaci\u00f3n todo el a\u00f1o).

El conteo de empresas exportadoras o importadoras se hizo por municipio y producto teniendo en cuenta cualquier empresa que seg\u00fan la DIAN hubiera realizado alguna operaci\u00f3n en el a\u00f1o de referencia (por consiguiente, el conteo de empresas exportadoras o importadoras de un producto por departamento o para todo el pa\u00eds puede tener duplicaciones).

\u00cdndice de Complejidad del Producto (ICP)

Ordena los productos de exportaci\u00f3n seg\u00fan qu\u00e9 tantas capacidades productivas se requieren para su fabricaci\u00f3n. Productos complejos de exportaci\u00f3n, tales como qu\u00edmicos y maquinaria, requieren un nivel sofisticado y diverso de conocimientos que s\u00f3lo se consigue con la interacci\u00f3n en empresas de muchos individuos con conocimientos especializados. Esto contrasta con las exportaciones de baja complejidad, como el caf\u00e9, que requieren apenas conocimientos productivos b\u00e1sicos que se pueden reunir en una empresa familiar. Para calcular la complejidad de los productos de exportaci\u00f3n se utilizan datos de Comtrade de las Naciones Unidas para cerca de 200 pa\u00edses.

\u00cdndice de Complejidad Econ\u00f3mica (ICE)

Una medida de la sofisticaci\u00f3n de las capacidades productivas de un lugar basada en la diversidad y la ubicuidad de sus sectores productivos o sus exportaciones. Un lugar con alta complejidad produce o exporta bienes y servicios que pocos otros lugares producen. Lugares altamente complejos tienden a ser m\u00e1s productivos y a generar mayores salarios e ingresos. Los pa\u00edses con canastas de exportaci\u00f3n m\u00e1s sofisticadas de lo que se espera para su nivel de ingresos (como China) tienden a crecer m\u00e1s r\u00e1pido que aquellos en los que es todo lo contrario (como Grecia).

El ICE basado en los sectores productivos (o \u00edndice de complejidad productiva) se calcula solamente para departamentos y ciudades, no para los dem\u00e1s municipios. La ICE basado en las exportaciones se calcula solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la estructura de las exportaciones es inestable y/o poco representativa).

\u00cdndice de Complejidad del Sector (ICS)

Es una medida de qu\u00e9 tantas capacidades productivas requieren un sector para operar. El ICS y el \u00cdndice de Complejidad del Producto (ICP) son medidas estrechamente relacionadas, pero se calculan en forma separada con datos y sistemas de clasificaci\u00f3n independientes, ya que la complejidad del producto se calcula solo para mercanc\u00edas comercializables internacionalmente, mientras que los sectores productivos comprenden todos los sectores que generan empleo, incluidos todos los servicios y el sector p\u00fablico. Un sector es complejo si requiere un nivel sofisticado de conocimientos productivos, como los servicios financieros y los sectores farmac\u00e9uticos, en donde trabajan en grandes empresas muchos individuos con conocimientos especializados distintos. La complejidad de un sector se mide calculando la diversidad promedio de los lugares donde existe el sector y la ubicuidad promedio de los sectores de esos lugares. Los datos de empleo formal necesarios para estos c\u00e1lculos provienen de la PILA del Ministerio de Salud.

Mapa de similitud tecnol\u00f3gica de productos de exportaci\u00f3n (o mapa de los productos)

Una visualizaci\u00f3n que muestra qu\u00e9 tan similares son los conocimientos requeridos para la exportaci\u00f3n de unos productos y otros. Cada punto representa un producto de exportaci\u00f3n y cada enlace entre un par de productos indica que requieren capacidades productivas similares. Aparecen con color los productos de exportaci\u00f3n que se exportan con ventaja comparativa revelada mayor que uno. Cuando se selecciona un producto, el gr\u00e1fico destaca los productos que requieren capacidades productivas semejantes. Un producto con m\u00e1s enlaces con otros que no se exportan ofrece mayor potencial para la diversificaci\u00f3n exportadora a trav\u00e9s de las capacidades compartidas. Y si esas capacidades son complejas, el producto tiene un alto potencial para elevar la complejidad del lugar.

El mapa de similitud de los productos se basa en los datos de comercio internacional de 192 pa\u00edses en m\u00e1s de 50 a\u00f1os compilados por Comtrade. Ver http://atlas.cid.harvard.edu/.

Mapa de similitud de los sectores productivos de Colombia

Una visualizaci\u00f3n que muestra qu\u00e9 tan similares son los conocimientos requeridos por unos sectores u otros. Cada punto representa un sector y cada enlace entre un par de sectores indica que requieren capacidades productivas similares. Aparecen con color los sectores con ventaja comparativa revelada mayor que uno. Cuando se selecciona un lugar, el gr\u00e1fico destaca los sectores que requieren capacidades productivas semejantes. Un sector con m\u00e1s enlaces con sectores que no existen ofrece mayor potencial para la diversificaci\u00f3n productiva a trav\u00e9s de las capacidades compartidas. Y si esas capacidades son complejas, el sector tiene un alto potencial para elevar la complejidad del lugar. El mapa de los sectores productivos de Colombia fue construido a partir de la informaci\u00f3n de empleo formal por municipio de la PILA del Ministerio de Salud.

Ocupaciones

Las ocupaciones se clasifican de acuerdo con el \u00cdndice Num\u00e9rico de la Red Ocupacional (ONET). Los datos sobre las ocupaciones (salarios ofrecidos, estructura ocupacional por sector y nivel educativo por ocupaci\u00f3n) provienen de los anuncios de vacantes de empleo colocados por las empresas en los sitios de empleo de Internet p\u00fablicos y privados. Los datos fueron procesados por Jeisson Arley Rubio C\u00e1rdenas (Universidad del Rosario, Bogot\u00e1) y Jaime Mauricio Monta\u00f1a Doncel (Escuela de Econom\u00eda de Par\u00eds).

PILA

PILA es la Planilla Integrada de Aportes Laborales del Ministerio de Salud. Es la fuente principal de los datos por sector. Contiene informaci\u00f3n de empleo formal, salarios y n\u00famero de empresas por municipio y sector.

Productos de exportaci\u00f3n e importaci\u00f3n: sistema de clasificaci\u00f3n

El sistema de clasificaci\u00f3n de los productos de exportaci\u00f3n e importaci\u00f3n de Datlas es la nomenclatura arancelaria NABANDINA, la cual calza a seis d\u00edgitos con la clasificaci\u00f3n internacional del Sistema Armonizado (SA). Datlas presenta informaci\u00f3n de productos (de exportaci\u00f3n e importaci\u00f3n) a dos y cuatro d\u00edgitos. Toda la informaci\u00f3n proviene de la DIAN.

Sectores productivos: sistema de clasificaci\u00f3n

La clasificaci\u00f3n sectorial de Colombia es una versi\u00f3n modificada de la Clasificaci\u00f3n Sectorial Internacional Uniforme de todas las Actividades Econ\u00f3micas (CIIU). Datlas presenta informaci\u00f3n sectorial a dos y cuatro d\u00edgitos. Toda la informaci\u00f3n proviene de la PILA. Siguiendo las convenciones de la contabilidad nacional, los trabajadores contratados por agencias de empleo temporal se clasifican en el sector de suministro de personal (7491), no en el sector de la empresa donde prestan servicios.

Ubicuidad

Una medida del n\u00famero de lugares que pueden producir un producto.

Valor estrat\u00e9gico de un sector o una exportaci\u00f3n para un lugar

Capta en qu\u00e9 medida un lugar podr\u00eda beneficiarse mediante el desarrollo de un sector en particular (o un producto de exportaci\u00f3n). Tambi\u00e9n conocida como \"ganancia de oportunidad\", esta medida representa la distancia a todos los otros sectores (o exportaciones) que un lugar no produce actualmente con ventaja comparativa revelada mayor que uno y su respectiva complejidad. Refleja c\u00f3mo un nuevo sector (o exportaci\u00f3n) puede abrir paso a otros sectores o productos m\u00e1s complejos. El valor estrat\u00e9gico de los sectores productivos se calcula solamente para departamentos y ciudades, no para los dem\u00e1s municipios. El valor estrat\u00e9gico de las exportaciones se calcula solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

Ventaja Comparativa Revelada (VCR) de un sector o una exportaci\u00f3n en un lugar

Mide el tama\u00f1o relativo de un sector o un producto de exportaci\u00f3n en un lugar. La VCR, que no debe interpretarse como un indicador de eficiencia productiva o de competitividad, se conoce tambi\u00e9n por el nombre de \"cociente de localizaci\u00f3n\u201d. Se calcula como el cociente entre la participaci\u00f3n del empleo formal de un sector en el lugar y la participaci\u00f3n del empleo formal total del mismo sector en todo el pa\u00eds. Por ejemplo, si la industria qu\u00edmica en una ciudad genera el 10% del empleo, mientras que en todo el pa\u00eds genera el 1% del empleo, la VCR de la industria qu\u00edmica en dicha ciudad es 10. Para una exportaci\u00f3n es la relaci\u00f3n entre la participaci\u00f3n que tiene el producto en la canasta de exportaci\u00f3n del lugar y la participaci\u00f3n que tiene en el comercio mundial. Si esta relaci\u00f3n es mayor que 1, se dice que el lugar tiene ventaja comparativa revelada en el sector o en la exportaci\u00f3n. Por ejemplo, si el caf\u00e9 representa el 30% de las exportaciones de un departamento colombiano, pero da cuenta apenas del 0.3% del comercio mundial, entonces la VCR del departamento en caf\u00e9 es 100.

", + "about.glossary_name": "Glosario", + "about.project_description.cid.header": "El CID y el Laboratorio de Crecimiento ", + "about.project_description.cid.p1": "Este proyecto ha sido desarrollado por el Centro para el Desarrollo Internacional de la Universidad de Harvard (CID), bajo la direcci\u00f3n del profesor Ricardo Hausmann", + "about.project_description.cid.p2": "El CID tiene por objetivos avanzar en la comprensi\u00f3n de los desaf\u00edos del desarrollo y ofrecer soluciones viables para reducir la pobreza mundial. El Laboratorio de Crecimiento es uno de los principales programas de investigaci\u00f3n del CID.", + "about.project_description.contact.header": "Informaci\u00f3n de contacto", + "about.project_description.contact.link": "Datlascolombia@bancoldex.com", + "about.project_description.founder1.header": "Banc\u00f3ldex", + "about.project_description.founder1.p": "Banc\u00f3ldex, el banco de desarrollo empresarial de Colombia, est\u00e1 comprometido con el desarrollo de instrumentos financieros y no financieros orientados a mejorar la competitividad, la productividad, el crecimiento y la internacionalizaci\u00f3n de las empresas colombianas. Aprovechando su posici\u00f3n de mercado y su capacidad para establecer relaciones empresariales, Banc\u00f3ldex gestiona activos financieros, desarrolla soluciones de acceso a la financiaci\u00f3n y ofrece soluciones de capital innovadoras que fomentan y aceleran el crecimiento empresarial. Adem\u00e1s de ofrecer pr\u00e9stamos tradicionales, Banc\u00f3ldex ha sido designado para ejecutar varios programas de desarrollo tales como el Programa de Transformaci\u00f3n Productiva, iNNpulsa Colombia, iNNpulsa Mipyme y la Banca de las Oportunidades. Todos ellos conforman una oferta integrada de servicios para promover el entorno empresarial colombiano y la competitividad. Datlas es parte del Programa de Transformaci\u00f3n Productiva y la iniciativas INNpulsa Colombia.", + "about.project_description.founder2.header": "Fundaci\u00f3n Mario Santo Domingo", + "about.project_description.founder2.p": "Creada en 1953, la Fundaci\u00f3n Mario Santo Domingo (FMSD) es una organizaci\u00f3n sin fines de lucro dedicada a la implementaci\u00f3n de programas de desarrollo comunitario en Colombia. FMSD concentra sus principales esfuerzos en la construcci\u00f3n de viviendas asequibles dentro de un modelo de desarrollo comunitario llamado Desarrollo Integral de Comunidades Sustentables, dise\u00f1ado por el FMSD como respuesta al gran d\u00e9ficit de vivienda en Colombia. A trav\u00e9s de este programa, el FMSD proporciona apoyo social a las familias, as\u00ed como infraestructura social y urbana para los menos privilegiados. FMSD tambi\u00e9n contribuye al desarrollo empresarial de la regi\u00f3n Norte de Colombia y de Bogot\u00e1 a trav\u00e9s de su Unidad de Microfinanzas, que ofrece capacitaci\u00f3n y servicios financieros como el microcr\u00e9dito. M\u00e1s de 130.000 empresarios han recibido pr\u00e9stamos de la Fundaci\u00f3n desde su lanzamiento en 1984. FMSD tambi\u00e9n trabaja en identificar alianzas y sinergias entre los sectores p\u00fablico y privado en las \u00e1reas de desarrollo social cr\u00edticos, como la primera infancia, la sostenibilidad ambiental, la atenci\u00f3n de desastres, la educaci\u00f3n y la salud.", + "about.project_description.founders.header": "Entidades Patrocinadoras", + "about.project_description.founders.p": "Este proyecto es financiado por Banc\u00f3ldex y la Fundaci\u00f3n Mario Santo Domingo", + "about.project_description.github": "Revise nuestro c\u00f3digo", + "about.project_description.intro.p1": "En Colombia, las diferencias de ingresos entre regiones son enormes y han ido creciendo: las nuevas oportunidades de empleo se concentran cada vez m\u00e1s en las \u00e1reas metropolitanas de Bogot\u00e1, Medell\u00edn y Cali, aparte de los lugares donde se extraen petr\u00f3leo y otros minerales. El ingreso promedio de los residentes de Bogot\u00e1 es cuatro veces el de los colombianos que viven en los 12 departamentos m\u00e1s pobres.", + "about.project_description.intro.p2": "Datlas es una herramienta de diagn\u00f3stico para que las empresas, los inversionistas y las autoridades de gobierno puedan tomar decisiones que ayuden a elevar la productividad. Contiene informaci\u00f3n por departamento, \u00e1rea metropolitana y municipio sobre actividad productiva, empleo, salarios y exportaciones. Ofrece criterios para identificar los sectores y las exportaciones con potencial de crecimiento con base en la complejidad econ\u00f3mica.", + "about.project_description.intro.p3": "La complejidad econ\u00f3mica es una medida de las capacidades y conocimientos de los sectores productivos de un pa\u00eds o una ciudad. Para hacer una camisa, hay que dise\u00f1arla, producir la tela, cortar, coser, empacar el producto, comercializarlo y distribuirlo. Para que un pa\u00eds pueda producir camisas, necesita personas que tengan experiencia en cada una de estas \u00e1reas. Cada una de estas tareas implica muchas m\u00e1s capacidades de las que cualquier persona sola puede dominar. S\u00f3lo mediante la combinaci\u00f3n de know-how de diferentes personas puede hacerse el producto. El camino hacia el desarrollo econ\u00f3mico consiste en aprender a hacer cosas m\u00e1s sofisticadas. El juego de Scrabble puede servir de analog\u00eda: el jugador que tiene un mayor n\u00famero de letras variadas puede hacer m\u00e1s palabras y conseguir m\u00e1s puntos. Los pa\u00edses con una mayor diversidad de capacidades productivas pueden hacer una mayor diversidad de productos. El desarrollo econ\u00f3mico ocurre en la medida en que el pa\u00eds o la ciudad adquiere m\u00e1s capacidades y conocimientos para producir productos cada vez m\u00e1s complejos.", + "about.project_description.intro.p4": "Este enfoque conceptual que ha sido aplicado a nivel internacional en el Atlas de la Complejidad Econ\u00f3mica se utiliza ahora en esta herramienta en l\u00ednea para identificar las posibilidades de exportaci\u00f3n y de desarrollo sectorial de los departamentos, las \u00e1reas metropolitanas y las ciudades colombianas.", + "about.project_description.letter.header": "Bolet\u00edn de Estudios del CID", + "about.project_description.letter.p": "Inscr\u00edbase al Bolet\u00edn de Estudios del CID para mantenerse al d\u00eda con los avances de la investigaci\u00f3n y las herramientas pr\u00e1cticas en temas relacionados con la complejidad.", + "about.project_description.team.header": "El equipo acad\u00e9mico y t\u00e9cnico", + "about.project_description.team.p": "El equipo acad\u00e9mico de CID de Harvard: Ricardo Hausmann (director), Eduardo Lora (coordinador), Tim Cheston, Andr\u00e9s G\u00f3mez-Li\u00e9vano, Jos\u00e9 Ram\u00f3n Morales, Neave O\u2019Clery y Juan T\u00e9llez. El equipo de programaci\u00f3n y visualizaci\u00f3n de CID de Harvard: Greg Shapiro (coordinador), Mali Akmanalp, Katy Harris, Quinn Lee, Romain Vuillemot y Gus Wezerek. Asesor estad\u00edstico de Colombia: Marcela Eslava (Universidad de los Andes). Recopilaci\u00f3n y procesamiento de los datos de ofertas de empleo de Colombia: Jeisson Arley C\u00e1rdenas Rubio (Universidad del Rosario, Bogot\u00e1) y Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics).", + "about.project_description_name": "Acerca de Datlas", + "census_year": "2014", + "country.show.ag_farmsize": "", + "country.show.dotplot-column": "Departamentos de Colombia", + "country.show.eci": "0,037", + "country.show.economic_structure": "Estructura econ\u00f3mica", + "country.show.economic_structure.copy.p1": "Con una poblaci\u00f3n de 48,1 millones (a mayo 2015), Colombia es el tercer pa\u00eds m\u00e1s grande de Am\u00e9rica Latina. Su PIB total en 2014 fue Col $756,1 billones, o US$377,9 miles de millones a la tasa de cambio promedio de 2014 (1 US d\u00f3lar = 2000,6 pesos colombianos). En 2014, se alcanz\u00f3 un nivel de ingreso per c\u00e1pita de Col $15.864.953 o US$7.930. La tasa de crecimiento desde 2008 ha sido en promedio 4.3% (o 3.1% por persona). ", + "country.show.economic_structure.copy.p2": "Los servicios empresariales y financieros son el sector m\u00e1s grande, con una contribuci\u00f3n al PIB de 18,8%, seguidos por los servicios de gobierno, sociales y personales (16,5%) y las actividades manufactureras (11,2%). Bogot\u00e1 D.C., Antioquia y el Valle del Cauca concentran aproximadamente la mitad de la actividad productiva, con participaciones en el PIB de 24,7, 13,1 y 9,2%, respectivamente. Sin embargo, los departamentos con m\u00e1s alto PIB per c\u00e1pita son Casanare y Meta, ambos importantes productores de petr\u00f3leo. Los gr\u00e1ficos siguientes presentan m\u00e1s detalles.", + "country.show.employment_wage_occupation": "Empleo formal, ocupaciones y salarios", + "country.show.employment_wage_occupation.copy.p1": "En 2014, aproximadamente 21,6 millones de personas fueron ocupadas en empleos formales o informales, con un leve aumento respecto al a\u00f1o anterior (21,1 millones). Los registros de la PILA, que cubren el universo de los trabajadores que hacen contribuciones al sistema de seguridad social, indican que 13,3 millones de personas estuvieron ocupadas en alg\u00fan momento en empleos formales en 2013. Teniendo en cuenta el n\u00famero de meses empleados, el n\u00famero efectivo de trabajadores-a\u00f1o en el sector formal en 2013 fue 6,7 millones. Bogot\u00e1 DC, Antioquia y el Valle del Cauca generan, respectivamente 32,7, 16,7, and 10,7% del empleo formal (efectivo).", + "country.show.employment_wage_occupation.copy.p2": "Los siguientes gr\u00e1ficos ofrecen informaci\u00f3n m\u00e1s detallada de los patrones de empleo formal y los salarios pagados seg\u00fan los registros de PILA. Tambi\u00e9n se incluye informaci\u00f3n de vacantes anunciadas y salarios ofrecidos por ocupaci\u00f3n, calculados a partir de los anuncios colocados por empresas en sitios de Internet durante 2014.", + "country.show.export_complexity_possibilities": "Complejidad de las exportaciones y posibilidades de exportaci\u00f3n", + "country.show.export_complexity_possibilities.copy.p1": "El concepto de complejidad de las exportaciones es an\u00e1logo al de complejidad de los sectores sectorial presentado arriba, pero referido ahora a las exportaciones. Se mide mediante el \u00cdndice de Complejidad del Producto. Se ha comprobado que los pa\u00edses que exportan productos que son relativamente complejos con respecto a su nivel de desarrollo tienden a crecer m\u00e1s r\u00e1pido que los pa\u00edses que exportan bienes relativamente simples. Seg\u00fan la complejidad de su canasta exportadora en 2013, Colombia ocupa el puesto 53 entre 124 pa\u00edses. La tasa de crecimiento proyectada para Colombia con base en su complejidad y su nivel de desarrollo es 3,3% por a\u00f1o en el per\u00edodo 2013-2023.", + "country.show.export_complexity_possibilities.copy.p2": "El \"mapa de similitud tecnol\u00f3gica de los productos de exportaci\u00f3n\" (o mapa de los productos) que se presenta enseguida es una representaci\u00f3n gr\u00e1fica de la similitud tecnol\u00f3gica entre todos los productos de exportaci\u00f3n, seg\u00fan los patrones de exportaci\u00f3n de todos los pa\u00edses. Cada punto o nodo representa un producto; los nodos conectados entre s\u00ed requieren capacidades productivas semejantes. Los productos que est\u00e1n m\u00e1s conectados tienden a agruparse en el centro de la red, lo cual implica que las capacidades que ellos usan pueden ser utilizadas en la producci\u00f3n de muchos otros productos.", + "country.show.export_complexity_possibilities.copy.p3": "Los puntos que aparecen destacados representan productos que Colombia exporta en cantidades relativamente importantes (m\u00e1s exactamente, con ventaja comparativa revelada mayor de uno, v\u00e9ase el Glosario). Los colores representan grupos de productos (son los mismos colores usados para los sectores correspondientes en el mapa de similitud tecnol\u00f3gica presentado arriba). El gr\u00e1fico que aparece m\u00e1s abajo, junto con el cuadro que lo acompa\u00f1a, indica qu\u00e9 productos ofrecen las mejores posibilidades para Colombia, dadas las capacidades productivas que ya tiene el pa\u00eds y que tan \u2018distantes\u2019 son esas capacidades de las que requieren para exportar otras cosas. ", + "country.show.exports": "Exportaciones", + "country.show.exports.copy.p1": "Colombia export\u00f3 US$54,8 miles de millones en 2014, comparado con $58,8 miles de millones en 2013 y $60,1 miles de millones en 2012. Sus principales destinos de exportaci\u00f3n son los Estados Unidos, Venezuela, Ecuador y Per\u00fa. En 2014, los productos mineros (entre los cuales, petr\u00f3leo, carb\u00f3n y ferron\u00edquel son los m\u00e1s importantes) representaron 59,3% de las exportaciones totales de bienes; los productos manufacturados 35,6%, y los productos agr\u00edcolas 4,6%. Los siguientes gr\u00e1ficos presentan m\u00e1s detalles.", + "country.show.exports_composition_by_department": "Composici\u00f3n de las exportaciones por departamento ({{year}})", + "country.show.exports_composition_by_products": "Composici\u00f3n de las exportaciones ({{year}})", + "country.show.gdp": "Col $756,152 bill", + "country.show.gdp_per_capita": "Col $15.864.953", + "country.show.industry_complex": "Complejidad de los sectores productivos", + "country.show.industry_complex.copy.p1": "La complejidad de los sectores productivos, que se cuantifica mediante el \u00cdndice de Complejidad del Sector, es una media de la amplitud de las capacidades y habilidades \u2013know-how\u2013 que se requiere en un sector productivo. Se dice que sectores tales como qu\u00edmicos o maquinaria son altamente complejos porque requieren un nivel sofisticado de conocimientos productivos que solo es factible encontrar en grandes empresas donde interact\u00faa un n\u00famero de individuos altamente capacitados. En contraste, sectores como el comercio minorista o restaurantes requieren solo niveles b\u00e1sicos de capacitaci\u00f3n que pueden encontrarse incluso en una peque\u00f1a empresa familiar. Los sectores m\u00e1s complejos son m\u00e1s productivos y contribuyen m\u00e1s a elevar el ingreso per c\u00e1pita. Los departamentos y ciudades con sectores m\u00e1s complejos tienen una base productiva m\u00e1s diversificada y tienden a crear m\u00e1s empleo formal.", + "country.show.industry_complex.copy.p2": "El \"mapa de similitud tecnol\u00f3gica de los sectores\" (o mapa de los sectores) que se presenta enseguida es una representaci\u00f3n gr\u00e1fica de la similitud de las capacidades y habilidades entre pares de sectores. Cada punto (o nodo) representa un sector; los nodos conectados por l\u00edneas requieren capacidades semejantes. Los sectores con m\u00e1s conexiones usan capacidades que pueden ser utilizadas en muchos otros sectores. Los colores representan grupos de sectores.", + "country.show.industry_space": "Mapa de los sectores", + "country.show.nonag_farmsize": "", + "country.show.occupation.num_vac": "Vacantes anunciadas (2014)", + "country.show.population": "48,1 millones", + "country.show.product_space": "Mapa de los productos", + "country.show.total": "Totales", + "ctas.csv": "CSV", + "ctas.download": "Descargue estos datos", + "ctas.embed": "Insertar", + "ctas.excel": "Excel", + "ctas.export": "Exportar", + "ctas.facebook": "Facebook", + "ctas.pdf": "PDF", + "ctas.png": "PNG", + "ctas.share": "Compartir", + "ctas.twitter": "Twitter", + "currency": "Col$", + "decimal_delmiter": ",", + "downloads.cta_download": "Descargar", + "downloads.cta_na": "No disponible", + "downloads.head": "Acerca de los datos", + "downloads.industry_copy": "La Planilla Integrada de Aportes Laborales, PILA, del Ministerio de Salud, es la fuente principal de los datos por sector. Contiene informaci\u00f3n de empleo formal, salarios y n\u00famero de empresas por municipio y sector. La clasificaci\u00f3n sectorial de Colombia es una versi\u00f3n modificada de la Clasificaci\u00f3n Sectorial Internacional Uniforme de todas las Actividades Econ\u00f3micas (CIIU). La lista de los sectores productivos puede verse en las bases de datos descargables de sectores. Puede descargarse aqu\u00ed un archivo con la lista de los sectores productivos del CIIU los cu\u00e1les no aparecen representados en el mapa de los sectores (por razones que se explican en los M\u00e9todos de C\u00e1lculo).", + "downloads.industry_head": "Datos de sectores productivos (PILA)", + "downloads.industry_row_1": "Empleo, salarios, n\u00famero de empresas e indicadores de complejidad productiva ({{yearRange}})", + "downloads.list_of_cities.header": "Listas de departamentos, ciudades y municipios", + "downloads.map.cell": "Datos del mapa", + "downloads.map.header": "Mapa", + "downloads.occupations_copy": "Todos los datos sobre las ocupaciones (salarios ofrecidos por ocupaci\u00f3n y sector, y estructura ocupacional por sector) provienen de los anuncios de vacantes de empleo colocados por las empresas en los sitios de empleo de Internet p\u00fablicos y privados. Las ocupaciones se clasifican de acuerdo con el \u00cdndice Num\u00e9rico de la Red Ocupacional (ONET). Los datos fueron procesados \u200b\u200bpor Jeisson Arley Rubio C\u00e1rdenas, investigador de la Universidad del Rosario, Bogot\u00e1, y Jaime Mauricio Monta\u00f1a Doncel, estudiante de maestr\u00eda en la Escuela de Econom\u00eda de Par\u00eds.", + "downloads.occupations_head": "Datos de ocupaciones", + "downloads.occupations_row_1": "Vacantes laborales y salarios ofrecidos (2014)", + "downloads.other_copy": "El Departamento Administrativo Nacional de Estad\u00edstica, DANE, es la fuente de todos los datos sobre el PIB y la poblaci\u00f3n.", + "downloads.other_head": "Otros datos (DANE)", + "downloads.other_row_1": "PIB y variables demogr\u00e1ficas", + "downloads.thead_departments": "Departamentos", + "downloads.thead_met": "Ciudades", + "downloads.thead_muni": "Municipios", + "downloads.thead_national": "Nacional", + "downloads.trade_copy": "La fuente de todos los datos sobre las exportaciones e importaciones por departamento y municipio es la Direcci\u00f3n de Impuestos y Aduanas Nacionales, DIAN. Colombia utiliza la nomenclatura arancelaria NANDINA, la cual calza a los seis d\u00edgitos con el Sistema Armonizado (SA) de clasificaci\u00f3n internacional de productos. Eso lo estandarizamos despu\u00e9s a SA (HS) 1992 para resolver cualquier inconsistencia entre las versiones a trav\u00e9s de los a\u00f1os, de manera tal que los datos se puedan visualizar en el tiempo. La lista de partidas arancelarias puede verse en las bases de datos descargables de exportaci\u00f3n e importaci\u00f3n.

El origen de las exportaciones se establece en dos etapas. Primero, se define el departamento de origen como es el \u00faltimo lugar donde tuvieron alg\u00fan procesamiento, ensamblaje o empaque, seg\u00fan la DIAN. Luego, se distribuyen los valores entre municipios seg\u00fan la composici\u00f3n del empleo de la firma correspondiente con base en la PILA (para las firmas sin esta informaci\u00f3n se asign\u00f3 el valor total a la capital del departamento). En el caso de las exportaciones de petr\u00f3leo (2709) y gas (2711), los valores totales se distribuyeron por origen seg\u00fan la producci\u00f3n por municipios (Agencia Nacional de Hidrocarburos y Asociaci\u00f3n Colombiana de Petr\u00f3leo) y en el caso de las exportaciones de refinados de petr\u00f3leo (2710) seg\u00fan el valor agregado por municipio (sectores 2231, 2322 y 2320 CIIU revisi\u00f3n 3, Encuesta Anual Manufacturera, DANE).

Los totales de exportaci\u00f3n por partida arancelaria pueden no corresponder a los datos oficiales porque quedan excluidas: (a) las exportaciones sin informaci\u00f3n sobre el sector del exportador y/o el departamento o municipio de origen, y (b) las exportaciones que en los datos de la DIAN tienen como destino las zonas francas; mientras que quedan incluidas: (c) las exportaciones de las zonas francas, que la DIAN no incluye en dichos totales.

De forma semejante, los totales de importaci\u00f3n por partida arancelaria pueden no corresponder a los datos oficiales porque quedan excluidas: (a) las importaciones sin informaci\u00f3n sobre el departamento o municipio de destino, y (b) las importaciones que en los datos de la DIAN tienen como origen las zonas francas; mientras que quedan incluidas: (c) las importaciones realizadas por las zonas francas, que la DIAN no incluye en dichos totales.

El archivo que describe la correspondencia entre la versi\u00f3n del Sistema Armonizado (HS) utilizado por la DIAN y su revisi\u00f3n de 1992 puede encontrarse aqu\u00ed.

Tambi\u00e9n puede descargarse aqu\u00ed un archivo con la lista de los productos del Sistema Armonizado los cu\u00e1les no aparecen representados en el mapa del producto (por razones que se explican en los M\u00e9todos de C\u00e1lculo).", + "downloads.trade_head": "Datos de exportaciones e importaciones (DIAN)", + "downloads.trade_row_1": "Exportaciones, importaciones e indicadores de complejidad ({{yearRange}})", + "downloads.trade_row_2": "Exportaciones e importaciones con origen y destino ({{yearRange}})", + "first_year": "2008", + "general.export_and_import": "Productos", + "general.geo": "Mapa geogr\u00e1fico", + "general.glossary": "Glosario", + "general.industries": "Sectores", + "general.industry": "sector", + "general.location": "lugar", + "general.locations": "Lugares", + "general.multiples": "Gr\u00e1ficos de \u00e1reas", + "general.occupation": "ocupaci\u00f3n", + "general.occupations": "Ocupaciones", + "general.product": "producto", + "general.scatter": "Gr\u00e1fico de dispersi\u00f3n", + "general.similarity": "mapa de los sectores", + "general.total": "Totales", + "general.treemap": "Gr\u00e1fico de composici\u00f3n", + "geomap.center": "4.6,-74.06", + "glossary.head": "Glosario", + "graph_builder.builder_mod_header.agproduct.departments.land_harvested": "", + "graph_builder.builder_mod_header.agproduct.departments.land_sown": "", + "graph_builder.builder_mod_header.agproduct.departments.production_tons": "", + "graph_builder.builder_mod_header.agproduct.municipalities.land_harvested": "", + "graph_builder.builder_mod_header.agproduct.municipalities.land_sown": "", + "graph_builder.builder_mod_header.agproduct.municipalities.production_tons": "", + "graph_builder.builder_mod_header.industry.cities.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.cities.wage_avg": "Salarios mensuales promedio, Col$", + "graph_builder.builder_mod_header.industry.cities.wages": "N\u00f3mina salarial, Col$", + "graph_builder.builder_mod_header.industry.departments.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.departments.wage_avg": "Salarios mensuales promedio, Col$", + "graph_builder.builder_mod_header.industry.departments.wages": "N\u00f3mina salarial, Col$", + "graph_builder.builder_mod_header.industry.locations.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.locations.wage_avg": "Salarios mensuales promedio, Col$", + "graph_builder.builder_mod_header.industry.locations.wages": "N\u00f3mina salarial, Col$", + "graph_builder.builder_mod_header.industry.occupations.num_vacancies": "Total de vacantes", + "graph_builder.builder_mod_header.landUse.departments.area": "", + "graph_builder.builder_mod_header.landUse.municipalities.area": "", + "graph_builder.builder_mod_header.location.agproducts.land_harvested": "", + "graph_builder.builder_mod_header.location.agproducts.land_sown": "", + "graph_builder.builder_mod_header.location.agproducts.production_tons": "", + "graph_builder.builder_mod_header.location.farmtypes.num_farms": "", + "graph_builder.builder_mod_header.location.industries.employment": "Empleo total", + "graph_builder.builder_mod_header.location.industries.scatter": "Complejidad, distancia y valor estrat\u00e9gico de sectores potenciales ", + "graph_builder.builder_mod_header.location.industries.similarity": "Sectores con ventaja comparativa revelada >1 (con color) y <1 (gris)", + "graph_builder.builder_mod_header.location.industries.wages": "Salarios totales", + "graph_builder.builder_mod_header.location.landUses.area": "", + "graph_builder.builder_mod_header.location.livestock.num_farms": "", + "graph_builder.builder_mod_header.location.livestock.num_livestock": "", + "graph_builder.builder_mod_header.location.partners.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.location.partners.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.location.products.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.location.products.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.location.products.scatter": "Complejidad, distancia y valor estrat\u00e9gico de exportaciones potenciales", + "graph_builder.builder_mod_header.location.products.similarity": "Exportaciones con ventaja comparativa revelada >1 (con color) y <1 (gris)", + "graph_builder.builder_mod_header.product.cities.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.cities.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.product.departments.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.departments.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.product.partners.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.partners.import_value": "Importaciones totales", + "graph_builder.builder_nav.header": "M\u00e1s gr\u00e1ficos para este {{entity}}", + "graph_builder.builder_nav.intro": "Seleccione una pregunta para ver el gr\u00e1fico correspondiente. Si en la pregunta faltan par\u00e1metros ({{icon}}), los podr\u00e1 llenar cuando haga click.", + "graph_builder.builder_questions.city": "Preguntas: ciudades", + "graph_builder.builder_questions.department": "Preguntas: departamentos", + "graph_builder.builder_questions.employment": "Preguntas: empleo", + "graph_builder.builder_questions.export": "Preguntas: exportaciones", + "graph_builder.builder_questions.import": "Preguntas: importaciones", + "graph_builder.builder_questions.industry": "Preguntas: sectores", + "graph_builder.builder_questions.landUse": "", + "graph_builder.builder_questions.location": "Preguntas: lugares", + "graph_builder.builder_questions.occupation": "Preguntas: ocupaciones", + "graph_builder.builder_questions.partner": "Preguntas: socios comerciales", + "graph_builder.builder_questions.product": "Preguntas: productos de exportaci\u00f3n", + "graph_builder.builder_questions.wage": "Preguntas: n\u00f3mina salarial", + "graph_builder.change_graph.geo_description": "Mapea los datos", + "graph_builder.change_graph.label": "Cambie el gr\u00e1fico", + "graph_builder.change_graph.multiples_description": "Muestra el crecimiento en varios per\u00edodos", + "graph_builder.change_graph.scatter_description": "Muestra la complejidad y la distancia", + "graph_builder.change_graph.similarity_description": "Presenta las ventajas comparativas reveladas", + "graph_builder.change_graph.treemap_description": "Muestra la descomposici\u00f3n en varios niveles", + "graph_builder.change_graph.unavailable": "Este gr\u00e1fico no est\u00e1 disponible para esta pregunta", + "graph_builder.download.agproduct": "", + "graph_builder.download.area": "", + "graph_builder.download.average_wages": "Salario mensual promedio, Col$ ", + "graph_builder.download.avg_wage": "Salario mensual promedio, Col$ ", + "graph_builder.download.code": "C\u00f3digo", + "graph_builder.download.cog": "Valor estrat\u00e9gico", + "graph_builder.download.complexity": "Complejidad", + "graph_builder.download.distance": "Distancia", + "graph_builder.download.eci": "Complejidad exportadora", + "graph_builder.download.employment": "Empleo", + "graph_builder.download.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "graph_builder.download.export": "Exportaci\u00f3n", + "graph_builder.download.export_num_plants": "N\u00famero de empresas", + "graph_builder.download.export_rca": "Ventaja comparativa revelada", + "graph_builder.download.export_value": "Exportaciones, USD", + "graph_builder.download.farmtype": "", + "graph_builder.download.gdp_pc_real": "PIB per c\u00e1pita, Col $", + "graph_builder.download.gdp_real": "PIB, Col $", + "graph_builder.download.import_value": "Importaciones, USD", + "graph_builder.download.industry": "Sector", + "graph_builder.download.industry_eci": "Complejidad sectorial", + "graph_builder.download.land_harvested": "", + "graph_builder.download.land_sown": "", + "graph_builder.download.land_use": "", + "graph_builder.download.less_than_5": "Menos de 5", + "graph_builder.download.livestock": "", + "graph_builder.download.location": "Lugar", + "graph_builder.download.monthly_wages": "Salario mensual promedio, Col$", + "graph_builder.download.name": "Nombre", + "graph_builder.download.num_establishments": "N\u00famero de empresas", + "graph_builder.download.num_farms": "", + "graph_builder.download.num_livestock": "", + "graph_builder.download.num_vacancies": "Vacantes", + "graph_builder.download.occupation": "Ocupaci\u00f3n", + "graph_builder.download.parent": "Grupo", + "graph_builder.download.population": "Poblaci\u00f3n", + "graph_builder.download.production_tons": "", + "graph_builder.download.rca": "Ventaja comparativa revelada", + "graph_builder.download.read_more": "\u00bfNo entiende alguno de estos t\u00e9rminos? Consulte el", + "graph_builder.download.wages": "N\u00f3mina salarial total, Col$ ", + "graph_builder.download.year": "A\u00f1o", + "graph_builder.download.yield_index": "", + "graph_builder.download.yield_ratio": "", + "graph_builder.explanation": "Explicaci\u00f3n", + "graph_builder.explanation.agproduct.departments.land_harvested": "", + "graph_builder.explanation.agproduct.departments.land_sown": "", + "graph_builder.explanation.agproduct.departments.production_tons": "", + "graph_builder.explanation.agproduct.municipalities.land_harvested": "", + "graph_builder.explanation.agproduct.municipalities.land_sown": "", + "graph_builder.explanation.agproduct.municipalities.production_tons": "", + "graph_builder.explanation.hide": "Oculte", + "graph_builder.explanation.industry.cities.employment": "Muestra la composici\u00f3n por departamentos del empleo formal del sector. Fuente: PILA.", + "graph_builder.explanation.industry.cities.wages": "Muestra la composici\u00f3n por departamentos de la n\u00f3mina salarial del sector. Fuente: PILA.", + "graph_builder.explanation.industry.departments.employment": "Muestra la composici\u00f3n por departamentos del empleo formal del sector. Fuente: PILA.", + "graph_builder.explanation.industry.departments.wages": "Muestra la composici\u00f3n por departamentos de la n\u00f3mina salarial del sector. Fuente: PILA.", + "graph_builder.explanation.industry.occupations.num_vacancies": "Muestra la composici\u00f3n de las vacantes anunciadas en sitios de Internet y los salarios ofrecidos.", + "graph_builder.explanation.landUse.departments.area": "", + "graph_builder.explanation.landUse.municipalities.area": "", + "graph_builder.explanation.location.agproducts.land_harvested": "", + "graph_builder.explanation.location.agproducts.land_sown": "", + "graph_builder.explanation.location.agproducts.production_tons": "", + "graph_builder.explanation.location.farmtypes.num_farms": "", + "graph_builder.explanation.location.industries.employment": "Muestra la composici\u00f3n sectorial del empleo formal del departamento. Fuente: PILA.", + "graph_builder.explanation.location.industries.scatter": "Cada punto representa un sector productivo. Cuando se selecciona un punto aparece el nombre y la ventaja comparativa revelada del lugar en ese sector. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en la tabla que sigue). El eje vertical es el \u00edndice de complejidad sectorial y el eje horizontal es la distancia tecnol\u00f3gica para que el sector se desarrolle, dadas las capacidades que ya existen en el lugar. El tama\u00f1o de los puntos es proporcional al valor estrat\u00e9gico del sector para el lugar, es decir qu\u00e9 tanto puede contribuir el sector al aumento del \u00edndice de complejidad del lugar a trav\u00e9s de nuevas capacidades productivas que pueden ser \u00fatiles en otros sectores. Los sectores m\u00e1s atractivos son los ubicados arriba y a la izquierda, especialmente si los puntos que los representan son grandes. Fuente: c\u00e1lculos del CID con datos de PILA. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los t\u00e9rminos).", + "graph_builder.explanation.location.industries.similarity": "El mapa de similitud tecnol\u00f3gica de los sectores (o mapa de los sectores) muestra qu\u00e9 tan similares son los conocimientos requeridos por unos sectores y otros. Cada punto representa un sector productivo y cada enlace entre un par de sectores indica que requieren capacidades productivas similares. Los puntos coloreados son sectores con ventaja comparativa revelada (VCR) mayor que uno en el departamento o ciudad. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en el cuadro que sigue). Cuando se selecciona un punto aparece su nombre, su VCR y sus enlaces a otros sectores. Fuente: c\u00e1lculos del CID con datos de PILA. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los t\u00e9rminos).", + "graph_builder.explanation.location.industries.wages": "Muestra la composici\u00f3n sectorial de la n\u00f3mina salarial del departamento o ciudad. Fuente: PILA.", + "graph_builder.explanation.location.landUses.area": "", + "graph_builder.explanation.location.livestock.num_farms": "", + "graph_builder.explanation.location.livestock.num_livestock": "", + "graph_builder.explanation.location.partners.export_value": "Muestra la composici\u00f3n de las exportaciones de este lugar por pa\u00eds de destino, agrupados por regiones del mundo. Fuente: DIAN.", + "graph_builder.explanation.location.partners.import_value": "Muestra la composici\u00f3n de las importaciones de este lugar por pa\u00eds de origen, agrupados por regiones del mundo. Fuente: DIAN.", + "graph_builder.explanation.location.products.export_value": "Muestra la composici\u00f3n de las exportaciones del departamento o ciudad. Los colores representan grupos de productos (v\u00e9ase el cuadro). Fuente: DIAN.", + "graph_builder.explanation.location.products.import_value": "Muestra la composici\u00f3n de las importaciones del departamento o ciudad. Los colores representan grupos de productos (v\u00e9ase el cuadro). Fuente: DIAN.", + "graph_builder.explanation.location.products.scatter": "Cada punto representa un producto de exportaci\u00f3n. Cuando se selecciona un punto aparece el nombre y la ventaja comparativa revelada del departamento o ciudad en ese producto. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en la tabla que sigue). El eje vertical es el \u00edndice de complejidad del producto y el eje horizontal es la distancia tecnol\u00f3gica para poder exportar un producto, dadas las capacidades que ya existen en el lugar. La l\u00ednea discontinua es el \u00edndice de complejidad sectorial promedio del lugar. El tama\u00f1o de los puntos es proporcional al valor estrat\u00e9gico del producto para el departamento o ciudad, es decir qu\u00e9 tanto puede contribuir el producto al aumento del \u00edndice de complejidad del lugar a trav\u00e9s de nuevas capacidades productivas que pueden ser \u00fatiles para otras exportaciones. Las exportaciones m\u00e1s atractivas de desarrollar son las ubicadas arriba y a la izquierda, especialmente si los puntos que las representan son grandes. Fuente: c\u00e1lculos del CID con datos de la DIAN. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los conceptos).", + "graph_builder.explanation.location.products.similarity": "El mapa de similitud tecnol\u00f3gica de los productos (o mapa de los productos) muestra que tan similares son los conocimientos requeridos por unos productos y otros. Cada punto representa un producto de exportaci\u00f3n y cada enlace entre un par de productos indica que requieren capacidades productivas similares. Los puntos coloreados son exportaciones con ventaja comparativa revelada (VCR) mayor que uno en el departamento o ciudad. Los colores de los puntos representan grupos de productos (v\u00e9ase el cuadro). Cuando se selecciona un punto aparece su nombre, su VCR y sus enlaces a otros productos. Fuente: c\u00e1lculos del CID con datos de DIAN. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los conceptos).", + "graph_builder.explanation.product.cities.export_value": "Muestra la composici\u00f3n por ciudades de las exportaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.cities.import_value": "Muestra la composici\u00f3n por ciudades de las importaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.departments.export_value": "Muestra la composici\u00f3n por departamentos de las exportaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.departments.import_value": "Muestra la composici\u00f3n por departamentos de las importaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.partners.export_value": "Muestra el destino de las exportaciones de este producto, por pa\u00eds y regi\u00f3n del mundo. Fuente: DIAN.", + "graph_builder.explanation.product.partners.import_value": "Muestra el origen de las importaciones de este producto, por pa\u00eds y regi\u00f3n del mundo. Fuente: DIAN.", + "graph_builder.explanation.show": "Muestre m\u00e1s", + "graph_builder.multiples.show_all": "Mostrar todo", + "graph_builder.page_title.agproduct.departments.land_harvested": "", + "graph_builder.page_title.agproduct.departments.land_sown": "", + "graph_builder.page_title.agproduct.departments.production_tons": "", + "graph_builder.page_title.agproduct.municipalities.land_harvested": "", + "graph_builder.page_title.agproduct.municipalities.land_sown": "", + "graph_builder.page_title.agproduct.municipalities.production_tons": "", + "graph_builder.page_title.industry.cities.employment": "\u00bfQu\u00e9 ciudades en Colombia ocupan m\u00e1s gente en este sector?", + "graph_builder.page_title.industry.cities.wages": "\u00bfQu\u00e9 ciudades en Colombia tienen las mayores n\u00f3minas salariales en este sector?", + "graph_builder.page_title.industry.departments.employment": "\u00bfQu\u00e9 departamentos en Colombia ocupan m\u00e1s gente en este sector?", + "graph_builder.page_title.industry.departments.wages": "\u00bfQu\u00e9 departamentos en Colombia tienen las mayores n\u00f3minas salariales en este sector?", + "graph_builder.page_title.industry.occupations.num_vacancies": "\u00bfQu\u00e9 ocupaciones demanda este sector?", + "graph_builder.page_title.landUse.departments.area": "", + "graph_builder.page_title.landUse.municipalities.area": "", + "graph_builder.page_title.location.agproducts.land_harvested.country": "", + "graph_builder.page_title.location.agproducts.land_harvested.department": "", + "graph_builder.page_title.location.agproducts.land_harvested.municipality": "", + "graph_builder.page_title.location.agproducts.land_sown.country": "", + "graph_builder.page_title.location.agproducts.land_sown.department": "", + "graph_builder.page_title.location.agproducts.land_sown.municipality": "", + "graph_builder.page_title.location.agproducts.production_tons.country": "", + "graph_builder.page_title.location.agproducts.production_tons.department": "", + "graph_builder.page_title.location.agproducts.production_tons.municipality": "", + "graph_builder.page_title.location.destination_by_product.export_value.department": "\u00bfA qu\u00e9 pa\u00edses env\u00eda este departamento sus exportaciones de petr\u00f3leo?", + "graph_builder.page_title.location.destination_by_product.import_value.department": "\u00bfDe qu\u00e9 pa\u00edses recibe este departamento sus importaciones de veh\u00edculos?", + "graph_builder.page_title.location.farmtypes.num_farms.country": "", + "graph_builder.page_title.location.farmtypes.num_farms.department": "", + "graph_builder.page_title.location.farmtypes.num_farms.municipality": "", + "graph_builder.page_title.location.industries.employment.country": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en Colombia?", + "graph_builder.page_title.location.industries.employment.department": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en este departamento?", + "graph_builder.page_title.location.industries.employment.msa": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en esta ciudad?", + "graph_builder.page_title.location.industries.employment.municipality": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en este municipio?", + "graph_builder.page_title.location.industries.scatter.country": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en Colombia?", + "graph_builder.page_title.location.industries.scatter.department": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en este departamento?", + "graph_builder.page_title.location.industries.scatter.msa": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en esta ciudad?", + "graph_builder.page_title.location.industries.scatter.municipality": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en este municipio?", + "graph_builder.page_title.location.industries.similarity.country": "\u00bfC\u00f3mo es el mapa de los sectores de Colombia?", + "graph_builder.page_title.location.industries.similarity.department": "\u00bfC\u00f3mo es el mapa de los sectores de este departamento?", + "graph_builder.page_title.location.industries.similarity.msa": "\u00bfC\u00f3mo es el mapa de los sectores de esta ciudad?", + "graph_builder.page_title.location.industries.similarity.municipality": "\u00bfC\u00f3mo es el mapa de los sectores de este municipio?", + "graph_builder.page_title.location.industries.wages.country": "\u00bfQu\u00e9 sectores en Colombia tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.department": "\u00bfQu\u00e9 sectores en este departamento tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.msa": "\u00bfQu\u00e9 sectores en esta ciudad tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.municipality": "\u00bfQu\u00e9 sectores en este municipio tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.landUses.area.country": "", + "graph_builder.page_title.location.landUses.area.department": "", + "graph_builder.page_title.location.landUses.area.municipality": "", + "graph_builder.page_title.location.livestock.num_farms.country": "", + "graph_builder.page_title.location.livestock.num_farms.department": "", + "graph_builder.page_title.location.livestock.num_farms.municipality": "", + "graph_builder.page_title.location.livestock.num_livestock.country": "", + "graph_builder.page_title.location.livestock.num_livestock.department": "", + "graph_builder.page_title.location.livestock.num_livestock.municipality": "", + "graph_builder.page_title.location.partners.export_value.country": "\u00bfA qu\u00e9 pa\u00edses exporta Colombia?", + "graph_builder.page_title.location.partners.export_value.department": "\u00bfA qu\u00e9 pa\u00edses exporta este departamento?", + "graph_builder.page_title.location.partners.export_value.msa": "\u00bfA qu\u00e9 pa\u00edses exporta esta ciudad?", + "graph_builder.page_title.location.partners.export_value.municipality": "\u00bfA qu\u00e9 pa\u00edses exporta este municipio?", + "graph_builder.page_title.location.partners.import_value.country": "\u00bfDe d\u00f3nde vienen las importaciones de Colombia?", + "graph_builder.page_title.location.partners.import_value.department": "\u00bfDe d\u00f3nde vienen las importaciones de este departamento?", + "graph_builder.page_title.location.partners.import_value.msa": "\u00bfDe d\u00f3nde vienen las importaciones de esta ciudad?", + "graph_builder.page_title.location.partners.import_value.municipality": "\u00bfDe d\u00f3nde vienen las importaciones de este municipio?", + "graph_builder.page_title.location.products.export_value.country": "\u00bfQu\u00e9 productos exporta Colombia?", + "graph_builder.page_title.location.products.export_value.department": "\u00bfQu\u00e9 productos exporta este departamento?", + "graph_builder.page_title.location.products.export_value.msa": "\u00bfQu\u00e9 productos exporta esta ciudad?", + "graph_builder.page_title.location.products.export_value.municipality": "\u00bfQu\u00e9 productos exporta este municipio?", + "graph_builder.page_title.location.products.import_value.country": "\u00bfQu\u00e9 productos importa Colombia?", + "graph_builder.page_title.location.products.import_value.department": "\u00bfQu\u00e9 productos importa este departamento?", + "graph_builder.page_title.location.products.import_value.msa": "\u00bfQu\u00e9 productos importa esta ciudad?", + "graph_builder.page_title.location.products.import_value.municipality": "\u00bfQu\u00e9 productos importa este municipio?", + "graph_builder.page_title.location.products.scatter.country": "\u00bfQu\u00e9 productos tienen el mayor potencial para Colombia?", + "graph_builder.page_title.location.products.scatter.department": "\u00bfQu\u00e9 productos tienen el mayor potencial para este departamento?", + "graph_builder.page_title.location.products.scatter.msa": "\u00bfQu\u00e9 productos tienen el mayor potencial para esta ciudad?", + "graph_builder.page_title.location.products.scatter.municipality": "\u00bfQu\u00e9 productos tienen el mayor potencial para este municipio?", + "graph_builder.page_title.location.products.similarity.country": "\u00bfC\u00f3mo es el mapa de los productos de Colombia?", + "graph_builder.page_title.location.products.similarity.department": "\u00bfC\u00f3mo es el mapa de los productos de este departamento?", + "graph_builder.page_title.location.products.similarity.msa": "\u00bfC\u00f3mo es el mapa de los productos de esta ciudad?", + "graph_builder.page_title.location.products.similarity.municipality": "\u00bfC\u00f3mo es el mapa de los productos de este municipio?", + "graph_builder.page_title.product.cities.export_value": "\u00bfQu\u00e9 ciudades en Colombia exportan este producto?", + "graph_builder.page_title.product.cities.import_value": "\u00bfQu\u00e9 ciudades en Colombia importan este producto?", + "graph_builder.page_title.product.departments.export_value": "\u00bfQu\u00e9 departamentos en Colombia exportan este producto?", + "graph_builder.page_title.product.departments.import_value": "\u00bfQu\u00e9 departamentos en Colombia importan este producto?", + "graph_builder.page_title.product.partners.export_value": "\u00bfA d\u00f3nde exporta Colombia este producto?", + "graph_builder.page_title.product.partners.export_value.destination": "\u00bfA qu\u00e9 pa\u00edses env\u00eda {{location}} sus exportaciones de {{product}}?", + "graph_builder.page_title.product.partners.import_value": "\u00bfDe d\u00f3nde importa Colombia este producto?", + "graph_builder.page_title.product.partners.import_value.origin": "\u00bfDe qu\u00e9 pa\u00edses recibe {{location}} sus importaciones de {{product}}?", + "graph_builder.questions.label": "Cambiar pregunta", + "graph_builder.recirc.header.industry": "Lea el perfil de este sector", + "graph_builder.recirc.header.location": "Lea el perfil de este lugar", + "graph_builder.recirc.header.product": "Lea el perfil de este producto", + "graph_builder.search.placeholder.agproducts": "", + "graph_builder.search.placeholder.cities": "Destaque una ciudad en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.departments": "Destaque un departamento en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.farmtypes": "", + "graph_builder.search.placeholder.industries": "Destaque un sector en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.landUses": "", + "graph_builder.search.placeholder.livestock": "", + "graph_builder.search.placeholder.locations": "Destaque un lugar en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.municipalities": "", + "graph_builder.search.placeholder.occupations": "Destaque una ocupaci\u00f3n en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.partners": "Resaltar socios comerciales en la gr\u00e1fica inferior", + "graph_builder.search.placeholder.products": "Destaque un producto en el gr\u00e1fico siguiente", + "graph_builder.search.submit": "Destacar", + "graph_builder.settings.change_time": "Cambiar per\u00edodo", + "graph_builder.settings.close_settings": "Archive y cierre", + "graph_builder.settings.label": "Cambiar caracter\u00edsticas", + "graph_builder.settings.rca": "Ventaja comparativa revelada", + "graph_builder.settings.rca.all": "Todo", + "graph_builder.settings.rca.greater": "> 1", + "graph_builder.settings.rca.less": "< 1", + "graph_builder.settings.to": "a", + "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year.next": "Siguiente", + "graph_builder.settings.year.previous": "Anterior", + "graph_builder.table.agproduct": "", + "graph_builder.table.area": "", + "graph_builder.table.average_wages": "Salario mensual promedio, Col$ ", + "graph_builder.table.avg_wage": "Salario mensual promedio, Col$ ", + "graph_builder.table.code": "C\u00f3digo", + "graph_builder.table.cog": "Valor estrat\u00e9gico", + "graph_builder.table.coi": "Complejidad exportadora potencial", + "graph_builder.table.complexity": "Complejidad", + "graph_builder.table.country": "Pa\u00eds", + "graph_builder.table.distance": "Distancia", + "graph_builder.table.eci": "Complejidad exportadora", + "graph_builder.table.employment": "Empleo", + "graph_builder.table.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "graph_builder.table.export": "Exportaci\u00f3n", + "graph_builder.table.export_num_plants": "N\u00famero de empresas", + "graph_builder.table.export_rca": "Ventaja comparativa revelada", + "graph_builder.table.export_value": "Exportaciones, USD", + "graph_builder.table.farmtype": "", + "graph_builder.table.gdp_pc_real": "PIB per c\u00e1pita", + "graph_builder.table.gdp_real": "PIB", + "graph_builder.table.import_value": "Importaciones, USD", + "graph_builder.table.industry": "Sector", + "graph_builder.table.industry_coi": "Complejidad sectorial potencial", + "graph_builder.table.industry_eci": "Complejidad sectorial", + "graph_builder.table.land_harvested": "", + "graph_builder.table.land_sown": "", + "graph_builder.table.land_use": "", + "graph_builder.table.less_than_5": "Menos de 5", + "graph_builder.table.livestock": "", + "graph_builder.table.location": "Lugar", + "graph_builder.table.monthly_wages": "Salario mensual promedio, Col$", + "graph_builder.table.name": "Nombre", + "graph_builder.table.num_establishments": "N\u00famero de empresas", + "graph_builder.table.num_farms": "", + "graph_builder.table.num_livestock": "", + "graph_builder.table.num_vacancies": "Vacantes", + "graph_builder.table.occupation": "Ocupaci\u00f3n", + "graph_builder.table.parent": "Grupo", + "graph_builder.table.parent.country": "Regi\u00f3n", + "graph_builder.table.population": "Poblaci\u00f3n", + "graph_builder.table.production_tons": "", + "graph_builder.table.rca": "Ventaja comparativa revelada", + "graph_builder.table.read_more": "\u00bfNo entiende alguno de estos t\u00e9rminos? Consulte el", + "graph_builder.table.share": "Participaci\u00f3n", + "graph_builder.table.wages": "N\u00f3mina salarial total, Col$ (miles)", + "graph_builder.table.year": "A\u00f1o", + "graph_builder.table.yield_index": "", + "graph_builder.table.yield_ratio": "", + "graph_builder.view_more": "Muestre m\u00e1s", + "header.destination": "Destino", + "header.destination_by_products": "Destinos por productos", + "header.employment": "Empleo", + "header.export": "Exportaciones", + "header.import": "Importaciones", + "header.industry": "Sectores", + "header.industry_potential": "Potencial", + "header.industry_space": "Mapa de los sectores ", + "header.landUse": "", + "header.land_harvested": "", + "header.land_sown": "", + "header.occupation": "Ocupaciones", + "header.occupation.available_jobs": "Vacantes anunciadas", + "header.origin": "Origen", + "header.origin_by_products": "Origen por productos", + "header.overview": "Resumen", + "header.partner": "Socios comerciales", + "header.product": "Productos ", + "header.product_potential": "Potencial", + "header.product_space": "Mapa de los productos", + "header.production_tons": "", + "header.region": "Por departamento", + "header.subregion": "Por ciudad", + "header.subsubregion": "", + "header.wage": "N\u00f3mina total", + "index.builder_cta": "Explore las gr\u00e1ficas sobre el caf\u00e9", + "index.builder_head": "Luego vaya al graficador", + "index.builder_subhead": "Haga sus propios gr\u00e1ficos y mapas", + "index.complexity_caption": "\u00bfQu\u00e9 tan bueno es este enfoque? Las predicciones de crecimiento basadas en la complejidad son seis veces m\u00e1s preocsas que las basadas en variables convencionales, como los \u00cdndice de Competitividad Mundial. ", + "index.complexity_cta": "Lea m\u00e1s sobre los conceptos de complejidad", + "index.complexity_figure.WEF_name": "\u00cdndice de Competitividad Mundial", + "index.complexity_figure.complexity_name": "\u00cdndice de complejidad econ\u00f3mica", + "index.complexity_figure.head": "Crecimiento econ\u00f3mico explicado (% de la varianza decenal)", + "index.complexity_head": "La ventaja de la complejidad", + "index.complexity_subhead": "Los pa\u00edses que exportan productos complejos, que requieren una gran cantidad de conocimientos, crecen m\u00e1s r\u00e1pido que los que exportan materias primas. Usando los m\u00e9todos para medir y visualizar la complejidad desarrollados por la Universidad de Harvard, Datlas permite explorar las posibilidades productivas y de exportaci\u00f3n de los departamentos y ciudades colombianas.", + "index.country_profile": "Lea el perfil de Colombia", + "index.dropdown.industries": "461,488", + "index.dropdown.locations": "41,87,34,40", + "index.dropdown.products": "1143,87", + "index.future_head": "Avizorando el futuro", + "index.future_subhead": "Los gr\u00e1ficos de dispersi\u00f3n y diagramas de redes permiten encontrar los sectores productivos que tienen las mejores posibilidades en un departamento o ciudad.", + "index.graphbuilder.id": "87", + "index.header_h1": "El Atlas Colombiano de Complejidad Econ\u00f3mica", + "index.header_head": "Colombia como usted nunca la ha visto", + "index.header_subhead": "Visualice las posibilidades de cualquier sector, cualquier producto de exportaci\u00f3n o cualquier lugar en Colombia.", + "index.industry_head": "Ent\u00e9rese de un sector", + "index.industry_q1": "\u00bfD\u00f3nde emplea m\u00e1s gente la industria qu\u00edmica en Colombia?", + "index.industry_q1.id": "461", + "index.industry_q2": "\u00bfQu\u00e9 ocupaciones demanda la industria qu\u00edmica?", + "index.industry_q2.id": "461", + "index.location_head": "Aprenda sobre un lugar", + "index.location_q1": "\u00bfQu\u00e9 sectores emplean m\u00e1s gente en Bogot\u00e1 Met?", + "index.location_q1.id": "41", + "index.location_q2": "\u00bfQu\u00e9 exportaciones tienen el mayor potencial en Bogot\u00e1 Met?", + "index.location_q2.id": "41", + "index.location_viewall": "Vea todas las preguntas", + "index.present_head": "Mapeando el presente", + "index.present_subhead": "Utilice nuestros diagramas de composici\u00f3n para estudiar las exportaciones o el empleo formal de su departamento, su ciudad o su municipio.", + "index.product_head": "Aprenda sobre un producto de exportaci\u00f3n", + "index.product_q1": "\u00bfQu\u00e9 lugares de Colombia exportan computadores?", + "index.product_q1.id": "1143", + "index.product_q2": "\u00bfQu\u00e9 lugares de Colombia importan computadores?", + "index.product_q2.id": "1143", + "index.profile.id": "1", + "index.profiles_cta": "Lea el perfil de Antioquia", + "index.profiles_head": "Comience por los perfiles", + "index.profiles_subhead": "S\u00f3lo lo esencial, en un resumen de una p\u00e1gina", + "index.questions_head": "No somos una bola de cristal, pero podemos responder muchas preguntas", + "index.questions_subhead": "index.questions_subhead", + "index.research_head": "Investigaci\u00f3n mencionada en", + "industry.show.avg_wages": "Salarios promedio ({{year}})", + "industry.show.employment": "Empleo ({{year}})", + "industry.show.employment_and_wages": "Empleo formal y salarios", + "industry.show.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "industry.show.industries": "Sectores", + "industry.show.industry_composition": "Composici\u00f3n del sector ({{year}})", + "industry.show.occupation": "Ocupaciones", + "industry.show.occupation_demand": "Ocupaciones m\u00e1s demandadas en este sector, 2014", + "industry.show.value": "Valor", + "last_year": "2014", + "location.model.country": "Colombia", + "location.model.department": "departamento", + "location.model.msa": "ciudad", + "location.model.municipality": "municipio", + "location.show.ag_farmsize": "", + "location.show.all_departments": "Comparaci\u00f3n con otros departamentos", + "location.show.all_regions": "En comparaci\u00f3n con los otros lugares", + "location.show.bullet.gdp_grow_rate": "La tasa de crecimiento del PIB en el per\u00edodo {{yearRange}} fue {{gdpGrowth}}, comparada con 5,3% para toda Colombia.", + "location.show.bullet.gdp_pc": "El PIB per capita de {{name}} es {{lastGdpPerCapita}}, comparado con Col$15,1 millones para toda Colombia en 2014.", + "location.show.bullet.last_pop": "La poblaci\u00f3n es {{lastPop}} de personas, frente a 46,3 millones de personas en todo el pa\u00eds en 2014.", + "location.show.eci": "Complejidad exportadora", + "location.show.employment": "Empleo total ({{lastYear}})", + "location.show.employment_and_wages": "Empleo formal y salarios", + "location.show.export_possiblities": "Posibilidades de exportaci\u00f3n", + "location.show.export_possiblities.footer": "Los productos indicados pueden no ser viables debido a condiciones del lugar que no se consideran en el an\u00e1lisis de similitud tecnol\u00f3gica.", + "location.show.export_possiblities.intro": "Hemos encontrado que los pa\u00edses que exportan productos m\u00e1s complejos crecen m\u00e1s r\u00e1pido. Usando el \"mapa del producto\" presentado arriba, estamos destacando productos de alto potencial para {{name}}, ordenados por las mejores combinaciones de complejidad actual y valor estrat\u00e9gico.", + "location.show.exports": "Exportaciones ({{year}})", + "location.show.exports_and_imports": "Exportaciones e importaciones", + "location.show.gdp": "PIB", + "location.show.gdp_pc": "PIB per c\u00e1pita", + "location.show.growth_annual": "Tasa de crecimiento ({{yearRange}})", + "location.show.imports": "Importaciones ({{year}})", + "location.show.nonag_farmsize": "", + "location.show.overview": "", + "location.show.population": "Poblaci\u00f3n", + "location.show.subregion.exports": "Composici\u00f3n de exportaciones por municipio ({{year}})", + "location.show.subregion.imports": "Composici\u00f3n de importaciones por municipio ({{year}})", + "location.show.subregion.title": "Exportaciones e importaciones por municipio", + "location.show.total_wages": "N\u00f3mina salarial ({{lastYear}})", + "location.show.value": "Valor", + "pageheader.about": "Acerca de Datlas", + "pageheader.alternative_title": "Atlas de complejidad econ\u00f3mica", + "pageheader.brand_slogan": "Colombia como usted nunca la ha visto", + "pageheader.download": "Acerca de los datos", + "pageheader.graph_builder_link": "Graficador", + "pageheader.profile_link": "Perfil", + "pageheader.rankings": "Rankings", + "pageheader.search_link": "Buscar", + "pageheader.search_placeholder": "Busque un lugar, producto o sector", + "pageheader.search_placeholder.industry": "Busque un sector", + "pageheader.search_placeholder.location": "Busque un lugar", + "pageheader.search_placeholder.product": "Busque un producto", + "rankings.explanation.body": "", + "rankings.explanation.title": "Explicaci\u00f3n", + "rankings.intro.p": "Comparaci\u00f3n entre departamentos o ciudades", + "rankings.pagetitle": "Rankings", + "rankings.section.cities": "Ciudades", + "rankings.section.departments": "Departamentos", + "rankings.table-title": "Posici\u00f3n", + "search.didnt_find": "\u00bfEncontr\u00f3 lo que buscaba? Nos interesa saber: Datlascolombia@bancoldex.com", + "search.header": "resultados", + "search.intro": "Busque el lugar, producto, sector u ocupaci\u00f3n que le interese", + "search.level.4digit": "Partida arancelaria (1992) a cuatro d\u00edgitos", + "search.level.class": "CIIU a cuatro d\u00edgitos", + "search.level.country": "Pa\u00eds", + "search.level.department": "Departamento", + "search.level.division": "CIIU a dos d\u00edgitos", + "search.level.msa": "Ciudad", + "search.level.municipality": "Municipio", + "search.level.parent.4digit": "Partida arancelaria (1992) a dos d\u00edgitos", + "search.level.parent.class": "CIIU a dos d\u00edgitos", + "search.level.parent.country": "Regi\u00f3n", + "search.placeholder": "Escriba aqu\u00ed para buscar lo que quiere", + "search.results_industries": "Sectores", + "search.results_locations": "Lugares", + "search.results_products": "Productos", + "table.export_data": "Descargar Datos", + "thousands_delimiter": "." +}; \ No newline at end of file diff --git a/app/locales/es-col/translations_2016.js b/app/locales/es-col/translations_2016.js new file mode 100644 index 00000000..6f4a721d --- /dev/null +++ b/app/locales/es-col/translations_2016.js @@ -0,0 +1,657 @@ +export default { + "abbr_billion": "mm", + "abbr_million": "millones", + "abbr_thousand": "miles", + "abbr_trillion": "bill", + "about.downloads.explanation.p1": "Descarque el documento que explica c\u00f3mo se calcula cada una de las variables de complejidad que utiliza Datlas.", + "about.downloads.explanation.title": "M\u00e9todos de c\u00e1lculo de las variables de complejidad", + "about.downloads.locations": "Listas de departmentos, ciudades (incluyendo \u00e1reas metropolitanas) y municipios", + "about.glossary": "

V\u00e9ase la p\u00e1gina \"Acerca de los datos\" para m\u00e1s informaci\u00f3n sobre fuentes, m\u00e9todos de c\u00e1lculo de las variables de complejidad y bases de datos descargables.

\u00c1reas metropolitanas

Un \u00e1rea metropolitana es la combinaci\u00f3n de dos o m\u00e1s municipios que est\u00e1n conectados a trav\u00e9s de flujos relativamente grandes de trabajadores (con independencia de su tama\u00f1o o contig\u00fcidad). Un municipio debe enviar al menos un 10% de sus trabajadores como viajeros diarios al resto de los municipios del \u00e1rea metropolitana para considerarse como parte de dicha \u00e1rea.

Con base en esta definici\u00f3n hay 19 \u00e1reas metropolitanas en Colombia, que comprenden 115 municipios. Las \u00e1reas metropolitanas resultantes son distintas de las oficiales. Se sigue la metodolog\u00eda de G. Duranton ( 2013): \"Delineating metropolitan areas: Measuring spatial labour market networks through commuting patterns.\" Wharton School, University of Pennsylvania.

Ciudades

Son las \u00e1reas metropolitanas y los municipios de m\u00e1s de 50.000 habitantes con al menos 75% de poblaci\u00f3n en la cabecera municipal. En total hay 62 ciudades (19 \u00e1reas metropolitanas que comprenden 115 municipios, m\u00e1s 43 ciudades de un solo municipio). El concepto de ciudad es relevante porque Datlas presenta indicadores de complejidad por departamento y por ciudad, pero no por municipio.

Complejidad

Complejidad es la diversidad y sofisticaci\u00f3n del \"know-how\" que se requiere para producir algo. El concepto de complejidad es central en Datlas porque la productividad y el crecimiento de cualquier lugar dependen de que las empresas puedan producir y exportar con \u00e9xito bienes y servicios que requieren capacidades y conocimientos m\u00e1s complejos, es decir m\u00e1s diversos y exclusivos. La complejidad puede medirse para un lugar, para un producto de exportaci\u00f3n, o para un sector.

Complejidad potencial de un lugar

Mide el potencial de aumento de la complejidad de un lugar. Tiene en cuenta el nivel de complejidad de todos los sectores productivos (o productos de exportaci\u00f3n), junto con la \"distancia\" a los dem\u00e1s sectores (o productos). Con esta informaci\u00f3n mide la probabilidad de que aparezcan nuevos sectores (o exportaciones) y qu\u00e9 tanto elevar\u00edan la complejidad del lugar. Valores m\u00e1s altos indican que es m\u00e1s probable desarrollar nuevos sectores (o productos) m\u00e1s complejos que los que ya se tienen.

La complejidad potencial basada en sectores se calcula para los departamentos y ciudades, no para los dem\u00e1s municipios. La complejidad potencial basada en las exportaciones se calcula solamente por departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

DANE

DANE es el Departamento Administrativo Nacional de Estad\u00edstica de Colombia, fuente de todos los datos sobre el PIB y la poblaci\u00f3n que utiliza Datlas.

DIAN

DIAN es la Direcci\u00f3n de Impuestos y Aduanas Nacionales, fuente de toda la informaci\u00f3n sobre exportaciones e importaciones de Datlas.

Distancia a un sector o exportaci\u00f3n en un lugar

La \"distancia\" es una medida de la capacidad de un lugar para desarrollar un sector o una exportaci\u00f3n espec\u00edfica, teniendo en cuenta las capacidades productivas existentes. La \"distancia\" es menor en la medida en que las capacidades requeridas por un sector o exportaci\u00f3n son m\u00e1s similares a las ya existentes. En esa medida ser\u00e1n mayores las posibilidades de que desarrolle con \u00e9xito el sector o exportaci\u00f3n. Visto de otra forma, la distancia refleja la proporci\u00f3n del conocimiento productivo que se necesita para que aparezca un sector o exportaci\u00f3n que a\u00fan no existe en el lugar.

Las distancias por sectores productivos se calculan solamente para los departamentos y ciudades, no para los dem\u00e1s municipios. Las distancias para las exportaciones se calculan solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

Diversidad

Es una medida de cu\u00e1ntos productos diferentes puede hacer un lugar. La producci\u00f3n de un bien cualquiera requiere un conjunto espec\u00edfico de capacidades; por consiguiente la diversidad es otra forma de expresar la cantidad de conocimiento productivo de un lugar.

Empleo, salarios y tasa de empleo formal

El empleo formal es aquel que est\u00e1 cubierto por el sistema de seguridad social en salud y/o por el sistema de pensiones. No incluye trabajadores independientes. El empleo formal reportado es el n\u00famero de empleados formales en un mes promedio. La tasa de formalidad es el empleo formal dividido por la poblaci\u00f3n mayor de 15 a\u00f1os. Los datos de empleo y salarios provienen de la PILA del Ministerio de Salud. Los datos de poblaci\u00f3n son del DANE.

Empresas, n\u00famero de

El conteo de empresas con actividad productiva por lugar (municipio, departamento, nacional) se hizo teniendo en cuenta todas aquellas empresas registradas en la PILA que hicieron alg\u00fan aporte a la seguridad social para sus empleados en el a\u00f1o de referencia (aunque no hayan estado en operaci\u00f3n todo el a\u00f1o).

El conteo de empresas exportadoras o importadoras se hizo por municipio y producto teniendo en cuenta cualquier empresa que seg\u00fan la DIAN hubiera realizado alguna operaci\u00f3n en el a\u00f1o de referencia (por consiguiente, el conteo de empresas exportadoras o importadoras de un producto por departamento o para todo el pa\u00eds puede tener duplicaciones).

\u00cdndice de Complejidad del Producto (ICP)

Ordena los productos de exportaci\u00f3n seg\u00fan qu\u00e9 tantas capacidades productivas se requieren para su fabricaci\u00f3n. Productos complejos de exportaci\u00f3n, tales como qu\u00edmicos y maquinaria, requieren un nivel sofisticado y diverso de conocimientos que s\u00f3lo se consigue con la interacci\u00f3n en empresas de muchos individuos con conocimientos especializados. Esto contrasta con las exportaciones de baja complejidad, como el caf\u00e9, que requieren apenas conocimientos productivos b\u00e1sicos que se pueden reunir en una empresa familiar. Para calcular la complejidad de los productos de exportaci\u00f3n se utilizan datos de Comtrade de las Naciones Unidas para cerca de 200 pa\u00edses.

\u00cdndice de Complejidad Econ\u00f3mica (ICE)

Una medida de la sofisticaci\u00f3n de las capacidades productivas de un lugar basada en la diversidad y la ubicuidad de sus sectores productivos o sus exportaciones. Un lugar con alta complejidad produce o exporta bienes y servicios que pocos otros lugares producen. Lugares altamente complejos tienden a ser m\u00e1s productivos y a generar mayores salarios e ingresos. Los pa\u00edses con canastas de exportaci\u00f3n m\u00e1s sofisticadas de lo que se espera para su nivel de ingresos (como China) tienden a crecer m\u00e1s r\u00e1pido que aquellos en los que es todo lo contrario (como Grecia).

El ICE basado en los sectores productivos (o \u00edndice de complejidad productiva) se calcula solamente para departamentos y ciudades, no para los dem\u00e1s municipios. La ICE basado en las exportaciones se calcula solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la estructura de las exportaciones es inestable y/o poco representativa).

\u00cdndice de Complejidad del Sector (ICS)

Es una medida de qu\u00e9 tantas capacidades productivas requieren un sector para operar. El ICS y el \u00cdndice de Complejidad del Producto (ICP) son medidas estrechamente relacionadas, pero se calculan en forma separada con datos y sistemas de clasificaci\u00f3n independientes, ya que la complejidad del producto se calcula solo para mercanc\u00edas comercializables internacionalmente, mientras que los sectores productivos comprenden todos los sectores que generan empleo, incluidos todos los servicios y el sector p\u00fablico. Un sector es complejo si requiere un nivel sofisticado de conocimientos productivos, como los servicios financieros y los sectores farmac\u00e9uticos, en donde trabajan en grandes empresas muchos individuos con conocimientos especializados distintos. La complejidad de un sector se mide calculando la diversidad promedio de los lugares donde existe el sector y la ubicuidad promedio de los sectores de esos lugares. Los datos de empleo formal necesarios para estos c\u00e1lculos provienen de la PILA del Ministerio de Salud.

\u00cdndices de rendimiento

Un \u00edndice de rendimiento (para cualquier producto y ubicaci\u00f3n) es el rendimiento dividido por el rendimiento a nivel nacional. Los \u00edndices de rendimiento para m\u00e1s de un producto (por ubicaci\u00f3n) se calculan como el promedio ponderado de los \u00edndices de rendimiento de los productos, donde las ponderaciones son el \u00e1rea cosechada por cada producto.

Mapa de similitud tecnol\u00f3gica de productos de exportaci\u00f3n (o mapa de los productos)

Una visualizaci\u00f3n que muestra qu\u00e9 tan similares son los conocimientos requeridos para la exportaci\u00f3n de unos productos y otros. Cada punto representa un producto de exportaci\u00f3n y cada enlace entre un par de productos indica que requieren capacidades productivas similares. Aparecen con color los productos de exportaci\u00f3n que se exportan con ventaja comparativa revelada mayor que uno. Cuando se selecciona un producto, el gr\u00e1fico destaca los productos que requieren capacidades productivas semejantes. Un producto con m\u00e1s enlaces con otros que no se exportan ofrece mayor potencial para la diversificaci\u00f3n exportadora a trav\u00e9s de las capacidades compartidas. Y si esas capacidades son complejas, el producto tiene un alto potencial para elevar la complejidad del lugar.

El mapa de similitud de los productos se basa en los datos de comercio internacional de 192 pa\u00edses en m\u00e1s de 50 a\u00f1os compilados por Comtrade. Ver http://atlas.cid.harvard.edu/.

Mapa de similitud de los sectores productivos de Colombia

Una visualizaci\u00f3n que muestra qu\u00e9 tan similares son los conocimientos requeridos por unos sectores u otros. Cada punto representa un sector y cada enlace entre un par de sectores indica que requieren capacidades productivas similares. Aparecen con color los sectores con ventaja comparativa revelada mayor que uno. Cuando se selecciona un lugar, el gr\u00e1fico destaca los sectores que requieren capacidades productivas semejantes. Un sector con m\u00e1s enlaces con sectores que no existen ofrece mayor potencial para la diversificaci\u00f3n productiva a trav\u00e9s de las capacidades compartidas. Y si esas capacidades son complejas, el sector tiene un alto potencial para elevar la complejidad del lugar. El mapa de los sectores productivos de Colombia fue construido a partir de la informaci\u00f3n de empleo formal por municipio de la PILA del Ministerio de Salud.

Ocupaciones

Las ocupaciones se clasifican de acuerdo con el \u00cdndice Num\u00e9rico de la Red Ocupacional (ONET). Los datos sobre las ocupaciones (salarios ofrecidos, estructura ocupacional por sector y nivel educativo por ocupaci\u00f3n) provienen de los anuncios de vacantes de empleo colocados por las empresas en los sitios de empleo de Internet p\u00fablicos y privados. Los datos fueron procesados por Jeisson Arley Rubio C\u00e1rdenas (Universidad del Rosario, Bogot\u00e1) y Jaime Mauricio Monta\u00f1a Doncel (Escuela de Econom\u00eda de Par\u00eds).

PILA

PILA es la Planilla Integrada de Aportes Laborales del Ministerio de Salud. Es la fuente principal de los datos por sector. Contiene informaci\u00f3n de empleo formal, salarios y n\u00famero de empresas por municipio y sector.

Productos de exportaci\u00f3n e importaci\u00f3n: sistema de clasificaci\u00f3n

El sistema de clasificaci\u00f3n de los productos de exportaci\u00f3n e importaci\u00f3n de Datlas es la nomenclatura arancelaria NABANDINA, la cual calza a seis d\u00edgitos con la clasificaci\u00f3n internacional del Sistema Armonizado (SA). Datlas presenta informaci\u00f3n de productos (de exportaci\u00f3n e importaci\u00f3n) a dos y cuatro d\u00edgitos. Toda la informaci\u00f3n proviene de la DIAN.

Rendimiento

Para cualquier producto y ubicaci\u00f3n, la productividad del suelo es el rendimiento en toneladas por hect\u00e1rea de tierra cosechada. Para los cultivos transitorios el c\u00e1lculo de producci\u00f3n anual se obtiene a partir de la suma de la producci\u00f3n del \u00faltimo semestre del a\u00f1o anterior y el primer semestre del a\u00f1o de an\u00e1lisis; en contraste, para los cultivos permanentes (perennes) el c\u00e1lculo se realiza con la informaci\u00f3n de ambos semestres del a\u00f1o de an\u00e1lisis. La informaci\u00f3n de \u00e1rea cosechada y producci\u00f3n se obtiene de las Evaluaciones Agropecuarias Municipales -EVA- publicadas en Agronet por el Ministerio de Agricultura y Desarrollo Rural.

Sectores productivos: sistema de clasificaci\u00f3n

La clasificaci\u00f3n sectorial de Colombia es una versi\u00f3n modificada de la Clasificaci\u00f3n Sectorial Internacional Uniforme de todas las Actividades Econ\u00f3micas (CIIU). Datlas presenta informaci\u00f3n sectorial a dos y cuatro d\u00edgitos. Toda la informaci\u00f3n proviene de la PILA. Siguiendo las convenciones de la contabilidad nacional, los trabajadores contratados por agencias de empleo temporal se clasifican en el sector de suministro de personal (7491), no en el sector de la empresa donde prestan servicios.

Ubicuidad

Una medida del n\u00famero de lugares que pueden producir un producto.

UPAs y UPNAs

Las unidades de producci\u00f3n rural se clasifican seg\u00fan el Censo Nacional Agropecuario del DANE (2014) en \"unidades de producci\u00f3n agropecuaria\", o UPAs, y \"unidades de producci\u00f3n no agropecuarias\", o UPNAs. Mientras que la producci\u00f3n agropecuaria (que incluye actividades agr\u00edcolas, forestales, pecuarias, acu\u00edcolas y/o pesqueras) s\u00f3lo puede tener lugar en UPAs, tanto UPAs como UPNAs pueden tener actividades de producci\u00f3n no agropecuarias.

Valor estrat\u00e9gico de un sector o una exportaci\u00f3n para un lugar

Capta en qu\u00e9 medida un lugar podr\u00eda beneficiarse mediante el desarrollo de un sector en particular (o un producto de exportaci\u00f3n). Tambi\u00e9n conocida como \"ganancia de oportunidad\", esta medida representa la distancia a todos los otros sectores (o exportaciones) que un lugar no produce actualmente con ventaja comparativa revelada mayor que uno y su respectiva complejidad. Refleja c\u00f3mo un nuevo sector (o exportaci\u00f3n) puede abrir paso a otros sectores o productos m\u00e1s complejos. El valor estrat\u00e9gico de los sectores productivos se calcula solamente para departamentos y ciudades, no para los dem\u00e1s municipios. El valor estrat\u00e9gico de las exportaciones se calcula solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

Ventaja Comparativa Revelada (VCR) de un sector o una exportaci\u00f3n en un lugar

Mide el tama\u00f1o relativo de un sector o un producto de exportaci\u00f3n en un lugar. La VCR, que no debe interpretarse como un indicador de eficiencia productiva o de competitividad, se conoce tambi\u00e9n por el nombre de \"cociente de localizaci\u00f3n\". Se calcula como el cociente entre la participaci\u00f3n del empleo formal de un sector en el lugar y la participaci\u00f3n del empleo formal total del mismo sector en todo el pa\u00eds. Por ejemplo, si la industria qu\u00edmica en una ciudad genera el 10% del empleo, mientras que en todo el pa\u00eds genera el 1% del empleo, la VCR de la industria qu\u00edmica en dicha ciudad es 10. Para una exportaci\u00f3n es la relaci\u00f3n entre la participaci\u00f3n que tiene el producto en la canasta de exportaci\u00f3n del lugar y la participaci\u00f3n que tiene en el comercio mundial. Si esta relaci\u00f3n es mayor que 1, se dice que el lugar tiene ventaja comparativa revelada en el sector o en la exportaci\u00f3n. Por ejemplo, si el caf\u00e9 representa el 30% de las exportaciones de un departamento colombiano, pero da cuenta apenas del 0.3% del comercio mundial, entonces la VCR del departamento en caf\u00e9 es 100.

", + "about.glossary_name": "Glosario", + "about.project_description.cid.header": "El CID y el Laboratorio de Crecimiento ", + "about.project_description.cid.p1": "Este proyecto ha sido desarrollado por el Centro para el Desarrollo Internacional de la Universidad de Harvard (CID), bajo la direcci\u00f3n del profesor Ricardo Hausmann", + "about.project_description.cid.p2": "El CID tiene por objetivos avanzar en la comprensi\u00f3n de los desaf\u00edos del desarrollo y ofrecer soluciones viables para reducir la pobreza mundial. El Laboratorio de Crecimiento es uno de los principales programas de investigaci\u00f3n del CID.", + "about.project_description.contact.header": "Informaci\u00f3n de contacto", + "about.project_description.contact.link": "Datlascolombia@bancoldex.com", + "about.project_description.founder1.header": "Banc\u00f3ldex", + "about.project_description.founder1.p": "Banc\u00f3ldex, el banco de desarrollo empresarial de Colombia, est\u00e1 comprometido con el desarrollo de instrumentos financieros y no financieros orientados a mejorar la competitividad, la productividad, el crecimiento y la internacionalizaci\u00f3n de las empresas colombianas. Aprovechando su posici\u00f3n de mercado y su capacidad para establecer relaciones empresariales, Banc\u00f3ldex gestiona activos financieros, desarrolla soluciones de acceso a la financiaci\u00f3n y ofrece soluciones de capital innovadoras que fomentan y aceleran el crecimiento empresarial. Adem\u00e1s de ofrecer pr\u00e9stamos tradicionales, Banc\u00f3ldex ha sido designado para ejecutar varios programas de desarrollo tales como el Programa de Transformaci\u00f3n Productiva, iNNpulsa Colombia, iNNpulsa Mipyme y la Banca de las Oportunidades. Todos ellos conforman una oferta integrada de servicios para promover el entorno empresarial colombiano y la competitividad. Datlas es parte del Programa de Transformaci\u00f3n Productiva y la iniciativas INNpulsa Colombia.", + "about.project_description.founder2.header": "Departamento Nacional de Planeaci\u00f3n", + "about.project_description.founder2.p": "Departamento Nacional de Planeaci\u00f3n - DNP es un Departamento Administrativo que pertenece a la Rama Ejecutiva del poder p\u00fablico y depende directamente de la Presidencia de la Rep\u00fablica. Es una entidad eminentemente t\u00e9cnica que impulsa la implantaci\u00f3n de una visi\u00f3n estrat\u00e9gica del pa\u00eds en los campos social, econ\u00f3mico y ambiental, a trav\u00e9s del dise\u00f1o, la orientaci\u00f3n y evaluaci\u00f3n de las pol\u00edticas p\u00fablicas colombianas, el manejo y asignaci\u00f3n de la inversi\u00f3n p\u00fablica y la concreci\u00f3n de las mismas en planes, programas y proyectos del Gobierno.", + "about.project_description.founder3.header": "Fundaci\u00f3n Mario Santo Domingo", + "about.project_description.founder3.p": "Creada en 1953, la Fundaci\u00f3n Mario Santo Domingo (FMSD) es una organizaci\u00f3n sin fines de lucro dedicada a la implementaci\u00f3n de programas de desarrollo comunitario en Colombia. FMSD concentra sus principales esfuerzos en la construcci\u00f3n de viviendas asequibles dentro de un modelo de desarrollo comunitario llamado Desarrollo Integral de Comunidades Sustentables, dise\u00f1ado por el FMSD como respuesta al gran d\u00e9ficit de vivienda en Colombia. A trav\u00e9s de este programa, el FMSD proporciona apoyo social a las familias, as\u00ed como infraestructura social y urbana para los menos privilegiados. FMSD tambi\u00e9n contribuye al desarrollo empresarial de la regi\u00f3n Norte de Colombia y de Bogot\u00e1 a trav\u00e9s de su Unidad de Microfinanzas, que ofrece capacitaci\u00f3n y servicios financieros como el microcr\u00e9dito. M\u00e1s de 130.000 empresarios han recibido pr\u00e9stamos de la Fundaci\u00f3n desde su lanzamiento en 1984. FMSD tambi\u00e9n trabaja en identificar alianzas y sinergias entre los sectores p\u00fablico y privado en las \u00e1reas de desarrollo social cr\u00edticos, como la primera infancia, la sostenibilidad ambiental, la atenci\u00f3n de desastres, la educaci\u00f3n y la salud.", + "about.project_description.founders.header": "Entidades Patrocinadoras", + "about.project_description.founders.p": "Este proyecto es financiado por Banc\u00f3ldex y la Fundaci\u00f3n Mario Santo Domingo", + "about.project_description.github": "Revise nuestro c\u00f3digo", + "about.project_description.intro.p1": "En Colombia, las diferencias de ingresos entre regiones son enormes y han ido creciendo: las nuevas oportunidades de empleo se concentran cada vez m\u00e1s en las \u00e1reas metropolitanas de Bogot\u00e1, Medell\u00edn y Cali, aparte de los lugares donde se extraen petr\u00f3leo y otros minerales. El ingreso promedio de los residentes de Bogot\u00e1 es cuatro veces el de los colombianos que viven en los 12 departamentos m\u00e1s pobres.", + "about.project_description.intro.p2": "Datlas es una herramienta de diagn\u00f3stico para que las empresas, los inversionistas y las autoridades de gobierno puedan tomar decisiones que ayuden a elevar la productividad. Contiene informaci\u00f3n por departamento, \u00e1rea metropolitana y municipio sobre actividad productiva, empleo, salarios y exportaciones. Ofrece criterios para identificar los sectores y las exportaciones con potencial de crecimiento con base en la complejidad econ\u00f3mica.", + "about.project_description.intro.p3": "La complejidad econ\u00f3mica es una medida de las capacidades y conocimientos de los sectores productivos de un pa\u00eds o una ciudad. Para hacer una camisa, hay que dise\u00f1arla, producir la tela, cortar, coser, empacar el producto, comercializarlo y distribuirlo. Para que un pa\u00eds pueda producir camisas, necesita personas que tengan experiencia en cada una de estas \u00e1reas. Cada una de estas tareas implica muchas m\u00e1s capacidades de las que cualquier persona sola puede dominar. S\u00f3lo mediante la combinaci\u00f3n de know-how de diferentes personas puede hacerse el producto. El camino hacia el desarrollo econ\u00f3mico consiste en aprender a hacer cosas m\u00e1s sofisticadas. El juego de Scrabble puede servir de analog\u00eda: el jugador que tiene un mayor n\u00famero de letras variadas puede hacer m\u00e1s palabras y conseguir m\u00e1s puntos. Los pa\u00edses con una mayor diversidad de capacidades productivas pueden hacer una mayor diversidad de productos. El desarrollo econ\u00f3mico ocurre en la medida en que el pa\u00eds o la ciudad adquiere m\u00e1s capacidades y conocimientos para producir productos cada vez m\u00e1s complejos.", + "about.project_description.intro.p4": "Este enfoque conceptual que ha sido aplicado a nivel internacional en el Atlas de la Complejidad Econ\u00f3mica se utiliza ahora en esta herramienta en l\u00ednea para identificar las posibilidades de exportaci\u00f3n y de desarrollo sectorial de los departamentos, las \u00e1reas metropolitanas y las ciudades colombianas.", + "about.project_description.letter.header": "Bolet\u00edn de Estudios del CID", + "about.project_description.letter.p": "Inscr\u00edbase al Bolet\u00edn de Estudios del CID para mantenerse al d\u00eda con los avances de la investigaci\u00f3n y las herramientas pr\u00e1cticas en temas relacionados con la complejidad.", + "about.project_description.team.header": "El equipo acad\u00e9mico y t\u00e9cnico", + "about.project_description.team.p": "El equipo acad\u00e9mico de CID de Harvard estuvo compuesto por Ricardo Hausmann (director), Andr\u00e9s G\u00f3mez-Li\u00e9vano, Eduardo Lora y Sid Ravinutala. En fases anteriores fueron parte del equipo acad\u00e9mico Tim Cheston, Jos\u00e9 Ram\u00f3n Morales, Neave O\u2019Clery y Juan T\u00e9llez. El equipo de programaci\u00f3n y visualizaci\u00f3n de CID de Harvard: Annie White (coordinator) and Mali Akmanalp. En fases anteriores fueron parte del equipo de programaci\u00f3n y visualizaci\u00f3n Katy Harris, Quinn Lee, Greg Shapiro, Romain Vuillemot and Gus Wezerek. La recopilaci\u00f3n y procesamiento de los datos de vacantes laborales estuvo a cargo de Jeisson Arley C\u00e1rdenas Rubio (Institute for Employment Research \u2013IER, University of Warwick) y Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics). Actualizaciones Gustavo Montes y Oscar Hern\u00e1ndez (Banc\u00f3ldex).", + "about.project_description_name": "Acerca de Datlas", + "census_year": "2014", + "country.show.ag_farmsize": "45.99 ha", + "country.show.agproducts": "Toneladas Producidas Por Cultivo en Colombia", + "country.show.agproducts.production_tons": "Producci\u00f3n (toneladas)", + "country.show.average_livestock_load": "628", + "country.show.dotplot-column": "Departamentos de Colombia", + "country.show.eci": "0,037", + "country.show.economic_structure": "Estructura econ\u00f3mica", + "country.show.economic_structure.copy.p1": "Con una poblaci\u00f3n de 49,5 millones (a diciembre 2017), Colombia es el tercer pa\u00eds m\u00e1s grande de Am\u00e9rica Latina. Su PIB total en 2016 fue Col $772,4 billones, o US$253,2 miles de millones a la tasa de cambio promedio de 2016 (1 US d\u00f3lar = 3.050 pesos colombianos). En 2016, se alcanz\u00f3 un nivel de ingreso per c\u00e1pita de Col $17.798.353 o US$5.806. Durante el a\u00f1o 2016 la econom\u00eda colombiana creci\u00f3 2%.", + "country.show.economic_structure.copy.p2": "Los servicios empresariales y financieros son el sector m\u00e1s grande, con una contribuci\u00f3n al PIB de 20,9%, seguidos por los servicios de gobierno, sociales y personales (15,4%) y las actividades manufactureras (11,2%). Bogot\u00e1 D.C., Antioquia y el Valle del Cauca concentran aproximadamente la mitad de la actividad productiva, con participaciones en el PIB de 25,7, 13,9 y 9,7%, respectivamente. Sin embargo, los departamentos con m\u00e1s alto PIB per c\u00e1pita son Casanare y Meta, ambos importantes productores de petr\u00f3leo. Los gr\u00e1ficos siguientes presentan m\u00e1s detalles.", + "country.show.employment_wage_occupation": "Empleo formal, ocupaciones y salarios", + "country.show.employment_wage_occupation.copy.p1": "Los registros de la PILA, que cubren el universo de los trabajadores que hacen contribuciones al sistema de seguridad social, indican que el n\u00famero efectivo de trabajadores-a\u00f1o en el sector formal en 2016 fue 8,2 millones. Bogot\u00e1 DC, Antioquia y el Valle del Cauca generan, respectivamente 31,7%, 17,1%, and 10,8% del empleo formal (efectivo).", + "country.show.employment_wage_occupation.copy.p2": "Los siguientes gr\u00e1ficos ofrecen informaci\u00f3n m\u00e1s detallada de los patrones de empleo formal y los salarios pagados seg\u00fan los registros de PILA. Tambi\u00e9n se incluye informaci\u00f3n de vacantes anunciadas y salarios ofrecidos por ocupaci\u00f3n, calculados a partir de los anuncios colocados por empresas en sitios de Internet durante 2014.", + "country.show.export_complexity_possibilities": "Complejidad de las exportaciones y posibilidades de exportaci\u00f3n", + "country.show.export_complexity_possibilities.copy.p1": "El concepto de complejidad de las exportaciones es an\u00e1logo al de complejidad de los sectores sectorial presentado arriba, pero referido ahora a las exportaciones. Se mide mediante el \u00cdndice de Complejidad del Producto. Se ha comprobado que los pa\u00edses que exportan productos que son relativamente complejos con respecto a su nivel de desarrollo tienden a crecer m\u00e1s r\u00e1pido que los pa\u00edses que exportan bienes relativamente simples. Seg\u00fan la complejidad de su canasta exportadora en 2013, Colombia ocupa el puesto 53 entre 124 pa\u00edses. La tasa de crecimiento proyectada para Colombia con base en su complejidad y su nivel de desarrollo es 3,3% por a\u00f1o en el per\u00edodo 2013-2023.", + "country.show.export_complexity_possibilities.copy.p2": "El \"mapa de similitud tecnol\u00f3gica de los productos de exportaci\u00f3n\" (o mapa de los productos) que se presenta enseguida es una representaci\u00f3n gr\u00e1fica de la similitud tecnol\u00f3gica entre todos los productos de exportaci\u00f3n, seg\u00fan los patrones de exportaci\u00f3n de todos los pa\u00edses. Cada punto o nodo representa un producto; los nodos conectados entre s\u00ed requieren capacidades productivas semejantes. Los productos que est\u00e1n m\u00e1s conectados tienden a agruparse en el centro de la red, lo cual implica que las capacidades que ellos usan pueden ser utilizadas en la producci\u00f3n de muchos otros productos.", + "country.show.export_complexity_possibilities.copy.p3": "Los puntos que aparecen destacados representan productos que Colombia exporta en cantidades relativamente importantes (m\u00e1s exactamente, con ventaja comparativa revelada mayor de uno, v\u00e9ase el Glosario). Los colores representan grupos de productos (son los mismos colores usados para los sectores correspondientes en el mapa de similitud tecnol\u00f3gica presentado arriba). El gr\u00e1fico que aparece m\u00e1s abajo, junto con el cuadro que lo acompa\u00f1a, indica qu\u00e9 productos ofrecen las mejores posibilidades para Colombia, dadas las capacidades productivas que ya tiene el pa\u00eds y que tan \u2018distantes\u2019 son esas capacidades de las que requieren para exportar otras cosas. ", + "country.show.exports": "Exportaciones", + "country.show.exports.copy.p1": "Colombia export\u00f3 US$32,5 miles de millones en 2016. Sus principales destinos de exportaci\u00f3n son los Estados Unidos, Panam\u00e1, China y Espa\u00f1a. En 2016, los productos minerales (entre los cuales, petr\u00f3leo, carb\u00f3n y ferron\u00edquel son los m\u00e1s importantes) representaron 51,7% de las exportaciones totales de bienes; los productos vegetales, alimentos y maderas 22,57%, y los quimicos y pl\u00e1sticos 9,78%. Los siguientes gr\u00e1ficos presentan m\u00e1s detalles.", + "country.show.exports_composition_by_department": "Composici\u00f3n de las exportaciones por departamento ({{year}})", + "country.show.exports_composition_by_products": "Composici\u00f3n de las exportaciones ({{year}})", + "country.show.gdp": "Col $756,152 bill", + "country.show.gdp_per_capita": "Col $15.864.953", + "country.show.industry_complex": "Complejidad de los sectores productivos", + "country.show.industry_complex.copy.p1": "La complejidad de los sectores productivos, que se cuantifica mediante el \u00cdndice de Complejidad del Sector, es una media de la amplitud de las capacidades y habilidades \u2013know-how\u2013 que se requiere en un sector productivo. Se dice que sectores tales como qu\u00edmicos o maquinaria son altamente complejos porque requieren un nivel sofisticado de conocimientos productivos que solo es factible encontrar en grandes empresas donde interact\u00faa un n\u00famero de individuos altamente capacitados. En contraste, sectores como el comercio minorista o restaurantes requieren solo niveles b\u00e1sicos de capacitaci\u00f3n que pueden encontrarse incluso en una peque\u00f1a empresa familiar. Los sectores m\u00e1s complejos son m\u00e1s productivos y contribuyen m\u00e1s a elevar el ingreso per c\u00e1pita. Los departamentos y ciudades con sectores m\u00e1s complejos tienen una base productiva m\u00e1s diversificada y tienden a crear m\u00e1s empleo formal.", + "country.show.industry_complex.copy.p2": "El \"mapa de similitud tecnol\u00f3gica de los sectores\" (o mapa de los sectores) que se presenta enseguida es una representaci\u00f3n gr\u00e1fica de la similitud de las capacidades y habilidades entre pares de sectores. Cada punto (o nodo) representa un sector; los nodos conectados por l\u00edneas requieren capacidades semejantes. Los sectores con m\u00e1s conexiones usan capacidades que pueden ser utilizadas en muchos otros sectores. Los colores representan grupos de sectores.", + "country.show.industry_space": "Mapa de los sectores", + "country.show.landuses": "Uso del Suelo en Colombia", + "country.show.landuses.area": "\u00c1rea Total (ha)", + "country.show.nonag_farmsize": "4.53 ha", + "country.show.occupation.num_vac": "Vacantes anunciadas", + "country.show.population": "48,1 mill", + "country.show.product_space": "Mapa de los productos", + "country.show.total": "Totales", + "ctas.csv": "CSV", + "ctas.download": "Descargue estos datos", + "ctas.embed": "Insertar", + "ctas.excel": "Excel", + "ctas.export": "Exportar", + "ctas.facebook": "Facebook", + "ctas.pdf": "PDF", + "ctas.png": "PNG", + "ctas.share": "Compartir", + "ctas.twitter": "Twitter", + "currency": "Col$", + "decimal_delmiter": ",", + "downloads.cta_download": "Descargar", + "downloads.cta_na": "No disponible", + "downloads.head": "Acerca de los datos", + "downloads.industry_copy": "La Planilla Integrada de Aportes Laborales, PILA, del Ministerio de Salud, es la fuente principal de los datos por sector. Contiene informaci\u00f3n de empleo formal, salarios y n\u00famero de empresas por municipio y sector. La clasificaci\u00f3n sectorial de Colombia es una versi\u00f3n modificada de la Clasificaci\u00f3n Sectorial Internacional Uniforme de todas las Actividades Econ\u00f3micas (CIIU). La lista de los sectores productivos puede verse en las bases de datos descargables de sectores. Puede descargarse aqu\u00ed un archivo con la lista de los sectores productivos del CIIU los cu\u00e1les no aparecen representados en el mapa de los sectores (por razones que se explican en los M\u00e9todos de C\u00e1lculo).", + "downloads.industry_head": "Datos de sectores productivos (PILA)", + "downloads.industry_row_1": "Empleo, salarios, n\u00famero de empresas e indicadores de complejidad productiva ({{yearRange}})", + "downloads.list_of_cities.header": "Listas de departamentos, ciudades y municipios", + "downloads.map.cell": "Datos del mapa", + "downloads.map.header": "Mapa", + "downloads.occupations_copy": "Todos los datos sobre las ocupaciones (salarios ofrecidos por ocupaci\u00f3n y sector, y estructura ocupacional por sector) provienen de los anuncios de vacantes de empleo colocados por las empresas en los sitios de empleo de Internet p\u00fablicos y privados. Las ocupaciones se clasifican de acuerdo con el \u00cdndice Num\u00e9rico de la Red Ocupacional (ONET). Los datos fueron procesados \u200b\u200bpor Jeisson Arley Rubio C\u00e1rdenas, investigador de la Universidad del Rosario, Bogot\u00e1, y Jaime Mauricio Monta\u00f1a Doncel, estudiante de maestr\u00eda en la Escuela de Econom\u00eda de Par\u00eds.", + "downloads.occupations_head": "Datos de ocupaciones", + "downloads.occupations_row_1": "Vacantes laborales y salarios ofrecidos (2014)", + "downloads.other_copy": "El Departamento Administrativo Nacional de Estad\u00edstica, DANE, es la fuente de todos los datos sobre el PIB y la poblaci\u00f3n.", + "downloads.other_head": "Otros datos (DANE)", + "downloads.other_row_1": "PIB y variables demogr\u00e1ficas", + "downloads.rural_agproduct": "Productos Agropecuarios", + "downloads.rural_copy": "

Se utilizan dos fuentes de datos: el Censo Nacional Agropecuario del DANE (2014) y la informaci\u00f3n publicada en la plataforma Agronet del Ministerio de Agricultura y Desarrollo Rural (2017).

La clasificaci\u00f3n del uso del suelo y la informaci\u00f3n de hect\u00e1reas (1 hect\u00e1rea = 10.000 metros cuadrados) provienen del Censo Nacional Agropecuario (CNA). Las unidades de producci\u00f3n agropecuaria se clasifican seg\u00fan el CNA en \"Unidades de Producci\u00f3n Agropecuaria\", o UPAs, y \"Unidades de Producci\u00f3n No Agropecuaria\", o UPNAs. Mientras que la producci\u00f3n agropecuaria (que incluye cultivos y ganado) s\u00f3lo puede tener lugar en las UPAs, tanto las UPAs como las UPNAs pueden tener actividades de producci\u00f3n no agropecuaria. La clasificaci\u00f3n de las actividades de producci\u00f3n no agropecuaria proviene del Censo y no coincide con la clasificaci\u00f3n CIIU utilizada para los sectores productivos. UPAs y UPNAs pueden ser informales (no registradas como empresas).

La informaci\u00f3n de los cultivos, que proviene del Ministerio de Agricultura y Desarrollo Rural, es para los a\u00f1os agr\u00edcolas 2008-2015 (un a\u00f1o agr\u00edcola, para un cultivo transitorio, corresponde al segundo semestre del a\u00f1o anterior y el primer semestre del a\u00f1o correspondiente). El \u00e1rea sembrada y el \u00e1rea cosechada se miden en t\u00e9rminos de hect\u00e1reas y la producci\u00f3n se mide t\u00e9rminos de toneladas m\u00e9tricas (en todos los casos, sumando los dos semestres del a\u00f1o agr\u00edcola). La productividad de la tierra (para cualquier producto y lugar) es el rendimiento en t\u00e9rminos de toneladas por hect\u00e1rea cosechada. Un \u00edndice de rendimiento (para cualquier producto y lugar) es el rendimiento dividido por el rendimiento a nivel nacional. Los \u00edndices de rendimiento para m\u00e1s de un producto (por lugar) se calculan como el promedio ponderado de los \u00edndices de rendimiento de los productos, donde los pesos son el \u00e1rea cosechada que corresponde a cada producto.

Es importante tener en cuenta que la informaci\u00f3n presentada en esta secci\u00f3n para ca\u00f1a azucarera corresponde al rendimiento (ton/ha) de material verde y no al de az\u00facar. Esto resulta debido a que existe una relaci\u00f3n de aproximadamente 10 toneladas de material verde por cada tonelada de az\u00facar.

", + "downloads.rural_farmsize": "Tama\u00f1o de UPA ", + "downloads.rural_farmtype": "Tipo de UPA", + "downloads.rural_head": "Datos rurales", + "downloads.rural_landuse": "Usos del suelo ", + "downloads.rural_livestock": "Especies Pecuarias", + "downloads.rural_nonag": "Actividades no agropecuarias", + "downloads.thead_departments": "Departamentos", + "downloads.thead_met": "Ciudades", + "downloads.thead_muni": "Municipios", + "downloads.thead_national": "Nacional", + "downloads.trade_copy": "La fuente de todos los datos sobre las exportaciones e importaciones por departamento y municipio es la Direcci\u00f3n de Impuestos y Aduanas Nacionales, DIAN. Colombia utiliza la nomenclatura arancelaria NANDINA, la cual calza a los seis d\u00edgitos con el Sistema Armonizado (SA) de clasificaci\u00f3n internacional de productos. Eso lo estandarizamos despu\u00e9s a SA (HS) 1992 para resolver cualquier inconsistencia entre las versiones a trav\u00e9s de los a\u00f1os, de manera tal que los datos se puedan visualizar en el tiempo. La lista de partidas arancelarias puede verse en las bases de datos descargables de exportaci\u00f3n e importaci\u00f3n.

El origen de las exportaciones se establece en dos etapas. Primero, se define el departamento de origen como es el \u00faltimo lugar donde tuvieron alg\u00fan procesamiento, ensamblaje o empaque, seg\u00fan la DIAN. Luego, se distribuyen los valores entre municipios seg\u00fan la composici\u00f3n del empleo de la firma correspondiente con base en la PILA (para las firmas sin esta informaci\u00f3n se asign\u00f3 el valor total a la capital del departamento). En el caso de las exportaciones de petr\u00f3leo (2709) y gas (2711), los valores totales se distribuyeron por origen seg\u00fan la producci\u00f3n por municipios (Agencia Nacional de Hidrocarburos y Asociaci\u00f3n Colombiana de Petr\u00f3leo) y en el caso de las exportaciones de refinados de petr\u00f3leo (2710) seg\u00fan el valor agregado por municipio (sectores 2231, 2322 y 2320 CIIU revisi\u00f3n 3, Encuesta Anual Manufacturera, DANE).

Los totales de exportaci\u00f3n por partida arancelaria pueden no corresponder a los datos oficiales porque quedan excluidas: (a) las exportaciones sin informaci\u00f3n sobre el sector del exportador y/o el departamento o municipio de origen, y (b) las exportaciones que en los datos de la DIAN tienen como destino las zonas francas; mientras que quedan incluidas: (c) las exportaciones de las zonas francas, que la DIAN no incluye en dichos totales.

De forma semejante, los totales de importaci\u00f3n por partida arancelaria pueden no corresponder a los datos oficiales porque quedan excluidas: (a) las importaciones sin informaci\u00f3n sobre el departamento o municipio de destino, y (b) las importaciones que en los datos de la DIAN tienen como origen las zonas francas; mientras que quedan incluidas: (c) las importaciones realizadas por las zonas francas, que la DIAN no incluye en dichos totales.

El archivo que describe la correspondencia entre la versi\u00f3n del Sistema Armonizado (HS) utilizado por la DIAN y su revisi\u00f3n de 1992 puede encontrarse aqu\u00ed.

Tambi\u00e9n puede descargarse aqu\u00ed un archivo con la lista de los productos del Sistema Armonizado los cu\u00e1les no aparecen representados en el mapa del producto (por razones que se explican en los M\u00e9todos de C\u00e1lculo).", + "downloads.trade_head": "Datos de exportaciones e importaciones (DIAN)", + "downloads.trade_row_1": "Exportaciones, importaciones e indicadores de complejidad ({{yearRange}})", + "downloads.trade_row_2": "Exportaciones e importaciones con origen y destino ({{yearRange}})", + "first_year": "2008", + "general.export_and_import": "Productos", + "general.geo": "Mapa geogr\u00e1fico", + "general.glossary": "Glosario", + "general.industries": "Sectores", + "general.industry": "sector", + "general.location": "lugar", + "general.locations": "Lugares", + "general.multiples": "Gr\u00e1ficos de \u00e1reas", + "general.occupation": "ocupaci\u00f3n", + "general.occupations": "Ocupaciones", + "general.product": "producto", + "general.scatter": "Gr\u00e1fico de dispersi\u00f3n", + "general.similarity": "mapa de los sectores", + "general.total": "Totales", + "general.treemap": "Gr\u00e1fico de composici\u00f3n", + "geomap.center": "4.6,-74.06", + "glossary.head": "Glosario", + "graph_builder.builder_mod_header.agproduct.departments.land_harvested": "\u00c1rea cosechada (ha)", + "graph_builder.builder_mod_header.agproduct.departments.land_sown": "\u00c1rea sembrada (ha)", + "graph_builder.builder_mod_header.agproduct.departments.production_tons": "Producci\u00f3n (toneladas)", + "graph_builder.builder_mod_header.agproduct.municipalities.land_harvested": "\u00c1rea cosechada (ha)", + "graph_builder.builder_mod_header.agproduct.municipalities.land_sown": "\u00c1rea sembrada (ha)", + "graph_builder.builder_mod_header.agproduct.municipalities.production_tons": "Producci\u00f3n (toneladas)", + "graph_builder.builder_mod_header.industry.cities.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.cities.wage_avg": "Salarios mensuales promedio", + "graph_builder.builder_mod_header.industry.cities.wages": "N\u00f3mina salarial", + "graph_builder.builder_mod_header.industry.departments.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.departments.wage_avg": "Salarios mensuales promedio", + "graph_builder.builder_mod_header.industry.departments.wages": "N\u00f3mina salarial", + "graph_builder.builder_mod_header.industry.locations.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.locations.wage_avg": "Salarios mensuales promedio", + "graph_builder.builder_mod_header.industry.locations.wages": "N\u00f3mina salarial", + "graph_builder.builder_mod_header.industry.occupations.num_vacancies": "Total de vacantes", + "graph_builder.builder_mod_header.landUse.departments.area": "\u00c1rea total", + "graph_builder.builder_mod_header.landUse.municipalities.area": "\u00c1rea total", + "graph_builder.builder_mod_header.livestock.departments.num_farms": "N\u00famero de UPAs", + "graph_builder.builder_mod_header.livestock.departments.num_livestock": "N\u00famero de cabezas de ganado", + "graph_builder.builder_mod_header.livestock.municipalities.num_farms": "N\u00famero de UPAs", + "graph_builder.builder_mod_header.livestock.municipalities.num_livestock": "N\u00famero de cabezas de ganado", + "graph_builder.builder_mod_header.location.agproducts.land_harvested": "\u00c1rea cosechada (hect\u00e1reas)", + "graph_builder.builder_mod_header.location.agproducts.land_sown": "\u00c1rea sembrada (hect\u00e1reas)", + "graph_builder.builder_mod_header.location.agproducts.production_tons": "Producci\u00f3n (toneladas)", + "graph_builder.builder_mod_header.location.agproducts.yield_ratio": "Productividad (tons/ha)", + "graph_builder.builder_mod_header.location.farmtypes.num_farms": "UPAs y UPNAs", + "graph_builder.builder_mod_header.location.industries.employment": "Empleo total", + "graph_builder.builder_mod_header.location.industries.scatter": "Complejidad, distancia y valor estrat\u00e9gico de sectores potenciales ", + "graph_builder.builder_mod_header.location.industries.similarity": "Sectores con ventaja comparativa revelada >1 (con color) y <1 (gris)", + "graph_builder.builder_mod_header.location.industries.wages": "Salarios totales", + "graph_builder.builder_mod_header.location.landUses.area": "\u00c1rea total", + "graph_builder.builder_mod_header.location.livestock.num_farms": "N\u00famero de UPAs ganaderas", + "graph_builder.builder_mod_header.location.livestock.num_livestock": "N\u00famero de animales", + "graph_builder.builder_mod_header.location.nonags.num_farms": "N\u00famero de UPNAs", + "graph_builder.builder_mod_header.location.partners.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.location.partners.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.location.products.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.location.products.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.location.products.scatter": "Complejidad, distancia y valor estrat\u00e9gico de exportaciones potenciales", + "graph_builder.builder_mod_header.location.products.similarity": "Exportaciones con ventaja comparativa revelada >1 (con color) y <1 (gris)", + "graph_builder.builder_mod_header.nonag.departments.num_farms": "N\u00famero de UPNAs", + "graph_builder.builder_mod_header.nonag.municipalities.num_farms": "N\u00famero de UPNAs", + "graph_builder.builder_mod_header.product.cities.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.cities.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.product.departments.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.departments.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.product.partners.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.partners.import_value": "Importaciones totales", + "graph_builder.builder_nav.header": "M\u00e1s gr\u00e1ficos para este {{entity}}", + "graph_builder.builder_nav.intro": "Seleccione una pregunta para ver el gr\u00e1fico correspondiente. Si en la pregunta faltan par\u00e1metros ({{icon}}), los podr\u00e1 llenar cuando haga click.", + "graph_builder.builder_questions.city": "Preguntas: Ciudades", + "graph_builder.builder_questions.department": "Preguntas: Departamentos", + "graph_builder.builder_questions.employment": "Preguntas: Empleo", + "graph_builder.builder_questions.export": "Preguntas: Exportaciones", + "graph_builder.builder_questions.import": "Preguntas: Importaciones", + "graph_builder.builder_questions.industry": "Preguntas: Sectores", + "graph_builder.builder_questions.landUse": "Preguntas: Usos del suelo", + "graph_builder.builder_questions.land_harvested": "Preguntas: \u00c1rea cosechada", + "graph_builder.builder_questions.land_sown": "Preguntas: \u00c1rea sembrada", + "graph_builder.builder_questions.livestock_num_farms": "Preguntas: N\u00famero de UPAs", + "graph_builder.builder_questions.livestock_num_livestock": "Preguntas: N\u00famero de cabezas de ganado", + "graph_builder.builder_questions.location": "Preguntas: Lugares", + "graph_builder.builder_questions.nonag": "Preguntas: Actividades no agropecuarias", + "graph_builder.builder_questions.occupation": "Preguntas: Ocupaciones", + "graph_builder.builder_questions.partner": "Preguntas: Socios Comerciales", + "graph_builder.builder_questions.product": "Preguntas: Productos de Exportaci\u00f3n", + "graph_builder.builder_questions.production_tons": "Preguntas: Producci\u00f3n", + "graph_builder.builder_questions.rural": "Preguntas: Actividades Rurales", + "graph_builder.builder_questions.wage": "Preguntas: N\u00f3mina Salarial", + "graph_builder.change_graph.geo_description": "Mapea los datos", + "graph_builder.change_graph.label": "Cambie el gr\u00e1fico", + "graph_builder.change_graph.multiples_description": "Muestra la evoluci\u00f3n en varios per\u00edodos", + "graph_builder.change_graph.scatter_description": "Muestra la complejidad y la distancia", + "graph_builder.change_graph.similarity_description": "Presenta las ventajas comparativas reveladas", + "graph_builder.change_graph.treemap_description": "Muestra la descomposici\u00f3n en varios niveles", + "graph_builder.change_graph.unavailable": "Este gr\u00e1fico no est\u00e1 disponible para esta pregunta", + "graph_builder.download.agproduct": "Producto Agropecuario", + "graph_builder.download.area": "\u00c1rea ", + "graph_builder.download.average_livestock_load": "", + "graph_builder.download.average_wages": "Salario mensual promedio, Col$ ", + "graph_builder.download.avg_wage": "Salario mensual promedio, Col$ ", + "graph_builder.download.code": "C\u00f3digo", + "graph_builder.download.cog": "Valor estrat\u00e9gico", + "graph_builder.download.complexity": "Complejidad", + "graph_builder.download.distance": "Distancia", + "graph_builder.download.eci": "Complejidad exportadora", + "graph_builder.download.employment": "Empleo", + "graph_builder.download.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "graph_builder.download.export": "Exportaci\u00f3n", + "graph_builder.download.export_num_plants": "N\u00famero de empresas", + "graph_builder.download.export_rca": "Ventaja comparativa revelada", + "graph_builder.download.export_value": "Exportaciones, USD", + "graph_builder.download.farmtype": "Tipo de UPA", + "graph_builder.download.gdp_pc_real": "PIB per c\u00e1pita, Col $", + "graph_builder.download.gdp_real": "PIB, Col $", + "graph_builder.download.import_value": "Importaciones, USD", + "graph_builder.download.industry": "Sector", + "graph_builder.download.industry_eci": "Complejidad sectorial", + "graph_builder.download.land_harvested": "\u00c1rea cosechada (ha)", + "graph_builder.download.land_sown": "\u00c1rea sembrada (ha)", + "graph_builder.download.land_use": "Usos del suelo", + "graph_builder.download.less_than_5": "Menos de 5", + "graph_builder.download.livestock": "Especie Pecuaria", + "graph_builder.download.location": "Lugar", + "graph_builder.download.monthly_wages": "Salario mensual promedio, Col$", + "graph_builder.download.name": "Nombre", + "graph_builder.download.num_establishments": "N\u00famero de empresas", + "graph_builder.download.num_farms": "N\u00famero de Unidades de Producci\u00f3n", + "graph_builder.download.num_farms_ag": "N\u00famero de UPAs ", + "graph_builder.download.num_farms_nonag": "N\u00famero de UPNAs", + "graph_builder.download.num_livestock": "N\u00famero de cabezas de ganado", + "graph_builder.download.num_vacancies": "Vacantes", + "graph_builder.download.occupation": "Ocupaci\u00f3n", + "graph_builder.download.parent": "Grupo", + "graph_builder.download.population": "Poblaci\u00f3n", + "graph_builder.download.production_tons": "Producci\u00f3n (toneladas)", + "graph_builder.download.rca": "Ventaja comparativa revelada", + "graph_builder.download.read_more": "\u00bfNo entiende alguno de estos t\u00e9rminos? Consulte el", + "graph_builder.download.wages": "N\u00f3mina salarial total, Col$ ", + "graph_builder.download.year": "A\u00f1o", + "graph_builder.download.yield_index": "\u00cdndice de Rendimiento de Cultivos", + "graph_builder.download.yield_ratio": "Rendimiento de los Cultivos (tons/ha)", + "graph_builder.explanation": "Explicaci\u00f3n", + "graph_builder.explanation.agproduct.departments.land_harvested": "Muestra la composici\u00f3n de lugares que cosechan este producto agropecuario, por \u00e1rea cosechada. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.departments.land_sown": "Muestra la composici\u00f3n de lugares que siembran este producto agropecuario, por \u00e1rea sembrada. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.departments.production_tons": "Muestra la composici\u00f3n de lugares que producen este producto agropecuario, por toneladas producidas. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.land_harvested": "Muestra la composici\u00f3n de lugares que siembran este producto agropecuario, por \u00e1rea sembrada. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.land_sown": "Muestra la composici\u00f3n de lugares que siembran este producto agropecuario, por \u00e1rea sembrada. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.agproduct.municipalities.production_tons": "Muestra la composici\u00f3n de lugares que producen este producto agropecuario, por toneladas producidas. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.hide": "Oculte", + "graph_builder.explanation.industry.cities.employment": "Muestra la composici\u00f3n por departamentos del empleo formal del sector. Fuente: PILA.", + "graph_builder.explanation.industry.cities.wages": "Muestra la composici\u00f3n por departamentos de la n\u00f3mina salarial del sector. Fuente: PILA.", + "graph_builder.explanation.industry.departments.employment": "Muestra la composici\u00f3n por departamentos del empleo formal del sector. Fuente: PILA.", + "graph_builder.explanation.industry.departments.wages": "Muestra la composici\u00f3n por departamentos de la n\u00f3mina salarial del sector. Fuente: PILA.", + "graph_builder.explanation.industry.occupations.num_vacancies": "Muestra la composici\u00f3n de las vacantes anunciadas en sitios de Internet y los salarios ofrecidos.", + "graph_builder.explanation.landUse.departments.area": "Muestra la composici\u00f3n de lugares en donde se usa el suelo espec\u00edficamente de esta manera, por \u00e1rea. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.landUse.municipalities.area": "Muestra la composici\u00f3n de lugares en donde se usa el suelo espec\u00edficamente de esta manera, por \u00e1rea. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.livestock.departments.num_farms": "Muestra la composici\u00f3n de localizaciones para esta especie pecuaria, por n\u00famero de UPAs. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.livestock.departments.num_livestock": "Muestra la composici\u00f3n de localizaciones para esta especie pecuaria, por n\u00famero de cabezas de ganado. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.livestock.municipalities.num_farms": "Muestra la composici\u00f3n de localizaciones para esta especie pecuaria, por n\u00famero de UPAs. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.livestock.municipalities.num_livestock": "Muestra la composici\u00f3n de localizaciones para esta especie pecuaria, por n\u00famero de cabezas de ganado. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.location.agproducts.land_harvested": "Muestra la composici\u00f3n de productos agropecuarios en esta localizaci\u00f3n, por \u00e1rea de \u00e1rea cosechada. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.land_sown": "Muestra la composici\u00f3n de productos agropecuarios en esta localizaci\u00f3n, por \u00e1rea de \u00e1rea sembrada. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.production_tons": "Muestra la composici\u00f3n de productos agropecuarios en esta localizaci\u00f3n, por peso. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.location.agproducts.yield_ratio": "Muestra el rendimiento de la tierra cosechada por producto en las UPAs de este lugar. Fuente: Agronet (2017), Ministerio de Agricultura. Link Informaci\u00f3n acerca de ca\u00f1a de az\u00facar: Es importante tener en cuenta que la informaci\u00f3n presentada en esta secci\u00f3n para ca\u00f1a azucarera corresponde al rendimiento (ton/ha) de material verde y no al de az\u00facar. Esto resulta debido a que existe una relaci\u00f3n de aproximadamente 10 toneladas de material verde por cada tonelada de az\u00facar.", + "graph_builder.explanation.location.farmtypes.num_farms": "Muestra la composici\u00f3n de UPAs en esta localizaci\u00f3n, por tipo de UPA. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.location.industries.employment": "Muestra la composici\u00f3n sectorial del empleo formal del departamento. Fuente: PILA.", + "graph_builder.explanation.location.industries.scatter": "Cada punto representa un sector productivo. Cuando se selecciona un punto aparece el nombre y la ventaja comparativa revelada del lugar en ese sector. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en la tabla que sigue). El eje vertical es el \u00edndice de complejidad sectorial y el eje horizontal es la distancia tecnol\u00f3gica para que el sector se desarrolle, dadas las capacidades que ya existen en el lugar. El tama\u00f1o de los puntos es proporcional al valor estrat\u00e9gico del sector para el lugar, es decir qu\u00e9 tanto puede contribuir el sector al aumento del \u00edndice de complejidad del lugar a trav\u00e9s de nuevas capacidades productivas que pueden ser \u00fatiles en otros sectores. Los sectores m\u00e1s atractivos son los ubicados arriba y a la izquierda, especialmente si los puntos que los representan son grandes. Fuente: c\u00e1lculos del CID con datos de PILA. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los t\u00e9rminos).", + "graph_builder.explanation.location.industries.similarity": "El mapa de similitud tecnol\u00f3gica de los sectores (o mapa de los sectores) muestra qu\u00e9 tan similares son los conocimientos requeridos por unos sectores y otros. Cada punto representa un sector productivo y cada enlace entre un par de sectores indica que requieren capacidades productivas similares. Los puntos coloreados son sectores con ventaja comparativa revelada (VCR) mayor que uno en el departamento o ciudad. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en el cuadro que sigue). Cuando se selecciona un punto aparece su nombre, su VCR y sus enlaces a otros sectores. Fuente: c\u00e1lculos del CID con datos de PILA. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los t\u00e9rminos).", + "graph_builder.explanation.location.industries.wages": "Muestra la composici\u00f3n sectorial de la n\u00f3mina salarial del departamento o ciudad. Fuente: PILA.", + "graph_builder.explanation.location.landUses.area": "Muestra la composici\u00f3n de usos del suelo en esta localizaci\u00f3n, por \u00e1rea. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.location.livestock.num_farms": "Muestra la composici\u00f3n de especies pecuarias en esta localizaci\u00f3n, por n\u00famero de UPAs. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.location.livestock.num_livestock": "Muestra la composici\u00f3n de especies pecuarias en esta localizaci\u00f3n, por n\u00famero de UPAs. Fuente: National Agricultural Census (2014). Departamento Administrativo Nacional de Estad\u00edstica (DANE)", + "graph_builder.explanation.location.nonags.num_farms": "Muestra la composici\u00f3n de actividades no agropecuarias realizadas en este lugar por el n\u00famero de UPAs que las realizan. Fuente: CNA", + "graph_builder.explanation.location.partners.export_value": "Muestra la composici\u00f3n de las exportaciones de este lugar por pa\u00eds de destino, agrupados por regiones del mundo. Fuente: DIAN.", + "graph_builder.explanation.location.partners.import_value": "Muestra la composici\u00f3n de las importaciones de este lugar por pa\u00eds de origen, agrupados por regiones del mundo. Fuente: DIAN.", + "graph_builder.explanation.location.products.export_value": "Muestra la composici\u00f3n de las exportaciones del departamento o ciudad. Los colores representan grupos de productos (v\u00e9ase el cuadro). Fuente: DIAN.", + "graph_builder.explanation.location.products.import_value": "Muestra la composici\u00f3n de las importaciones del departamento o ciudad. Los colores representan grupos de productos (v\u00e9ase el cuadro). Fuente: DIAN.", + "graph_builder.explanation.location.products.scatter": "Cada punto representa un producto de exportaci\u00f3n. Cuando se selecciona un punto aparece el nombre y la ventaja comparativa revelada del departamento o ciudad en ese producto. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en la tabla que sigue). El eje vertical es el \u00edndice de complejidad del producto y el eje horizontal es la distancia tecnol\u00f3gica para poder exportar un producto, dadas las capacidades que ya existen en el lugar. La l\u00ednea discontinua es el \u00edndice de complejidad sectorial promedio del lugar. El tama\u00f1o de los puntos es proporcional al valor estrat\u00e9gico del producto para el departamento o ciudad, es decir qu\u00e9 tanto puede contribuir el producto al aumento del \u00edndice de complejidad del lugar a trav\u00e9s de nuevas capacidades productivas que pueden ser \u00fatiles para otras exportaciones. Las exportaciones m\u00e1s atractivas de desarrollar son las ubicadas arriba y a la izquierda, especialmente si los puntos que las representan son grandes. Fuente: c\u00e1lculos del CID con datos de la DIAN. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los conceptos).", + "graph_builder.explanation.location.products.similarity": "El mapa de similitud tecnol\u00f3gica de los productos (o mapa de los productos) muestra que tan similares son los conocimientos requeridos por unos productos y otros. Cada punto representa un producto de exportaci\u00f3n y cada enlace entre un par de productos indica que requieren capacidades productivas similares. Los puntos coloreados son exportaciones con ventaja comparativa revelada (VCR) mayor que uno en el departamento o ciudad. Los colores de los puntos representan grupos de productos (v\u00e9ase el cuadro). Cuando se selecciona un punto aparece su nombre, su VCR y sus enlaces a otros productos. Fuente: c\u00e1lculos del CID con datos de DIAN. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los conceptos).", + "graph_builder.explanation.nonag.departments.num_farms": "Muestra la composici\u00f3n de lugares que realizan esta actividad no agropecuaria por n\u00famero de UPAs que la realizan. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.nonag.municipalities.num_farms": "Muestra la composici\u00f3n de lugares que siembran este producto agr\u00edcola por \u00e1rea\u00a0sembrada. Fuente: Agronet (2017), Ministerio de Agricultura. Link", + "graph_builder.explanation.product.cities.export_value": "Muestra la composici\u00f3n por ciudades de las exportaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.cities.import_value": "Muestra la composici\u00f3n por ciudades de las importaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.departments.export_value": "Muestra la composici\u00f3n por departamentos de las exportaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.departments.import_value": "Muestra la composici\u00f3n por departamentos de las importaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.partners.export_value": "Muestra el destino de las exportaciones de este producto, por pa\u00eds y regi\u00f3n del mundo. Fuente: DIAN.", + "graph_builder.explanation.product.partners.import_value": "Muestra el origen de las importaciones de este producto, por pa\u00eds y regi\u00f3n del mundo. Fuente: DIAN.", + "graph_builder.explanation.show": "Muestre m\u00e1s", + "graph_builder.multiples.show_all": "Mostrar todo", + "graph_builder.page_title.agproduct.departments.land_harvested": "\u00bfQu\u00e9 departamentos cosechan este producto agropecuario?", + "graph_builder.page_title.agproduct.departments.land_sown": "\u00bfQu\u00e9 departamentos siembran este producto agropecuario?", + "graph_builder.page_title.agproduct.departments.production_tons": "\u00bfQu\u00e9 departamentos producen este producto agropecuario?", + "graph_builder.page_title.agproduct.municipalities.land_harvested": "\u00bfQu\u00e9 municipios cosechan este producto agropecuario?", + "graph_builder.page_title.agproduct.municipalities.land_sown": "\u00bfQu\u00e9 municipios siembran este producto agropecuario?", + "graph_builder.page_title.agproduct.municipalities.production_tons": "\u00bfQu\u00e9 municipios producen este producto agropecuario?", + "graph_builder.page_title.industry.cities.employment": "\u00bfQu\u00e9 ciudades en Colombia ocupan m\u00e1s gente en este sector?", + "graph_builder.page_title.industry.cities.wages": "\u00bfQu\u00e9 ciudades en Colombia tienen las mayores n\u00f3minas salariales en este sector?", + "graph_builder.page_title.industry.departments.employment": "\u00bfQu\u00e9 departamentos en Colombia ocupan m\u00e1s gente en este sector?", + "graph_builder.page_title.industry.departments.wages": "\u00bfQu\u00e9 departamentos en Colombia tienen las mayores n\u00f3minas salariales en este sector?", + "graph_builder.page_title.industry.occupations.num_vacancies": "\u00bfQu\u00e9 ocupaciones demanda este sector?", + "graph_builder.page_title.landUse.departments.area": "\u00bfQu\u00e9 departamentos tienen este uso del suelo?", + "graph_builder.page_title.landUse.municipalities.area": "\u00bfQu\u00e9 departamentos tienen este uso del suelo?", + "graph_builder.page_title.livestock.departments.num_farms": "\u00bfCu\u00e1ntas UPAs cr\u00edan esta especie pecuaria en cada departamento?", + "graph_builder.page_title.livestock.departments.num_livestock": "\u00bfCu\u00e1ntos animales de esta especie pecuaria se cr\u00edan en cada departamento?", + "graph_builder.page_title.livestock.municipalities.num_farms": "\u00bfCu\u00e1ntas UPAs cr\u00edan esta especie pecuaria en cada municipio?", + "graph_builder.page_title.livestock.municipalities.num_livestock": "\u00bfCu\u00e1ntos animales de esta especie pecuaria se cr\u00edan en cada municipio?", + "graph_builder.page_title.location.agproducts.land_harvested.country": "\u00bfCu\u00e1ntas hect\u00e1reas cosechadas por cultivo hay en Colombia?", + "graph_builder.page_title.location.agproducts.land_harvested.department": "\u00bfCu\u00e1ntas hect\u00e1reas cosechadas por cultivo hay en este departamento?", + "graph_builder.page_title.location.agproducts.land_harvested.municipality": "\u00bfCu\u00e1ntas hect\u00e1reas cosechadas por cultivo hay en este municipio?", + "graph_builder.page_title.location.agproducts.land_sown.country": "\u00bfCu\u00e1ntas hect\u00e1reas sembradas por cultivo hay en Colombia?", + "graph_builder.page_title.location.agproducts.land_sown.department": "\u00bfCu\u00e1ntas hect\u00e1reas sembradas por cultivo hay en este departamento?", + "graph_builder.page_title.location.agproducts.land_sown.municipality": "\u00bfCu\u00e1ntas hect\u00e1reas sembradas por cultivo hay en este municipio?", + "graph_builder.page_title.location.agproducts.production_tons.country": "\u00bfCu\u00e1ntas toneladas se producen por cultivo en Colombia?", + "graph_builder.page_title.location.agproducts.production_tons.department": "\u00bfCu\u00e1ntas toneladas se producen por cultivo en este departamento?", + "graph_builder.page_title.location.agproducts.production_tons.municipality": "\u00bfCu\u00e1ntas toneladas se producen por cultivo en este municipio?", + "graph_builder.page_title.location.agproducts.yield_ratio.country": "\u00bfCu\u00e1nto es el rendimiento (ton/ha) de los cultivos en Colombia?", + "graph_builder.page_title.location.agproducts.yield_ratio.department": "\u00bfCu\u00e1nto es el rendimiento (ton/ha) de los cultivos en este departamento?", + "graph_builder.page_title.location.agproducts.yield_ratio.municipality": "\u00bfCu\u00e1nto es el rendimiento (ton/ha) de los cultivos en este municipio?", + "graph_builder.page_title.location.destination_by_product.export_value.department": "\u00bfA qu\u00e9 pa\u00edses env\u00eda este departamento sus exportaciones de petr\u00f3leo?", + "graph_builder.page_title.location.destination_by_product.import_value.department": "\u00bfDe qu\u00e9 pa\u00edses recibe este departamento sus importaciones de veh\u00edculos?", + "graph_builder.page_title.location.farmtypes.num_farms.country": "\u00bfCu\u00e1ntas Unidades de Produccion Agropecuaria (UPAs) y no Agropecuaria (UPNAs) hay en Colombia?", + "graph_builder.page_title.location.farmtypes.num_farms.department": "\u00bfCu\u00e1ntas Unidades de Produccion Agropecuaria (UPAs) y no Agropecuaria (UPNAs) hay en este departamento?", + "graph_builder.page_title.location.farmtypes.num_farms.municipality": "\u00bfCu\u00e1ntas Unidades de Produccion Agropecuaria (UPAs) y no Agropecuaria (UPNAs) hay en este municipio?", + "graph_builder.page_title.location.industries.employment.country": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en Colombia?", + "graph_builder.page_title.location.industries.employment.department": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en este departamento?", + "graph_builder.page_title.location.industries.employment.msa": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en esta ciudad?", + "graph_builder.page_title.location.industries.employment.municipality": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en este municipio?", + "graph_builder.page_title.location.industries.scatter.country": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en Colombia?", + "graph_builder.page_title.location.industries.scatter.department": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en este departamento?", + "graph_builder.page_title.location.industries.scatter.msa": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en esta ciudad?", + "graph_builder.page_title.location.industries.scatter.municipality": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en este municipio?", + "graph_builder.page_title.location.industries.similarity.country": "\u00bfC\u00f3mo es el mapa de los sectores de Colombia?", + "graph_builder.page_title.location.industries.similarity.department": "\u00bfC\u00f3mo es el mapa de los sectores de este departamento?", + "graph_builder.page_title.location.industries.similarity.msa": "\u00bfC\u00f3mo es el mapa de los sectores de esta ciudad?", + "graph_builder.page_title.location.industries.similarity.municipality": "\u00bfC\u00f3mo es el mapa de los sectores de este municipio?", + "graph_builder.page_title.location.industries.wages.country": "\u00bfQu\u00e9 sectores en Colombia tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.department": "\u00bfQu\u00e9 sectores en este departamento tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.msa": "\u00bfQu\u00e9 sectores en esta ciudad tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.municipality": "\u00bfQu\u00e9 sectores en este municipio tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.landUses.area.country": "\u00bfC\u00f3mo se usa el suelo en Colombia?", + "graph_builder.page_title.location.landUses.area.department": "\u00bfC\u00f3mo se usa el suelo en este departamento?", + "graph_builder.page_title.location.landUses.area.municipality": "\u00bfC\u00f3mo se usa el suelo en este municipio?", + "graph_builder.page_title.location.livestock.num_farms.country": "\u00bfCu\u00e1ntas UPAs realizan actividad pecuaria seg\u00fan especie?", + "graph_builder.page_title.location.livestock.num_farms.department": "\u00bfCu\u00e1ntas UPAs realizan actividad pecuaria seg\u00fan especie?", + "graph_builder.page_title.location.livestock.num_farms.municipality": "\u00bfCu\u00e1ntas UPAs realizan actividad pecuaria seg\u00fan especie?", + "graph_builder.page_title.location.livestock.num_livestock.country": "\u00bfCu\u00e1les y cuantas son las especies pecuarias en Colombia?", + "graph_builder.page_title.location.livestock.num_livestock.department": "\u00bfCu\u00e1les y cuantas son las especies pecuarias en este departamento?", + "graph_builder.page_title.location.livestock.num_livestock.municipality": "\u00bfCu\u00e1les y cuantas son las especies pecuarias en este municipio?", + "graph_builder.page_title.location.nonags.num_farms.country": "\u00bfQu\u00e9 actividades no agropecuarias se realizan en Colombia?", + "graph_builder.page_title.location.nonags.num_farms.department": "\u00bfQu\u00e9 actividades no agropecuarias se realizan en este departamento?", + "graph_builder.page_title.location.nonags.num_farms.municipality": "\u00bfQu\u00e9 actividades no agropecuarias se realizan en este municipio?", + "graph_builder.page_title.location.partners.export_value.country": "\u00bfA qu\u00e9 pa\u00edses exporta Colombia?", + "graph_builder.page_title.location.partners.export_value.department": "\u00bfA qu\u00e9 pa\u00edses exporta este departamento?", + "graph_builder.page_title.location.partners.export_value.msa": "\u00bfA qu\u00e9 pa\u00edses exporta esta ciudad?", + "graph_builder.page_title.location.partners.export_value.municipality": "\u00bfA qu\u00e9 pa\u00edses exporta este municipio?", + "graph_builder.page_title.location.partners.import_value.country": "\u00bfDe d\u00f3nde vienen las importaciones de Colombia?", + "graph_builder.page_title.location.partners.import_value.department": "\u00bfDe d\u00f3nde vienen las importaciones de este departamento?", + "graph_builder.page_title.location.partners.import_value.msa": "\u00bfDe d\u00f3nde vienen las importaciones de esta ciudad?", + "graph_builder.page_title.location.partners.import_value.municipality": "\u00bfDe d\u00f3nde vienen las importaciones de este municipio?", + "graph_builder.page_title.location.products.export_value.country": "\u00bfQu\u00e9 productos exporta Colombia?", + "graph_builder.page_title.location.products.export_value.department": "\u00bfQu\u00e9 productos exporta este departamento?", + "graph_builder.page_title.location.products.export_value.msa": "\u00bfQu\u00e9 productos exporta esta ciudad?", + "graph_builder.page_title.location.products.export_value.municipality": "\u00bfQu\u00e9 productos exporta este municipio?", + "graph_builder.page_title.location.products.import_value.country": "\u00bfQu\u00e9 productos importa Colombia?", + "graph_builder.page_title.location.products.import_value.department": "\u00bfQu\u00e9 productos importa este departamento?", + "graph_builder.page_title.location.products.import_value.msa": "\u00bfQu\u00e9 productos importa esta ciudad?", + "graph_builder.page_title.location.products.import_value.municipality": "\u00bfQu\u00e9 productos importa este municipio?", + "graph_builder.page_title.location.products.scatter.country": "\u00bfQu\u00e9 productos tienen el mayor potencial para Colombia?", + "graph_builder.page_title.location.products.scatter.department": "\u00bfQu\u00e9 productos tienen el mayor potencial para este departamento?", + "graph_builder.page_title.location.products.scatter.msa": "\u00bfQu\u00e9 productos tienen el mayor potencial para esta ciudad?", + "graph_builder.page_title.location.products.scatter.municipality": "\u00bfQu\u00e9 productos tienen el mayor potencial para este municipio?", + "graph_builder.page_title.location.products.similarity.country": "\u00bfC\u00f3mo es el mapa de los productos de Colombia?", + "graph_builder.page_title.location.products.similarity.department": "\u00bfC\u00f3mo es el mapa de los productos de este departamento?", + "graph_builder.page_title.location.products.similarity.msa": "\u00bfC\u00f3mo es el mapa de los productos de esta ciudad?", + "graph_builder.page_title.location.products.similarity.municipality": "\u00bfC\u00f3mo es el mapa de los productos de este municipio?", + "graph_builder.page_title.nonag.departments.num_farms": "\u00bfCu\u00e1ntas unidades productivas rurales (UPAs y UPNAs) por departamento tienen esta actividad no agropecuaria?", + "graph_builder.page_title.nonag.municipalities.num_farms": "\u00bfCu\u00e1ntas unidades productivas rurales (UPAs y UPNAs) por municipio tienen esta actividad no agropecuaria?", + "graph_builder.page_title.product.cities.export_value": "\u00bfQu\u00e9 ciudades en Colombia exportan este producto?", + "graph_builder.page_title.product.cities.import_value": "\u00bfQu\u00e9 ciudades en Colombia importan este producto?", + "graph_builder.page_title.product.departments.export_value": "\u00bfQu\u00e9 departamentos en Colombia exportan este producto?", + "graph_builder.page_title.product.departments.import_value": "\u00bfQu\u00e9 departamentos en Colombia importan este producto?", + "graph_builder.page_title.product.partners.export_value": "\u00bfA d\u00f3nde exporta Colombia este producto?", + "graph_builder.page_title.product.partners.export_value.destination": "\u00bfA qu\u00e9 pa\u00edses env\u00eda {{location}} sus exportaciones de {{product}}?", + "graph_builder.page_title.product.partners.import_value": "\u00bfDe d\u00f3nde importa Colombia este producto?", + "graph_builder.page_title.product.partners.import_value.origin": "\u00bfDe qu\u00e9 pa\u00edses recibe {{location}} sus importaciones de {{product}}?", + "graph_builder.questions.label": "Cambiar pregunta", + "graph_builder.recirc.header.industry": "Lea el perfil de este sector", + "graph_builder.recirc.header.location": "Lea el perfil de este lugar", + "graph_builder.recirc.header.product": "Lea el perfil de este producto", + "graph_builder.search.placeholder.agproducts": "Se\u00f1ale productos agropecuarios en el siguiente gr\u00e1fico", + "graph_builder.search.placeholder.cities": "Destaque una ciudad en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.departments": "Destaque un departamento en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.farmtypes": "Se\u00f1ale un tipo de unidad de producci\u00f3n rural en el siguiente gr\u00e1fico", + "graph_builder.search.placeholder.industries": "Destaque un sector en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.landUses": "Se\u00f1ale un uso de suelo en el siguiente gr\u00e1fico", + "graph_builder.search.placeholder.livestock": "Se\u00f1ale una especie pecuaria en el siguiente gr\u00e1fico", + "graph_builder.search.placeholder.locations": "Destaque un lugar en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.municipalities": "Se\u00f1ale una municipio en el siguiente gr\u00e1fico", + "graph_builder.search.placeholder.nonags": "Se\u00f1ale una actividad no agropecuaria en el siguiente gr\u00e1fico", + "graph_builder.search.placeholder.occupations": "Destaque una ocupaci\u00f3n en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.partners": "Resaltar socios comerciales en la gr\u00e1fica inferior", + "graph_builder.search.placeholder.products": "Destaque un producto en el gr\u00e1fico siguiente", + "graph_builder.search.submit": "Destacar", + "graph_builder.settings.change_time": "Cambiar per\u00edodo", + "graph_builder.settings.close_settings": "Archive y cierre", + "graph_builder.settings.label": "Cambiar caracter\u00edsticas", + "graph_builder.settings.rca": "Ventaja comparativa revelada", + "graph_builder.settings.rca.all": "Todo", + "graph_builder.settings.rca.greater": "> 1", + "graph_builder.settings.rca.less": "< 1", + "graph_builder.settings.to": "a", + "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year.next": "Siguiente", + "graph_builder.settings.year.previous": "Anterior", + "graph_builder.table.agproduct": "Producto Agr\u00edcola", + "graph_builder.table.area": "\u00c1rea (ha)", + "graph_builder.table.average_livestock_load": "", + "graph_builder.table.average_wages": "Salario mensual promedio, Col$ ", + "graph_builder.table.avg_wage": "Salario mensual promedio, Col$ ", + "graph_builder.table.code": "C\u00f3digo", + "graph_builder.table.cog": "Valor estrat\u00e9gico", + "graph_builder.table.coi": "Complejidad exportadora potencial", + "graph_builder.table.complexity": "Complejidad", + "graph_builder.table.country": "Pa\u00eds", + "graph_builder.table.department": "Departamento", + "graph_builder.table.distance": "Distancia", + "graph_builder.table.eci": "Complejidad exportadora", + "graph_builder.table.employment": "Empleo", + "graph_builder.table.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "graph_builder.table.export": "Exportaci\u00f3n", + "graph_builder.table.export_num_plants": "N\u00famero de empresas", + "graph_builder.table.export_rca": "Ventaja comparativa revelada", + "graph_builder.table.export_value": "Exportaciones, USD", + "graph_builder.table.farmtype": "Tipo de UPA", + "graph_builder.table.gdp_pc_real": "PIB per c\u00e1pita", + "graph_builder.table.gdp_real": "PIB", + "graph_builder.table.import_value": "Importaciones, USD", + "graph_builder.table.industry": "Sector", + "graph_builder.table.industry_coi": "Complejidad sectorial potencial", + "graph_builder.table.industry_eci": "Complejidad sectorial", + "graph_builder.table.land_harvested": "\u00c1rea cosechada (ha)", + "graph_builder.table.land_sown": "\u00c1rea sembrada (ha)", + "graph_builder.table.land_use": "Usos del suelo", + "graph_builder.table.less_than_5": "Menos de 5", + "graph_builder.table.livestock": "Especie", + "graph_builder.table.location": "Lugar", + "graph_builder.table.monthly_wages": "Salario mensual promedio, Col$", + "graph_builder.table.name": "Nombre", + "graph_builder.table.nonag": "Actividades no agropecuarias", + "graph_builder.table.num_establishments": "N\u00famero de empresas", + "graph_builder.table.num_farms": "N\u00famero de Unidades de Producci\u00f3n", + "graph_builder.table.num_farms_ag": "N\u00famero de UPAs", + "graph_builder.table.num_farms_nonag": "N\u00famero de UPNAs", + "graph_builder.table.num_livestock": "N\u00famero de animales", + "graph_builder.table.num_vacancies": "Vacantes", + "graph_builder.table.occupation": "Ocupaci\u00f3n", + "graph_builder.table.parent": "Grupo", + "graph_builder.table.parent.country": "Regi\u00f3n", + "graph_builder.table.parent.location": "Regi\u00f3n", + "graph_builder.table.population": "Poblaci\u00f3n", + "graph_builder.table.production_tons": "Producci\u00f3n (tons)", + "graph_builder.table.rca": "Ventaja comparativa revelada", + "graph_builder.table.read_more": "\u00bfNo entiende alguno de estos t\u00e9rminos? Consulte el", + "graph_builder.table.share": "Participaci\u00f3n", + "graph_builder.table.wages": "N\u00f3mina salarial total, Col$ (miles)", + "graph_builder.table.year": "A\u00f1o", + "graph_builder.table.yield_index": "\u00cdndice de Rendimiento de Cultivos", + "graph_builder.table.yield_ratio": "Rendimiento de Cultivos (tons/ha)", + "graph_builder.view_more": "Muestre m\u00e1s", + "header.agproduct": "Productos agr\u00edcolas", + "header.destination": "Destino", + "header.destination_by_products": "Destinos por productos", + "header.employment": "Empleo", + "header.export": "Exportaciones", + "header.farmtypes.area": "Tipos de UPAs", + "header.import": "Importaciones", + "header.index": "\u00cdndice", + "header.industry": "Sectores", + "header.industry_potential": "Potencial", + "header.industry_space": "Mapa de los sectores ", + "header.land-use": "Usos del suelo", + "header.landUse": "Usos del suelo", + "header.landUses.area": "Usos del suelo", + "header.land_harvested": "Terreno Cosechado", + "header.land_sown": "\u00c1rea sembrada (ha)", + "header.landuse": "Usos del suelo", + "header.livestock": "Especies Pecuarias", + "header.livestock.num_farms": "N\u00famero de UPAs", + "header.livestock.num_livestock": "N\u00famero de cabezas de ganado", + "header.livestock_num_farms": "N\u00famero de UPAs", + "header.livestock_num_livestock": "N\u00famero de cabezas de ganado", + "header.location": "Lugares", + "header.nonag": "Actividades no agropecuarias", + "header.occupation": "Ocupaciones", + "header.occupation.available_jobs": "Vacantes anunciadas", + "header.origin": "Origen", + "header.origin_by_products": "Origen por productos", + "header.overview": "Resumen", + "header.partner": "Socios comerciales", + "header.product": "Productos ", + "header.product_potential": "Potencial", + "header.product_space": "Mapa de los productos", + "header.production_tons": "Producci\u00f3n", + "header.region": "Por departamento", + "header.rural": "Preguntas: Actividades Rurales", + "header.subregion": "Por ciudad", + "header.subsubregion": "Por municipio", + "header.wage": "N\u00f3mina total", + "header.yield_ratio": "Productividad", + "index.builder_cta": "Explore las gr\u00e1ficas sobre el caf\u00e9", + "index.builder_head": "Luego vaya al graficador", + "index.builder_subhead": "Haga sus propios gr\u00e1ficos y mapas", + "index.complexity_caption": "\u00bfQu\u00e9 tan bueno es este enfoque? Las predicciones de crecimiento basadas en la complejidad son seis veces m\u00e1s preocsas que las basadas en variables convencionales, como los \u00cdndice de Competitividad Mundial. ", + "index.complexity_cta": "Lea m\u00e1s sobre los conceptos de complejidad", + "index.complexity_figure.WEF_name": "\u00cdndice de Competitividad Mundial", + "index.complexity_figure.complexity_name": "\u00cdndice de complejidad econ\u00f3mica", + "index.complexity_figure.head": "Crecimiento econ\u00f3mico explicado (% de la varianza decenal)", + "index.complexity_head": "La ventaja de la complejidad", + "index.complexity_subhead": "Los pa\u00edses que exportan productos complejos, que requieren una gran cantidad de conocimientos, crecen m\u00e1s r\u00e1pido que los que exportan materias primas. Usando los m\u00e9todos para medir y visualizar la complejidad desarrollados por la Universidad de Harvard, Datlas permite explorar las posibilidades productivas y de exportaci\u00f3n de los departamentos y ciudades colombianas.", + "index.country_profile": "Lea el perfil de Colombia", + "index.dropdown.industries": "461,488", + "index.dropdown.locations": "41,87,34,40", + "index.dropdown.products": "1143,87", + "index.farmandland_head": "Aprenda sobre Actividades Rurales", + "index.future_head": "Avizorando el futuro", + "index.future_subhead": "Los gr\u00e1ficos de dispersi\u00f3n y diagramas de redes permiten encontrar los sectores productivos que tienen las mejores posibilidades en un departamento o ciudad.", + "index.graphbuilder.id": "87", + "index.header_h1": "El Atlas Colombiano de Complejidad Econ\u00f3mica", + "index.header_head": "Colombia como usted nunca la ha visto", + "index.header_subhead": "Visualice las posibilidades de cualquier sector, cualquier producto de exportaci\u00f3n o cualquier lugar en Colombia.", + "index.industry_head": "Ent\u00e9rese de un sector", + "index.industry_q1": "\u00bfEn d\u00f3nde emplea m\u00e1s personas el sector qu\u00edmico de Colombia?", + "index.industry_q1.id": "461", + "index.industry_q2": "\u00bfQu\u00e9 ocupaciones demanda la sector qu\u00edmico?", + "index.industry_q2.id": "461", + "index.landuse_q1": "\u00bfCu\u00e1ntas hect\u00e1reas sembradas por cultivo hay en Colombia?", + "index.livestock_q1": "\u00bfCu\u00e1les y cu\u00e1ntas son las especies pecuarias en Colombia?", + "index.location_head": "Aprenda sobre un lugar", + "index.location_q1": "\u00bfQu\u00e9 sectores emplean m\u00e1s gente en Bogot\u00e1 Met?", + "index.location_q1.id": "41", + "index.location_q2": "\u00bfQu\u00e9 exportaciones tienen el mayor potencial en Bogot\u00e1 Met?", + "index.location_q2.id": "41", + "index.location_viewall": "Vea todas las preguntas", + "index.present_head": "Mapeando el presente", + "index.present_subhead": "Utilice nuestros diagramas, gr\u00e1ficos y mapas para descomponer las exportaciones, el empleo formal o las actividades rurales de su departamento, ciudad o municipio.", + "index.product_head": "Aprenda sobre un producto de exportaci\u00f3n", + "index.product_q1": "\u00bfQu\u00e9 lugares de Colombia exportan computadores?", + "index.product_q1.id": "1143", + "index.product_q2": "\u00bfQu\u00e9 lugares de Colombia importan computadores?", + "index.product_q2.id": "1143", + "index.profile.id": "1", + "index.profiles_cta": "Lea el perfil de Antioquia", + "index.profiles_head": "Comience por los perfiles", + "index.profiles_subhead": "S\u00f3lo lo esencial, en un resumen de una p\u00e1gina", + "index.questions_head": "No somos una bola de cristal, pero podemos responder muchas preguntas", + "index.questions_subhead": "index.questions_subhead", + "index.research_head": "Investigaci\u00f3n mencionada en", + "industry.show.avg_wages": "Salarios promedio ({{year}})", + "industry.show.employment": "Empleo ({{year}})", + "industry.show.employment_and_wages": "Empleo formal y salarios", + "industry.show.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "industry.show.industries": "Sectores", + "industry.show.industry_composition": "Composici\u00f3n del sector ({{year}})", + "industry.show.occupation": "Ocupaciones", + "industry.show.occupation_demand": "Ocupaciones m\u00e1s demandadas en este sector, {{year}}", + "industry.show.value": "Valor", + "last_year": "2014", + "location.model.country": "Colombia", + "location.model.department": "departamento", + "location.model.msa": "ciudad", + "location.model.municipality": "municipio", + "location.show.ag_farmsize": "Tama\u00f1o promedio de UPAs", + "location.show.all_departments": "Comparaci\u00f3n con otros departamentos", + "location.show.all_regions": "En comparaci\u00f3n con los otros lugares", + "location.show.average_livestock_load": "", + "location.show.bullet.gdp_grow_rate": "La tasa de crecimiento del PIB en el per\u00edodo {{yearRange}} fue {{gdpGrowth}}, comparada con 5,3% para toda Colombia.", + "location.show.bullet.gdp_pc": "El PIB per capita de {{name}} es {{lastGdpPerCapita}}, comparado con Col$15,1 millones para toda Colombia en 2014.", + "location.show.bullet.last_pop": "La poblaci\u00f3n es {{lastPop}} de personas, frente a 46,3 millones de personas en todo el pa\u00eds en 2014.", + "location.show.eci": "Complejidad exportadora", + "location.show.employment": "Empleo total ({{lastYear}})", + "location.show.employment_and_wages": "Empleo formal y salarios", + "location.show.export_possiblities": "Posibilidades de exportaci\u00f3n", + "location.show.export_possiblities.footer": "Los productos indicados pueden no ser viables debido a condiciones del lugar que no se consideran en el an\u00e1lisis de similitud tecnol\u00f3gica.", + "location.show.export_possiblities.intro": "Hemos encontrado que los pa\u00edses que exportan productos m\u00e1s complejos crecen m\u00e1s r\u00e1pido. Usando el \"mapa del producto\" presentado arriba, estamos destacando productos de alto potencial para {{name}}, ordenados por las mejores combinaciones de complejidad actual y valor estrat\u00e9gico.", + "location.show.exports": "Exportaciones ({{year}})", + "location.show.exports_and_imports": "Exportaciones e importaciones", + "location.show.gdp": "PIB", + "location.show.gdp_pc": "PIB per c\u00e1pita", + "location.show.growth_annual": "Tasa de crecimiento ({{yearRange}})", + "location.show.imports": "Importaciones ({{year}})", + "location.show.nonag_farmsize": "Tama\u00f1o promedio de UPNAs (ha)", + "location.show.overview": "Resumen", + "location.show.population": "Poblaci\u00f3n", + "location.show.subregion.exports": "Composici\u00f3n de exportaciones por municipio ({{year}})", + "location.show.subregion.imports": "Composici\u00f3n de importaciones por municipio ({{year}})", + "location.show.subregion.title": "Exportaciones e importaciones por municipio", + "location.show.total_wages": "N\u00f3mina salarial ({{lastYear}})", + "location.show.value": "Valor", + "location.show.yield_index": "\u00cdndice de Rendimiento de Cultivos", + "pageheader.about": "Acerca de Datlas", + "pageheader.alternative_title": "Atlas de complejidad econ\u00f3mica", + "pageheader.brand_slogan": "Colombia como usted nunca la ha visto", + "pageheader.download": "Acerca de los datos", + "pageheader.graph_builder_link": "Graficador", + "pageheader.profile_link": "Perfil", + "pageheader.rankings": "Rankings", + "pageheader.search_link": "Buscar", + "pageheader.search_placeholder": "Busque un lugar, sector, producto o actividad rural", + "pageheader.search_placeholder.industry": "Busque un sector", + "pageheader.search_placeholder.location": "Busque un lugar", + "pageheader.search_placeholder.product": "Busque un producto", + "pageheader.search_placeholder.rural": "Busque actividades rurales", + "rankings.explanation.body": "", + "rankings.explanation.title": "Explicaci\u00f3n", + "rankings.intro.p": "Comparaci\u00f3n entre departamentos o ciudades", + "rankings.pagetitle": "Rankings", + "rankings.section.cities": "Ciudades", + "rankings.section.departments": "Departamentos", + "rankings.table-title": "Posici\u00f3n", + "search.didnt_find": "\u00bfEncontr\u00f3 lo que buscaba? Nos interesa saber: Datlascolombia@bancoldex.com", + "search.header": "resultados", + "search.intro": "Busque el lugar, producto, sector u ocupaci\u00f3n que le interese", + "search.level.4digit": "Partida arancelaria (1992) a cuatro d\u00edgitos", + "search.level.class": "CIIU a cuatro d\u00edgitos", + "search.level.country": "Pa\u00eds", + "search.level.department": "Departamento", + "search.level.division": "CIIU a dos d\u00edgitos", + "search.level.level1": "", + "search.level.level2": "", + "search.level.level3": "", + "search.level.msa": "Ciudad", + "search.level.municipality": "Municipio", + "search.level.parent.4digit": "Partida arancelaria (1992) a dos d\u00edgitos", + "search.level.parent.class": "CIIU a dos d\u00edgitos", + "search.level.parent.country": "Regi\u00f3n", + "search.placeholder": "Escriba aqu\u00ed para buscar lo que quiere", + "search.results_agproducts": "Productos agr\u00edcolas", + "search.results_industries": "Sectores", + "search.results_landuses": "Usos de suelo", + "search.results_livestock": "Especies Pecuarias", + "search.results_locations": "Lugares", + "search.results_nonag": "Actividades no agropecuarias", + "search.results_products": "Productos", + "search.results_rural": "Actividades rurales", + "table.export_data": "Descargar Datos", + "thousands_delimiter": "." +}; \ No newline at end of file diff --git a/app/locales/es-col/translationsold.js b/app/locales/es-col/translationsold.js new file mode 100644 index 00000000..9c3865a5 --- /dev/null +++ b/app/locales/es-col/translationsold.js @@ -0,0 +1,568 @@ +export default { + "abbr_billion": "mm", + "abbr_million": "mill", + "abbr_thousand": "miles", + "abbr_trillion": "bill", + "about.downloads.explanation.p1": "Descarque el documento que explica c\u00f3mo se calcula cada una de las variables de complejidad que utiliza Datlas.", + "about.downloads.explanation.title": "M\u00e9todos de c\u00e1lculo de las variables de complejidad", + "about.downloads.locations": "Listas de departmentos, ciudades (incluyendo \u00e1reas metropolitanas) y municipios", + "about.glossary": "

V\u00e9ase la p\u00e1gina \"Acerca de los datos\" para m\u00e1s informaci\u00f3n sobre fuentes, m\u00e9todos de c\u00e1lculo de las variables de complejidad y bases de datos descargables.

\u00c1reas metropolitanas

Un \u00e1rea metropolitana es la combinaci\u00f3n de dos o m\u00e1s municipios que est\u00e1n conectados a trav\u00e9s de flujos relativamente grandes de trabajadores (con independencia de su tama\u00f1o o contig\u00fcidad). Un municipio debe enviar al menos un 10% de sus trabajadores como viajeros diarios al resto de los municipios del \u00e1rea metropolitana para considerarse como parte de dicha \u00e1rea.

Con base en esta definici\u00f3n hay 19 \u00e1reas metropolitanas en Colombia, que comprenden 115 municipios. Las \u00e1reas metropolitanas resultantes son distintas de las oficiales. Se sigue la metodolog\u00eda de G. Duranton ( 2013): \u201cDelineating metropolitan areas: Measuring spatial labour market networks through commuting patterns.\u201d Wharton School, University of Pennsylvania.

Ciudades

Son las \u00e1reas metropolitanas y los municipios de m\u00e1s de 50.000 habitantes con al menos 75% de poblaci\u00f3n en la cabecera municipal. En total hay 62 ciudades (19 \u00e1reas metropolitanas que comprenden 115 municipios, m\u00e1s 43 ciudades de un solo municipio). El concepto de ciudad es relevante porque Datlas presenta indicadores de complejidad por departamento y por ciudad, pero no por municipio.

Complejidad

Complejidad es la diversidad y sofisticaci\u00f3n del \"know-how\" que se requiere para producir algo. El concepto de complejidad es central en Datlas porque la productividad y el crecimiento de cualquier lugar dependen de que las empresas puedan producir y exportar con \u00e9xito bienes y servicios que requieren capacidades y conocimientos m\u00e1s complejos, es decir m\u00e1s diversos y exclusivos. La complejidad puede medirse para un lugar, para un producto de exportaci\u00f3n, o para un sector.

Complejidad potencial de un lugar

Mide el potencial de aumento de la complejidad de un lugar. Tiene en cuenta el nivel de complejidad de todos los sectores productivos (o productos de exportaci\u00f3n), junto con la \u201cdistancia\u201d a los dem\u00e1s sectores (o productos). Con esta informaci\u00f3n mide la probabilidad de que aparezcan nuevos sectores (o exportaciones) y qu\u00e9 tanto elevar\u00edan la complejidad del lugar. Valores m\u00e1s altos indican que es m\u00e1s probable desarrollar nuevos sectores (o productos) m\u00e1s complejos que los que ya se tienen.

La complejidad potencial basada en sectores se calcula para los departamentos y ciudades, no para los dem\u00e1s municipios. La complejidad potencial basada en las exportaciones se calcula solamente por departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

DANE

DANE es el Departamento Administrativo Nacional de Estad\u00edstica de Colombia, fuente de todos los datos sobre el PIB y la poblaci\u00f3n que utiliza Datlas.

DIAN

DIAN es la Direcci\u00f3n de Impuestos y Aduanas Nacionales, fuente de toda la informaci\u00f3n sobre exportaciones e importaciones de Datlas.

Distancia a un sector o exportaci\u00f3n en un lugar

La \u201cdistancia\u201d es una medida de la capacidad de un lugar para desarrollar un sector o una exportaci\u00f3n espec\u00edfica, teniendo en cuenta las capacidades productivas existentes. La \u201cdistancia\u201d es menor en la medida en que las capacidades requeridas por un sector o exportaci\u00f3n son m\u00e1s similares a las ya existentes. En esa medida ser\u00e1n mayores las posibilidades de que desarrolle con \u00e9xito el sector o exportaci\u00f3n. Visto de otra forma, la distancia refleja la proporci\u00f3n del conocimiento productivo que se necesita para que aparezca un sector o exportaci\u00f3n que a\u00fan no existe en el lugar.

Las distancias por sectores productivos se calculan solamente para los departamentos y ciudades, no para los dem\u00e1s municipios. Las distancias para las exportaciones se calculan solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

Diversidad

Es una medida de cu\u00e1ntos productos diferentes puede hacer un lugar. La producci\u00f3n de un bien cualquiera requiere un conjunto espec\u00edfico de capacidades; por consiguiente la diversidad es otra forma de expresar la cantidad de conocimiento productivo de un lugar.

Empleo, salarios y tasa de empleo formal

El empleo formal es aquel que est\u00e1 cubierto por el sistema de seguridad social en salud y/o por el sistema de pensiones. No incluye trabajadores independientes. El empleo formal reportado es el n\u00famero de empleados formales en un mes promedio. La tasa de formalidad es el empleo formal dividido por la poblaci\u00f3n mayor de 15 a\u00f1os. Los datos de empleo y salarios provienen de la PILA del Ministerio de Salud. Los datos de poblaci\u00f3n son del DANE.

Empresas, n\u00famero de

El conteo de empresas con actividad productiva por lugar (municipio, departamento, nacional) se hizo teniendo en cuenta todas aquellas empresas registradas en la PILA que hicieron alg\u00fan aporte a la seguridad social para sus empleados en el a\u00f1o de referencia (aunque no hayan estado en operaci\u00f3n todo el a\u00f1o).

El conteo de empresas exportadoras o importadoras se hizo por municipio y producto teniendo en cuenta cualquier empresa que seg\u00fan la DIAN hubiera realizado alguna operaci\u00f3n en el a\u00f1o de referencia (por consiguiente, el conteo de empresas exportadoras o importadoras de un producto por departamento o para todo el pa\u00eds puede tener duplicaciones).

\u00cdndice de Complejidad del Producto (ICP)

Ordena los productos de exportaci\u00f3n seg\u00fan qu\u00e9 tantas capacidades productivas se requieren para su fabricaci\u00f3n. Productos complejos de exportaci\u00f3n, tales como qu\u00edmicos y maquinaria, requieren un nivel sofisticado y diverso de conocimientos que s\u00f3lo se consigue con la interacci\u00f3n en empresas de muchos individuos con conocimientos especializados. Esto contrasta con las exportaciones de baja complejidad, como el caf\u00e9, que requieren apenas conocimientos productivos b\u00e1sicos que se pueden reunir en una empresa familiar. Para calcular la complejidad de los productos de exportaci\u00f3n se utilizan datos de Comtrade de las Naciones Unidas para cerca de 200 pa\u00edses.

\u00cdndice de Complejidad Econ\u00f3mica (ICE)

Una medida de la sofisticaci\u00f3n de las capacidades productivas de un lugar basada en la diversidad y la ubicuidad de sus sectores productivos o sus exportaciones. Un lugar con alta complejidad produce o exporta bienes y servicios que pocos otros lugares producen. Lugares altamente complejos tienden a ser m\u00e1s productivos y a generar mayores salarios e ingresos. Los pa\u00edses con canastas de exportaci\u00f3n m\u00e1s sofisticadas de lo que se espera para su nivel de ingresos (como China) tienden a crecer m\u00e1s r\u00e1pido que aquellos en los que es todo lo contrario (como Grecia).

El ICE basado en los sectores productivos (o \u00edndice de complejidad productiva) se calcula solamente para departamentos y ciudades, no para los dem\u00e1s municipios. La ICE basado en las exportaciones se calcula solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la estructura de las exportaciones es inestable y/o poco representativa).

\u00cdndice de Complejidad del Sector (ICS)

Es una medida de qu\u00e9 tantas capacidades productivas requieren un sector para operar. El ICS y el \u00cdndice de Complejidad del Producto (ICP) son medidas estrechamente relacionadas, pero se calculan en forma separada con datos y sistemas de clasificaci\u00f3n independientes, ya que la complejidad del producto se calcula solo para mercanc\u00edas comercializables internacionalmente, mientras que los sectores productivos comprenden todos los sectores que generan empleo, incluidos todos los servicios y el sector p\u00fablico. Un sector es complejo si requiere un nivel sofisticado de conocimientos productivos, como los servicios financieros y los sectores farmac\u00e9uticos, en donde trabajan en grandes empresas muchos individuos con conocimientos especializados distintos. La complejidad de un sector se mide calculando la diversidad promedio de los lugares donde existe el sector y la ubicuidad promedio de los sectores de esos lugares. Los datos de empleo formal necesarios para estos c\u00e1lculos provienen de la PILA del Ministerio de Salud.

Mapa de similitud tecnol\u00f3gica de productos de exportaci\u00f3n (o mapa de los productos)

Una visualizaci\u00f3n que muestra qu\u00e9 tan similares son los conocimientos requeridos para la exportaci\u00f3n de unos productos y otros. Cada punto representa un producto de exportaci\u00f3n y cada enlace entre un par de productos indica que requieren capacidades productivas similares. Aparecen con color los productos de exportaci\u00f3n que se exportan con ventaja comparativa revelada mayor que uno. Cuando se selecciona un producto, el gr\u00e1fico destaca los productos que requieren capacidades productivas semejantes. Un producto con m\u00e1s enlaces con otros que no se exportan ofrece mayor potencial para la diversificaci\u00f3n exportadora a trav\u00e9s de las capacidades compartidas. Y si esas capacidades son complejas, el producto tiene un alto potencial para elevar la complejidad del lugar.

El mapa de similitud de los productos se basa en los datos de comercio internacional de 192 pa\u00edses en m\u00e1s de 50 a\u00f1os compilados por Comtrade. Ver http://atlas.cid.harvard.edu/.

Mapa de similitud de los sectores productivos de Colombia

Una visualizaci\u00f3n que muestra qu\u00e9 tan similares son los conocimientos requeridos por unos sectores u otros. Cada punto representa un sector y cada enlace entre un par de sectores indica que requieren capacidades productivas similares. Aparecen con color los sectores con ventaja comparativa revelada mayor que uno. Cuando se selecciona un lugar, el gr\u00e1fico destaca los sectores que requieren capacidades productivas semejantes. Un sector con m\u00e1s enlaces con sectores que no existen ofrece mayor potencial para la diversificaci\u00f3n productiva a trav\u00e9s de las capacidades compartidas. Y si esas capacidades son complejas, el sector tiene un alto potencial para elevar la complejidad del lugar. El mapa de los sectores productivos de Colombia fue construido a partir de la informaci\u00f3n de empleo formal por municipio de la PILA del Ministerio de Salud.

Ocupaciones

Las ocupaciones se clasifican de acuerdo con el \u00cdndice Num\u00e9rico de la Red Ocupacional (ONET). Los datos sobre las ocupaciones (salarios ofrecidos, estructura ocupacional por sector y nivel educativo por ocupaci\u00f3n) provienen de los anuncios de vacantes de empleo colocados por las empresas en los sitios de empleo de Internet p\u00fablicos y privados. Los datos fueron procesados por Jeisson Arley Rubio C\u00e1rdenas (Universidad del Rosario, Bogot\u00e1) y Jaime Mauricio Monta\u00f1a Doncel (Escuela de Econom\u00eda de Par\u00eds).

PILA

PILA es la Planilla Integrada de Aportes Laborales del Ministerio de Salud. Es la fuente principal de los datos por sector. Contiene informaci\u00f3n de empleo formal, salarios y n\u00famero de empresas por municipio y sector.

Productos de exportaci\u00f3n e importaci\u00f3n: sistema de clasificaci\u00f3n

El sistema de clasificaci\u00f3n de los productos de exportaci\u00f3n e importaci\u00f3n de Datlas es la nomenclatura arancelaria NABANDINA, la cual calza a seis d\u00edgitos con la clasificaci\u00f3n internacional del Sistema Armonizado (SA). Datlas presenta informaci\u00f3n de productos (de exportaci\u00f3n e importaci\u00f3n) a dos y cuatro d\u00edgitos. Toda la informaci\u00f3n proviene de la DIAN.

Sectores productivos: sistema de clasificaci\u00f3n

La clasificaci\u00f3n sectorial de Colombia es una versi\u00f3n modificada de la Clasificaci\u00f3n Sectorial Internacional Uniforme de todas las Actividades Econ\u00f3micas (CIIU). Datlas presenta informaci\u00f3n sectorial a dos y cuatro d\u00edgitos. Toda la informaci\u00f3n proviene de la PILA. Siguiendo las convenciones de la contabilidad nacional, los trabajadores contratados por agencias de empleo temporal se clasifican en el sector de suministro de personal (7491), no en el sector de la empresa donde prestan servicios.

Ubicuidad

Una medida del n\u00famero de lugares que pueden producir un producto.

Valor estrat\u00e9gico de un sector o una exportaci\u00f3n para un lugar

Capta en qu\u00e9 medida un lugar podr\u00eda beneficiarse mediante el desarrollo de un sector en particular (o un producto de exportaci\u00f3n). Tambi\u00e9n conocida como \"ganancia de oportunidad\", esta medida representa la distancia a todos los otros sectores (o exportaciones) que un lugar no produce actualmente con ventaja comparativa revelada mayor que uno y su respectiva complejidad. Refleja c\u00f3mo un nuevo sector (o exportaci\u00f3n) puede abrir paso a otros sectores o productos m\u00e1s complejos. El valor estrat\u00e9gico de los sectores productivos se calcula solamente para departamentos y ciudades, no para los dem\u00e1s municipios. El valor estrat\u00e9gico de las exportaciones se calcula solamente para los departamentos y ciudades con exportaciones per c\u00e1pita mayores de 50 d\u00f3lares (por debajo de este umbral la composici\u00f3n de las exportaciones es inestable y/o poco representativa).

Ventaja Comparativa Revelada (VCR) de un sector o una exportaci\u00f3n en un lugar

Mide el tama\u00f1o relativo de un sector o un producto de exportaci\u00f3n en un lugar. La VCR, que no debe interpretarse como un indicador de eficiencia productiva o de competitividad, se conoce tambi\u00e9n por el nombre de \"cociente de localizaci\u00f3n\u201d. Se calcula como el cociente entre la participaci\u00f3n del empleo formal de un sector en el lugar y la participaci\u00f3n del empleo formal total del mismo sector en todo el pa\u00eds. Por ejemplo, si la industria qu\u00edmica en una ciudad genera el 10% del empleo, mientras que en todo el pa\u00eds genera el 1% del empleo, la VCR de la industria qu\u00edmica en dicha ciudad es 10. Para una exportaci\u00f3n es la relaci\u00f3n entre la participaci\u00f3n que tiene el producto en la canasta de exportaci\u00f3n del lugar y la participaci\u00f3n que tiene en el comercio mundial. Si esta relaci\u00f3n es mayor que 1, se dice que el lugar tiene ventaja comparativa revelada en el sector o en la exportaci\u00f3n. Por ejemplo, si el caf\u00e9 representa el 30% de las exportaciones de un departamento colombiano, pero da cuenta apenas del 0.3% del comercio mundial, entonces la VCR del departamento en caf\u00e9 es 100.

", + "about.glossary_name": "Glosario", + "about.project_description.cid.header": "El CID y el Laboratorio de Crecimiento ", + "about.project_description.cid.p1": "Este proyecto ha sido desarrollado por el Centro para el Desarrollo Internacional de la Universidad de Harvard (CID), bajo la direcci\u00f3n del profesor Ricardo Hausmann", + "about.project_description.cid.p2": "El CID tiene por objetivos avanzar en la comprensi\u00f3n de los desaf\u00edos del desarrollo y ofrecer soluciones viables para reducir la pobreza mundial. El Laboratorio de Crecimiento es uno de los principales programas de investigaci\u00f3n del CID.", + "about.project_description.contact.header": "Informaci\u00f3n de contacto", + "about.project_description.contact.link": "Datlascolombia@bancoldex.com", + "about.project_description.founder1.header": "Banc\u00f3ldex", + "about.project_description.founder1.p": "Banc\u00f3ldex, el banco de desarrollo empresarial de Colombia, est\u00e1 comprometido con el desarrollo de instrumentos financieros y no financieros orientados a mejorar la competitividad, la productividad, el crecimiento y la internacionalizaci\u00f3n de las empresas colombianas. Aprovechando su posici\u00f3n de mercado y su capacidad para establecer relaciones empresariales, Banc\u00f3ldex gestiona activos financieros, desarrolla soluciones de acceso a la financiaci\u00f3n y ofrece soluciones de capital innovadoras que fomentan y aceleran el crecimiento empresarial. Adem\u00e1s de ofrecer pr\u00e9stamos tradicionales, Banc\u00f3ldex ha sido designado para ejecutar varios programas de desarrollo tales como el Programa de Transformaci\u00f3n Productiva, iNNpulsa Colombia, iNNpulsa Mipyme y la Banca de las Oportunidades. Todos ellos conforman una oferta integrada de servicios para promover el entorno empresarial colombiano y la competitividad. Datlas es parte del Programa de Transformaci\u00f3n Productiva y la iniciativas INNpulsa Colombia.", + "about.project_description.founder2.header": "Fundaci\u00f3n Mario Santo Domingo", + "about.project_description.founder2.p": "Creada en 1953, la Fundaci\u00f3n Mario Santo Domingo (FMSD) es una organizaci\u00f3n sin fines de lucro dedicada a la implementaci\u00f3n de programas de desarrollo comunitario en Colombia. FMSD concentra sus principales esfuerzos en la construcci\u00f3n de viviendas asequibles dentro de un modelo de desarrollo comunitario llamado Desarrollo Integral de Comunidades Sustentables, dise\u00f1ado por el FMSD como respuesta al gran d\u00e9ficit de vivienda en Colombia. A trav\u00e9s de este programa, el FMSD proporciona apoyo social a las familias, as\u00ed como infraestructura social y urbana para los menos privilegiados. FMSD tambi\u00e9n contribuye al desarrollo empresarial de la regi\u00f3n Norte de Colombia y de Bogot\u00e1 a trav\u00e9s de su Unidad de Microfinanzas, que ofrece capacitaci\u00f3n y servicios financieros como el microcr\u00e9dito. M\u00e1s de 130.000 empresarios han recibido pr\u00e9stamos de la Fundaci\u00f3n desde su lanzamiento en 1984. FMSD tambi\u00e9n trabaja en identificar alianzas y sinergias entre los sectores p\u00fablico y privado en las \u00e1reas de desarrollo social cr\u00edticos, como la primera infancia, la sostenibilidad ambiental, la atenci\u00f3n de desastres, la educaci\u00f3n y la salud.", + "about.project_description.founders.header": "Entidades Patrocinadoras", + "about.project_description.founders.p": "Este proyecto es financiado por Banc\u00f3ldex y la Fundaci\u00f3n Mario Santo Domingo", + "about.project_description.github": "Revise nuestro c\u00f3digo", + "about.project_description.intro.p1": "En Colombia, las diferencias de ingresos entre regiones son enormes y han ido creciendo: las nuevas oportunidades de empleo se concentran cada vez m\u00e1s en las \u00e1reas metropolitanas de Bogot\u00e1, Medell\u00edn y Cali, aparte de los lugares donde se extraen petr\u00f3leo y otros minerales. El ingreso promedio de los residentes de Bogot\u00e1 es cuatro veces el de los colombianos que viven en los 12 departamentos m\u00e1s pobres.", + "about.project_description.intro.p2": "Datlas es una herramienta de diagn\u00f3stico para que las empresas, los inversionistas y las autoridades de gobierno puedan tomar decisiones que ayuden a elevar la productividad. Contiene informaci\u00f3n por departamento, \u00e1rea metropolitana y municipio sobre actividad productiva, empleo, salarios y exportaciones. Ofrece criterios para identificar los sectores y las exportaciones con potencial de crecimiento con base en la complejidad econ\u00f3mica.", + "about.project_description.intro.p3": "La complejidad econ\u00f3mica es una medida de las capacidades y conocimientos de los sectores productivos de un pa\u00eds o una ciudad. Para hacer una camisa, hay que dise\u00f1arla, producir la tela, cortar, coser, empacar el producto, comercializarlo y distribuirlo. Para que un pa\u00eds pueda producir camisas, necesita personas que tengan experiencia en cada una de estas \u00e1reas. Cada una de estas tareas implica muchas m\u00e1s capacidades de las que cualquier persona sola puede dominar. S\u00f3lo mediante la combinaci\u00f3n de know-how de diferentes personas puede hacerse el producto. El camino hacia el desarrollo econ\u00f3mico consiste en aprender a hacer cosas m\u00e1s sofisticadas. El juego de Scrabble puede servir de analog\u00eda: el jugador que tiene un mayor n\u00famero de letras variadas puede hacer m\u00e1s palabras y conseguir m\u00e1s puntos. Los pa\u00edses con una mayor diversidad de capacidades productivas pueden hacer una mayor diversidad de productos. El desarrollo econ\u00f3mico ocurre en la medida en que el pa\u00eds o la ciudad adquiere m\u00e1s capacidades y conocimientos para producir productos cada vez m\u00e1s complejos.", + "about.project_description.intro.p4": "Este enfoque conceptual que ha sido aplicado a nivel internacional en el Atlas de la Complejidad Econ\u00f3mica se utiliza ahora en esta herramienta en l\u00ednea para identificar las posibilidades de exportaci\u00f3n y de desarrollo sectorial de los departamentos, las \u00e1reas metropolitanas y las ciudades colombianas.", + "about.project_description.letter.header": "Bolet\u00edn de Estudios del CID", + "about.project_description.letter.p": "Inscr\u00edbase al Bolet\u00edn de Estudios del CID para mantenerse al d\u00eda con los avances de la investigaci\u00f3n y las herramientas pr\u00e1cticas en temas relacionados con la complejidad.", + "about.project_description.team.header": "El equipo acad\u00e9mico y t\u00e9cnico", + "about.project_description.team.p": "El equipo acad\u00e9mico de CID de Harvard: Ricardo Hausmann (director), Eduardo Lora (coordinador), Tim Cheston, Andr\u00e9s G\u00f3mez-Li\u00e9vano, Jos\u00e9 Ram\u00f3n Morales, Neave O\u2019Clery y Juan T\u00e9llez. El equipo de programaci\u00f3n y visualizaci\u00f3n de CID de Harvard: Greg Shapiro (coordinador), Mali Akmanalp, Katy Harris, Quinn Lee, Romain Vuillemot y Gus Wezerek. Asesor estad\u00edstico de Colombia: Marcela Eslava (Universidad de los Andes). Recopilaci\u00f3n y procesamiento de los datos de ofertas de empleo de Colombia: Jeisson Arley C\u00e1rdenas Rubio (Universidad del Rosario, Bogot\u00e1) y Jaime Mauricio Monta\u00f1a Doncel (Paris School of Economics).", + "about.project_description_name": "Acerca de Datlas", + "census_year": "2014", + "country.show.ag_farmsize": "", + "country.show.dotplot-column": "Departamentos de Colombia", + "country.show.eci": "0,037", + "country.show.economic_structure": "Estructura econ\u00f3mica", + "country.show.economic_structure.copy.p1": "Con una poblaci\u00f3n de 48,1 millones (a mayo 2015), Colombia es el tercer pa\u00eds m\u00e1s grande de Am\u00e9rica Latina. Su PIB total en 2014 fue Col $756,1 billones, o US$377,9 miles de millones a la tasa de cambio promedio de 2014 (1 US d\u00f3lar = 2000,6 pesos colombianos). En 2014, se alcanz\u00f3 un nivel de ingreso per c\u00e1pita de Col $15.864.953 o US$7.930. La tasa de crecimiento desde 2008 ha sido en promedio 4.3% (o 3.1% por persona). ", + "country.show.economic_structure.copy.p2": "Los servicios empresariales y financieros son el sector m\u00e1s grande, con una contribuci\u00f3n al PIB de 18,8%, seguidos por los servicios de gobierno, sociales y personales (16,5%) y las actividades manufactureras (11,2%). Bogot\u00e1 D.C., Antioquia y el Valle del Cauca concentran aproximadamente la mitad de la actividad productiva, con participaciones en el PIB de 24,7, 13,1 y 9,2%, respectivamente. Sin embargo, los departamentos con m\u00e1s alto PIB per c\u00e1pita son Casanare y Meta, ambos importantes productores de petr\u00f3leo. Los gr\u00e1ficos siguientes presentan m\u00e1s detalles.", + "country.show.employment_wage_occupation": "Empleo formal, ocupaciones y salarios", + "country.show.employment_wage_occupation.copy.p1": "En 2014, aproximadamente 21,6 millones de personas fueron ocupadas en empleos formales o informales, con un leve aumento respecto al a\u00f1o anterior (21,1 millones). Los registros de la PILA, que cubren el universo de los trabajadores que hacen contribuciones al sistema de seguridad social, indican que 13,3 millones de personas estuvieron ocupadas en alg\u00fan momento en empleos formales en 2013. Teniendo en cuenta el n\u00famero de meses empleados, el n\u00famero efectivo de trabajadores-a\u00f1o en el sector formal en 2013 fue 6,7 millones. Bogot\u00e1 DC, Antioquia y el Valle del Cauca generan, respectivamente 32,7, 16,7, and 10,7% del empleo formal (efectivo).", + "country.show.employment_wage_occupation.copy.p2": "Los siguientes gr\u00e1ficos ofrecen informaci\u00f3n m\u00e1s detallada de los patrones de empleo formal y los salarios pagados seg\u00fan los registros de PILA. Tambi\u00e9n se incluye informaci\u00f3n de vacantes anunciadas y salarios ofrecidos por ocupaci\u00f3n, calculados a partir de los anuncios colocados por empresas en sitios de Internet durante 2014.", + "country.show.export_complexity_possibilities": "Complejidad de las exportaciones y posibilidades de exportaci\u00f3n", + "country.show.export_complexity_possibilities.copy.p1": "El concepto de complejidad de las exportaciones es an\u00e1logo al de complejidad de los sectores sectorial presentado arriba, pero referido ahora a las exportaciones. Se mide mediante el \u00cdndice de Complejidad del Producto. Se ha comprobado que los pa\u00edses que exportan productos que son relativamente complejos con respecto a su nivel de desarrollo tienden a crecer m\u00e1s r\u00e1pido que los pa\u00edses que exportan bienes relativamente simples. Seg\u00fan la complejidad de su canasta exportadora en 2013, Colombia ocupa el puesto 53 entre 124 pa\u00edses. La tasa de crecimiento proyectada para Colombia con base en su complejidad y su nivel de desarrollo es 3,3% por a\u00f1o en el per\u00edodo 2013-2023.", + "country.show.export_complexity_possibilities.copy.p2": "El \"mapa de similitud tecnol\u00f3gica de los productos de exportaci\u00f3n\" (o mapa de los productos) que se presenta enseguida es una representaci\u00f3n gr\u00e1fica de la similitud tecnol\u00f3gica entre todos los productos de exportaci\u00f3n, seg\u00fan los patrones de exportaci\u00f3n de todos los pa\u00edses. Cada punto o nodo representa un producto; los nodos conectados entre s\u00ed requieren capacidades productivas semejantes. Los productos que est\u00e1n m\u00e1s conectados tienden a agruparse en el centro de la red, lo cual implica que las capacidades que ellos usan pueden ser utilizadas en la producci\u00f3n de muchos otros productos.", + "country.show.export_complexity_possibilities.copy.p3": "Los puntos que aparecen destacados representan productos que Colombia exporta en cantidades relativamente importantes (m\u00e1s exactamente, con ventaja comparativa revelada mayor de uno, v\u00e9ase el Glosario). Los colores representan grupos de productos (son los mismos colores usados para los sectores correspondientes en el mapa de similitud tecnol\u00f3gica presentado arriba). El gr\u00e1fico que aparece m\u00e1s abajo, junto con el cuadro que lo acompa\u00f1a, indica qu\u00e9 productos ofrecen las mejores posibilidades para Colombia, dadas las capacidades productivas que ya tiene el pa\u00eds y que tan \u2018distantes\u2019 son esas capacidades de las que requieren para exportar otras cosas. ", + "country.show.exports": "Exportaciones", + "country.show.exports.copy.p1": "Colombia export\u00f3 US$54,8 miles de millones en 2014, comparado con $58,8 miles de millones en 2013 y $60,1 miles de millones en 2012. Sus principales destinos de exportaci\u00f3n son los Estados Unidos, Venezuela, Ecuador y Per\u00fa. En 2014, los productos mineros (entre los cuales, petr\u00f3leo, carb\u00f3n y ferron\u00edquel son los m\u00e1s importantes) representaron 59,3% de las exportaciones totales de bienes; los productos manufacturados 35,6%, y los productos agr\u00edcolas 4,6%. Los siguientes gr\u00e1ficos presentan m\u00e1s detalles.", + "country.show.exports_composition_by_department": "Composici\u00f3n de las exportaciones por departamento ({{year}})", + "country.show.exports_composition_by_products": "Composici\u00f3n de las exportaciones ({{year}})", + "country.show.gdp": "Col $756,152 bill", + "country.show.gdp_per_capita": "Col $15.864.953", + "country.show.industry_complex": "Complejidad de los sectores productivos", + "country.show.industry_complex.copy.p1": "La complejidad de los sectores productivos, que se cuantifica mediante el \u00cdndice de Complejidad del Sector, es una media de la amplitud de las capacidades y habilidades \u2013know-how\u2013 que se requiere en un sector productivo. Se dice que sectores tales como qu\u00edmicos o maquinaria son altamente complejos porque requieren un nivel sofisticado de conocimientos productivos que solo es factible encontrar en grandes empresas donde interact\u00faa un n\u00famero de individuos altamente capacitados. En contraste, sectores como el comercio minorista o restaurantes requieren solo niveles b\u00e1sicos de capacitaci\u00f3n que pueden encontrarse incluso en una peque\u00f1a empresa familiar. Los sectores m\u00e1s complejos son m\u00e1s productivos y contribuyen m\u00e1s a elevar el ingreso per c\u00e1pita. Los departamentos y ciudades con sectores m\u00e1s complejos tienen una base productiva m\u00e1s diversificada y tienden a crear m\u00e1s empleo formal.", + "country.show.industry_complex.copy.p2": "El \"mapa de similitud tecnol\u00f3gica de los sectores\" (o mapa de los sectores) que se presenta enseguida es una representaci\u00f3n gr\u00e1fica de la similitud de las capacidades y habilidades entre pares de sectores. Cada punto (o nodo) representa un sector; los nodos conectados por l\u00edneas requieren capacidades semejantes. Los sectores con m\u00e1s conexiones usan capacidades que pueden ser utilizadas en muchos otros sectores. Los colores representan grupos de sectores.", + "country.show.industry_space": "Mapa de los sectores", + "country.show.nonag_farmsize": "", + "country.show.occupation.num_vac": "Vacantes anunciadas (2014)", + "country.show.population": "48,1 millones", + "country.show.product_space": "Mapa de los productos", + "country.show.total": "Totales", + "ctas.csv": "CSV", + "ctas.download": "Descargue estos datos", + "ctas.embed": "Insertar", + "ctas.excel": "Excel", + "ctas.export": "Exportar", + "ctas.facebook": "Facebook", + "ctas.pdf": "PDF", + "ctas.png": "PNG", + "ctas.share": "Compartir", + "ctas.twitter": "Twitter", + "currency": "Col$", + "decimal_delmiter": ",", + "downloads.cta_download": "Descargar", + "downloads.cta_na": "No disponible", + "downloads.head": "Acerca de los datos", + "downloads.industry_copy": "La Planilla Integrada de Aportes Laborales, PILA, del Ministerio de Salud, es la fuente principal de los datos por sector. Contiene informaci\u00f3n de empleo formal, salarios y n\u00famero de empresas por municipio y sector. La clasificaci\u00f3n sectorial de Colombia es una versi\u00f3n modificada de la Clasificaci\u00f3n Sectorial Internacional Uniforme de todas las Actividades Econ\u00f3micas (CIIU). La lista de los sectores productivos puede verse en las bases de datos descargables de sectores. Puede descargarse aqu\u00ed un archivo con la lista de los sectores productivos del CIIU los cu\u00e1les no aparecen representados en el mapa de los sectores (por razones que se explican en los M\u00e9todos de C\u00e1lculo).", + "downloads.industry_head": "Datos de sectores productivos (PILA)", + "downloads.industry_row_1": "Empleo, salarios, n\u00famero de empresas e indicadores de complejidad productiva ({{yearRange}})", + "downloads.list_of_cities.header": "Listas de departamentos, ciudades y municipios", + "downloads.map.cell": "Datos del mapa", + "downloads.map.header": "Mapa", + "downloads.occupations_copy": "Todos los datos sobre las ocupaciones (salarios ofrecidos por ocupaci\u00f3n y sector, y estructura ocupacional por sector) provienen de los anuncios de vacantes de empleo colocados por las empresas en los sitios de empleo de Internet p\u00fablicos y privados. Las ocupaciones se clasifican de acuerdo con el \u00cdndice Num\u00e9rico de la Red Ocupacional (ONET). Los datos fueron procesados \u200b\u200bpor Jeisson Arley Rubio C\u00e1rdenas, investigador de la Universidad del Rosario, Bogot\u00e1, y Jaime Mauricio Monta\u00f1a Doncel, estudiante de maestr\u00eda en la Escuela de Econom\u00eda de Par\u00eds.", + "downloads.occupations_head": "Datos de ocupaciones", + "downloads.occupations_row_1": "Vacantes laborales y salarios ofrecidos (2014)", + "downloads.other_copy": "El Departamento Administrativo Nacional de Estad\u00edstica, DANE, es la fuente de todos los datos sobre el PIB y la poblaci\u00f3n.", + "downloads.other_head": "Otros datos (DANE)", + "downloads.other_row_1": "PIB y variables demogr\u00e1ficas", + "downloads.thead_departments": "Departamentos", + "downloads.thead_met": "Ciudades", + "downloads.thead_muni": "Municipios", + "downloads.thead_national": "Nacional", + "downloads.trade_copy": "La fuente de todos los datos sobre las exportaciones e importaciones por departamento y municipio es la Direcci\u00f3n de Impuestos y Aduanas Nacionales, DIAN. Colombia utiliza la nomenclatura arancelaria NANDINA, la cual calza a los seis d\u00edgitos con el Sistema Armonizado (SA) de clasificaci\u00f3n internacional de productos. Eso lo estandarizamos despu\u00e9s a SA (HS) 1992 para resolver cualquier inconsistencia entre las versiones a trav\u00e9s de los a\u00f1os, de manera tal que los datos se puedan visualizar en el tiempo. La lista de partidas arancelarias puede verse en las bases de datos descargables de exportaci\u00f3n e importaci\u00f3n.

El origen de las exportaciones se establece en dos etapas. Primero, se define el departamento de origen como es el \u00faltimo lugar donde tuvieron alg\u00fan procesamiento, ensamblaje o empaque, seg\u00fan la DIAN. Luego, se distribuyen los valores entre municipios seg\u00fan la composici\u00f3n del empleo de la firma correspondiente con base en la PILA (para las firmas sin esta informaci\u00f3n se asign\u00f3 el valor total a la capital del departamento). En el caso de las exportaciones de petr\u00f3leo (2709) y gas (2711), los valores totales se distribuyeron por origen seg\u00fan la producci\u00f3n por municipios (Agencia Nacional de Hidrocarburos y Asociaci\u00f3n Colombiana de Petr\u00f3leo) y en el caso de las exportaciones de refinados de petr\u00f3leo (2710) seg\u00fan el valor agregado por municipio (sectores 2231, 2322 y 2320 CIIU revisi\u00f3n 3, Encuesta Anual Manufacturera, DANE).

Los totales de exportaci\u00f3n por partida arancelaria pueden no corresponder a los datos oficiales porque quedan excluidas: (a) las exportaciones sin informaci\u00f3n sobre el sector del exportador y/o el departamento o municipio de origen, y (b) las exportaciones que en los datos de la DIAN tienen como destino las zonas francas; mientras que quedan incluidas: (c) las exportaciones de las zonas francas, que la DIAN no incluye en dichos totales.

De forma semejante, los totales de importaci\u00f3n por partida arancelaria pueden no corresponder a los datos oficiales porque quedan excluidas: (a) las importaciones sin informaci\u00f3n sobre el departamento o municipio de destino, y (b) las importaciones que en los datos de la DIAN tienen como origen las zonas francas; mientras que quedan incluidas: (c) las importaciones realizadas por las zonas francas, que la DIAN no incluye en dichos totales.

El archivo que describe la correspondencia entre la versi\u00f3n del Sistema Armonizado (HS) utilizado por la DIAN y su revisi\u00f3n de 1992 puede encontrarse aqu\u00ed.

Tambi\u00e9n puede descargarse aqu\u00ed un archivo con la lista de los productos del Sistema Armonizado los cu\u00e1les no aparecen representados en el mapa del producto (por razones que se explican en los M\u00e9todos de C\u00e1lculo).", + "downloads.trade_head": "Datos de exportaciones e importaciones (DIAN)", + "downloads.trade_row_1": "Exportaciones, importaciones e indicadores de complejidad ({{yearRange}})", + "downloads.trade_row_2": "Exportaciones e importaciones con origen y destino ({{yearRange}})", + "first_year": "2008", + "general.export_and_import": "Productos", + "general.geo": "Mapa geogr\u00e1fico", + "general.glossary": "Glosario", + "general.industries": "Sectores", + "general.industry": "sector", + "general.location": "lugar", + "general.locations": "Lugares", + "general.multiples": "Gr\u00e1ficos de \u00e1reas", + "general.occupation": "ocupaci\u00f3n", + "general.occupations": "Ocupaciones", + "general.product": "producto", + "general.scatter": "Gr\u00e1fico de dispersi\u00f3n", + "general.similarity": "mapa de los sectores", + "general.total": "Totales", + "general.treemap": "Gr\u00e1fico de composici\u00f3n", + "geomap.center": "4.6,-74.06", + "glossary.head": "Glosario", + "graph_builder.builder_mod_header.agproduct.departments.land_harvested": "", + "graph_builder.builder_mod_header.agproduct.departments.land_sown": "", + "graph_builder.builder_mod_header.agproduct.departments.production_tons": "", + "graph_builder.builder_mod_header.agproduct.municipalities.land_harvested": "", + "graph_builder.builder_mod_header.agproduct.municipalities.land_sown": "", + "graph_builder.builder_mod_header.agproduct.municipalities.production_tons": "", + "graph_builder.builder_mod_header.industry.cities.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.cities.wage_avg": "Salarios mensuales promedio, Col$", + "graph_builder.builder_mod_header.industry.cities.wages": "N\u00f3mina salarial, Col$", + "graph_builder.builder_mod_header.industry.departments.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.departments.wage_avg": "Salarios mensuales promedio, Col$", + "graph_builder.builder_mod_header.industry.departments.wages": "N\u00f3mina salarial, Col$", + "graph_builder.builder_mod_header.industry.locations.employment": "Empleo total", + "graph_builder.builder_mod_header.industry.locations.wage_avg": "Salarios mensuales promedio, Col$", + "graph_builder.builder_mod_header.industry.locations.wages": "N\u00f3mina salarial, Col$", + "graph_builder.builder_mod_header.industry.occupations.num_vacancies": "Total de vacantes", + "graph_builder.builder_mod_header.landUse.departments.area": "", + "graph_builder.builder_mod_header.landUse.municipalities.area": "", + "graph_builder.builder_mod_header.location.agproducts.land_harvested": "", + "graph_builder.builder_mod_header.location.agproducts.land_sown": "", + "graph_builder.builder_mod_header.location.agproducts.production_tons": "", + "graph_builder.builder_mod_header.location.farmtypes.num_farms": "", + "graph_builder.builder_mod_header.location.industries.employment": "Empleo total", + "graph_builder.builder_mod_header.location.industries.scatter": "Complejidad, distancia y valor estrat\u00e9gico de sectores potenciales ", + "graph_builder.builder_mod_header.location.industries.similarity": "Sectores con ventaja comparativa revelada >1 (con color) y <1 (gris)", + "graph_builder.builder_mod_header.location.industries.wages": "Salarios totales", + "graph_builder.builder_mod_header.location.landUses.area": "", + "graph_builder.builder_mod_header.location.livestock.num_farms": "", + "graph_builder.builder_mod_header.location.livestock.num_livestock": "", + "graph_builder.builder_mod_header.location.partners.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.location.partners.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.location.products.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.location.products.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.location.products.scatter": "Complejidad, distancia y valor estrat\u00e9gico de exportaciones potenciales", + "graph_builder.builder_mod_header.location.products.similarity": "Exportaciones con ventaja comparativa revelada >1 (con color) y <1 (gris)", + "graph_builder.builder_mod_header.product.cities.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.cities.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.product.departments.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.departments.import_value": "Importaciones totales", + "graph_builder.builder_mod_header.product.partners.export_value": "Exportaciones totales", + "graph_builder.builder_mod_header.product.partners.import_value": "Importaciones totales", + "graph_builder.builder_nav.header": "M\u00e1s gr\u00e1ficos para este {{entity}}", + "graph_builder.builder_nav.intro": "Seleccione una pregunta para ver el gr\u00e1fico correspondiente. Si en la pregunta faltan par\u00e1metros ({{icon}}), los podr\u00e1 llenar cuando haga click.", + "graph_builder.builder_questions.city": "Preguntas: ciudades", + "graph_builder.builder_questions.department": "Preguntas: departamentos", + "graph_builder.builder_questions.employment": "Preguntas: empleo", + "graph_builder.builder_questions.export": "Preguntas: exportaciones", + "graph_builder.builder_questions.import": "Preguntas: importaciones", + "graph_builder.builder_questions.industry": "Preguntas: sectores", + "graph_builder.builder_questions.landUse": "", + "graph_builder.builder_questions.location": "Preguntas: lugares", + "graph_builder.builder_questions.occupation": "Preguntas: ocupaciones", + "graph_builder.builder_questions.partner": "Preguntas: socios comerciales", + "graph_builder.builder_questions.product": "Preguntas: productos de exportaci\u00f3n", + "graph_builder.builder_questions.wage": "Preguntas: n\u00f3mina salarial", + "graph_builder.change_graph.geo_description": "Mapea los datos", + "graph_builder.change_graph.label": "Cambie el gr\u00e1fico", + "graph_builder.change_graph.multiples_description": "Muestra el crecimiento en varios per\u00edodos", + "graph_builder.change_graph.scatter_description": "Muestra la complejidad y la distancia", + "graph_builder.change_graph.similarity_description": "Presenta las ventajas comparativas reveladas", + "graph_builder.change_graph.treemap_description": "Muestra la descomposici\u00f3n en varios niveles", + "graph_builder.change_graph.unavailable": "Este gr\u00e1fico no est\u00e1 disponible para esta pregunta", + "graph_builder.download.agproduct": "", + "graph_builder.download.area": "", + "graph_builder.download.average_wages": "Salario mensual promedio, Col$ ", + "graph_builder.download.avg_wage": "Salario mensual promedio, Col$ ", + "graph_builder.download.code": "C\u00f3digo", + "graph_builder.download.cog": "Valor estrat\u00e9gico", + "graph_builder.download.complexity": "Complejidad", + "graph_builder.download.distance": "Distancia", + "graph_builder.download.eci": "Complejidad exportadora", + "graph_builder.download.employment": "Empleo", + "graph_builder.download.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "graph_builder.download.export": "Exportaci\u00f3n", + "graph_builder.download.export_num_plants": "N\u00famero de empresas", + "graph_builder.download.export_rca": "Ventaja comparativa revelada", + "graph_builder.download.export_value": "Exportaciones, USD", + "graph_builder.download.farmtype": "", + "graph_builder.download.gdp_pc_real": "PIB per c\u00e1pita, Col $", + "graph_builder.download.gdp_real": "PIB, Col $", + "graph_builder.download.import_value": "Importaciones, USD", + "graph_builder.download.industry": "Sector", + "graph_builder.download.industry_eci": "Complejidad sectorial", + "graph_builder.download.land_harvested": "", + "graph_builder.download.land_sown": "", + "graph_builder.download.land_use": "", + "graph_builder.download.less_than_5": "Menos de 5", + "graph_builder.download.livestock": "", + "graph_builder.download.location": "Lugar", + "graph_builder.download.monthly_wages": "Salario mensual promedio, Col$", + "graph_builder.download.name": "Nombre", + "graph_builder.download.num_establishments": "N\u00famero de empresas", + "graph_builder.download.num_farms": "", + "graph_builder.download.num_livestock": "", + "graph_builder.download.num_vacancies": "Vacantes", + "graph_builder.download.occupation": "Ocupaci\u00f3n", + "graph_builder.download.parent": "Grupo", + "graph_builder.download.population": "Poblaci\u00f3n", + "graph_builder.download.production_tons": "", + "graph_builder.download.rca": "Ventaja comparativa revelada", + "graph_builder.download.read_more": "\u00bfNo entiende alguno de estos t\u00e9rminos? Consulte el", + "graph_builder.download.wages": "N\u00f3mina salarial total, Col$ ", + "graph_builder.download.year": "A\u00f1o", + "graph_builder.download.yield_index": "", + "graph_builder.download.yield_ratio": "", + "graph_builder.explanation": "Explicaci\u00f3n", + "graph_builder.explanation.agproduct.departments.land_harvested": "", + "graph_builder.explanation.agproduct.departments.land_sown": "", + "graph_builder.explanation.agproduct.departments.production_tons": "", + "graph_builder.explanation.agproduct.municipalities.land_harvested": "", + "graph_builder.explanation.agproduct.municipalities.land_sown": "", + "graph_builder.explanation.agproduct.municipalities.production_tons": "", + "graph_builder.explanation.hide": "Oculte", + "graph_builder.explanation.industry.cities.employment": "Muestra la composici\u00f3n por departamentos del empleo formal del sector. Fuente: PILA.", + "graph_builder.explanation.industry.cities.wages": "Muestra la composici\u00f3n por departamentos de la n\u00f3mina salarial del sector. Fuente: PILA.", + "graph_builder.explanation.industry.departments.employment": "Muestra la composici\u00f3n por departamentos del empleo formal del sector. Fuente: PILA.", + "graph_builder.explanation.industry.departments.wages": "Muestra la composici\u00f3n por departamentos de la n\u00f3mina salarial del sector. Fuente: PILA.", + "graph_builder.explanation.industry.occupations.num_vacancies": "Muestra la composici\u00f3n de las vacantes anunciadas en sitios de Internet y los salarios ofrecidos.", + "graph_builder.explanation.landUse.departments.area": "", + "graph_builder.explanation.landUse.municipalities.area": "", + "graph_builder.explanation.location.agproducts.land_harvested": "", + "graph_builder.explanation.location.agproducts.land_sown": "", + "graph_builder.explanation.location.agproducts.production_tons": "", + "graph_builder.explanation.location.farmtypes.num_farms": "", + "graph_builder.explanation.location.industries.employment": "Muestra la composici\u00f3n sectorial del empleo formal del departamento. Fuente: PILA.", + "graph_builder.explanation.location.industries.scatter": "Cada punto representa un sector productivo. Cuando se selecciona un punto aparece el nombre y la ventaja comparativa revelada del lugar en ese sector. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en la tabla que sigue). El eje vertical es el \u00edndice de complejidad sectorial y el eje horizontal es la distancia tecnol\u00f3gica para que el sector se desarrolle, dadas las capacidades que ya existen en el lugar. El tama\u00f1o de los puntos es proporcional al valor estrat\u00e9gico del sector para el lugar, es decir qu\u00e9 tanto puede contribuir el sector al aumento del \u00edndice de complejidad del lugar a trav\u00e9s de nuevas capacidades productivas que pueden ser \u00fatiles en otros sectores. Los sectores m\u00e1s atractivos son los ubicados arriba y a la izquierda, especialmente si los puntos que los representan son grandes. Fuente: c\u00e1lculos del CID con datos de PILA. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los t\u00e9rminos).", + "graph_builder.explanation.location.industries.similarity": "El mapa de similitud tecnol\u00f3gica de los sectores (o mapa de los sectores) muestra qu\u00e9 tan similares son los conocimientos requeridos por unos sectores y otros. Cada punto representa un sector productivo y cada enlace entre un par de sectores indica que requieren capacidades productivas similares. Los puntos coloreados son sectores con ventaja comparativa revelada (VCR) mayor que uno en el departamento o ciudad. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en el cuadro que sigue). Cuando se selecciona un punto aparece su nombre, su VCR y sus enlaces a otros sectores. Fuente: c\u00e1lculos del CID con datos de PILA. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los t\u00e9rminos).", + "graph_builder.explanation.location.industries.wages": "Muestra la composici\u00f3n sectorial de la n\u00f3mina salarial del departamento o ciudad. Fuente: PILA.", + "graph_builder.explanation.location.landUses.area": "", + "graph_builder.explanation.location.livestock.num_farms": "", + "graph_builder.explanation.location.livestock.num_livestock": "", + "graph_builder.explanation.location.partners.export_value": "Muestra la composici\u00f3n de las exportaciones de este lugar por pa\u00eds de destino, agrupados por regiones del mundo. Fuente: DIAN.", + "graph_builder.explanation.location.partners.import_value": "Muestra la composici\u00f3n de las importaciones de este lugar por pa\u00eds de origen, agrupados por regiones del mundo. Fuente: DIAN.", + "graph_builder.explanation.location.products.export_value": "Muestra la composici\u00f3n de las exportaciones del departamento o ciudad. Los colores representan grupos de productos (v\u00e9ase el cuadro). Fuente: DIAN.", + "graph_builder.explanation.location.products.import_value": "Muestra la composici\u00f3n de las importaciones del departamento o ciudad. Los colores representan grupos de productos (v\u00e9ase el cuadro). Fuente: DIAN.", + "graph_builder.explanation.location.products.scatter": "Cada punto representa un producto de exportaci\u00f3n. Cuando se selecciona un punto aparece el nombre y la ventaja comparativa revelada del departamento o ciudad en ese producto. Los colores de los puntos representan grupos de sectores (v\u00e9ase el c\u00f3digo de colores en la tabla que sigue). El eje vertical es el \u00edndice de complejidad del producto y el eje horizontal es la distancia tecnol\u00f3gica para poder exportar un producto, dadas las capacidades que ya existen en el lugar. La l\u00ednea discontinua es el \u00edndice de complejidad sectorial promedio del lugar. El tama\u00f1o de los puntos es proporcional al valor estrat\u00e9gico del producto para el departamento o ciudad, es decir qu\u00e9 tanto puede contribuir el producto al aumento del \u00edndice de complejidad del lugar a trav\u00e9s de nuevas capacidades productivas que pueden ser \u00fatiles para otras exportaciones. Las exportaciones m\u00e1s atractivas de desarrollar son las ubicadas arriba y a la izquierda, especialmente si los puntos que las representan son grandes. Fuente: c\u00e1lculos del CID con datos de la DIAN. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los conceptos).", + "graph_builder.explanation.location.products.similarity": "El mapa de similitud tecnol\u00f3gica de los productos (o mapa de los productos) muestra que tan similares son los conocimientos requeridos por unos productos y otros. Cada punto representa un producto de exportaci\u00f3n y cada enlace entre un par de productos indica que requieren capacidades productivas similares. Los puntos coloreados son exportaciones con ventaja comparativa revelada (VCR) mayor que uno en el departamento o ciudad. Los colores de los puntos representan grupos de productos (v\u00e9ase el cuadro). Cuando se selecciona un punto aparece su nombre, su VCR y sus enlaces a otros productos. Fuente: c\u00e1lculos del CID con datos de DIAN. (En el glosario se encuentran explicaciones m\u00e1s detalladas de los conceptos).", + "graph_builder.explanation.product.cities.export_value": "Muestra la composici\u00f3n por ciudades de las exportaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.cities.import_value": "Muestra la composici\u00f3n por ciudades de las importaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.departments.export_value": "Muestra la composici\u00f3n por departamentos de las exportaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.departments.import_value": "Muestra la composici\u00f3n por departamentos de las importaciones de este producto. Fuente: DIAN.", + "graph_builder.explanation.product.partners.export_value": "Muestra el destino de las exportaciones de este producto, por pa\u00eds y regi\u00f3n del mundo. Fuente: DIAN.", + "graph_builder.explanation.product.partners.import_value": "Muestra el origen de las importaciones de este producto, por pa\u00eds y regi\u00f3n del mundo. Fuente: DIAN.", + "graph_builder.explanation.show": "Muestre m\u00e1s", + "graph_builder.multiples.show_all": "Mostrar todo", + "graph_builder.page_title.agproduct.departments.land_harvested": "", + "graph_builder.page_title.agproduct.departments.land_sown": "", + "graph_builder.page_title.agproduct.departments.production_tons": "", + "graph_builder.page_title.agproduct.municipalities.land_harvested": "", + "graph_builder.page_title.agproduct.municipalities.land_sown": "", + "graph_builder.page_title.agproduct.municipalities.production_tons": "", + "graph_builder.page_title.industry.cities.employment": "\u00bfQu\u00e9 ciudades en Colombia ocupan m\u00e1s gente en este sector?", + "graph_builder.page_title.industry.cities.wages": "\u00bfQu\u00e9 ciudades en Colombia tienen las mayores n\u00f3minas salariales en este sector?", + "graph_builder.page_title.industry.departments.employment": "\u00bfQu\u00e9 departamentos en Colombia ocupan m\u00e1s gente en este sector?", + "graph_builder.page_title.industry.departments.wages": "\u00bfQu\u00e9 departamentos en Colombia tienen las mayores n\u00f3minas salariales en este sector?", + "graph_builder.page_title.industry.occupations.num_vacancies": "\u00bfQu\u00e9 ocupaciones demanda este sector?", + "graph_builder.page_title.landUse.departments.area": "", + "graph_builder.page_title.landUse.municipalities.area": "", + "graph_builder.page_title.location.agproducts.land_harvested.country": "", + "graph_builder.page_title.location.agproducts.land_harvested.department": "", + "graph_builder.page_title.location.agproducts.land_harvested.municipality": "", + "graph_builder.page_title.location.agproducts.land_sown.country": "", + "graph_builder.page_title.location.agproducts.land_sown.department": "", + "graph_builder.page_title.location.agproducts.land_sown.municipality": "", + "graph_builder.page_title.location.agproducts.production_tons.country": "", + "graph_builder.page_title.location.agproducts.production_tons.department": "", + "graph_builder.page_title.location.agproducts.production_tons.municipality": "", + "graph_builder.page_title.location.destination_by_product.export_value.department": "\u00bfA qu\u00e9 pa\u00edses env\u00eda este departamento sus exportaciones de petr\u00f3leo?", + "graph_builder.page_title.location.destination_by_product.import_value.department": "\u00bfDe qu\u00e9 pa\u00edses recibe este departamento sus importaciones de veh\u00edculos?", + "graph_builder.page_title.location.farmtypes.num_farms.country": "", + "graph_builder.page_title.location.farmtypes.num_farms.department": "", + "graph_builder.page_title.location.farmtypes.num_farms.municipality": "", + "graph_builder.page_title.location.industries.employment.country": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en Colombia?", + "graph_builder.page_title.location.industries.employment.department": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en este departamento?", + "graph_builder.page_title.location.industries.employment.msa": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en esta ciudad?", + "graph_builder.page_title.location.industries.employment.municipality": "\u00bfQu\u00e9 sectores generan m\u00e1s empleo en este municipio?", + "graph_builder.page_title.location.industries.scatter.country": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en Colombia?", + "graph_builder.page_title.location.industries.scatter.department": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en este departamento?", + "graph_builder.page_title.location.industries.scatter.msa": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en esta ciudad?", + "graph_builder.page_title.location.industries.scatter.municipality": "\u00bfQu\u00e9 sectores relativamente complejos podr\u00edan desarrollarse m\u00e1s en este municipio?", + "graph_builder.page_title.location.industries.similarity.country": "\u00bfC\u00f3mo es el mapa de los sectores de Colombia?", + "graph_builder.page_title.location.industries.similarity.department": "\u00bfC\u00f3mo es el mapa de los sectores de este departamento?", + "graph_builder.page_title.location.industries.similarity.msa": "\u00bfC\u00f3mo es el mapa de los sectores de esta ciudad?", + "graph_builder.page_title.location.industries.similarity.municipality": "\u00bfC\u00f3mo es el mapa de los sectores de este municipio?", + "graph_builder.page_title.location.industries.wages.country": "\u00bfQu\u00e9 sectores en Colombia tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.department": "\u00bfQu\u00e9 sectores en este departamento tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.msa": "\u00bfQu\u00e9 sectores en esta ciudad tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.industries.wages.municipality": "\u00bfQu\u00e9 sectores en este municipio tienen las mayores n\u00f3minas salariales?", + "graph_builder.page_title.location.landUses.area.country": "", + "graph_builder.page_title.location.landUses.area.department": "", + "graph_builder.page_title.location.landUses.area.municipality": "", + "graph_builder.page_title.location.livestock.num_farms.country": "", + "graph_builder.page_title.location.livestock.num_farms.department": "", + "graph_builder.page_title.location.livestock.num_farms.municipality": "", + "graph_builder.page_title.location.livestock.num_livestock.country": "", + "graph_builder.page_title.location.livestock.num_livestock.department": "", + "graph_builder.page_title.location.livestock.num_livestock.municipality": "", + "graph_builder.page_title.location.partners.export_value.country": "\u00bfA qu\u00e9 pa\u00edses exporta Colombia?", + "graph_builder.page_title.location.partners.export_value.department": "\u00bfA qu\u00e9 pa\u00edses exporta este departamento?", + "graph_builder.page_title.location.partners.export_value.msa": "\u00bfA qu\u00e9 pa\u00edses exporta esta ciudad?", + "graph_builder.page_title.location.partners.export_value.municipality": "\u00bfA qu\u00e9 pa\u00edses exporta este municipio?", + "graph_builder.page_title.location.partners.import_value.country": "\u00bfDe d\u00f3nde vienen las importaciones de Colombia?", + "graph_builder.page_title.location.partners.import_value.department": "\u00bfDe d\u00f3nde vienen las importaciones de este departamento?", + "graph_builder.page_title.location.partners.import_value.msa": "\u00bfDe d\u00f3nde vienen las importaciones de esta ciudad?", + "graph_builder.page_title.location.partners.import_value.municipality": "\u00bfDe d\u00f3nde vienen las importaciones de este municipio?", + "graph_builder.page_title.location.products.export_value.country": "\u00bfQu\u00e9 productos exporta Colombia?", + "graph_builder.page_title.location.products.export_value.department": "\u00bfQu\u00e9 productos exporta este departamento?", + "graph_builder.page_title.location.products.export_value.msa": "\u00bfQu\u00e9 productos exporta esta ciudad?", + "graph_builder.page_title.location.products.export_value.municipality": "\u00bfQu\u00e9 productos exporta este municipio?", + "graph_builder.page_title.location.products.import_value.country": "\u00bfQu\u00e9 productos importa Colombia?", + "graph_builder.page_title.location.products.import_value.department": "\u00bfQu\u00e9 productos importa este departamento?", + "graph_builder.page_title.location.products.import_value.msa": "\u00bfQu\u00e9 productos importa esta ciudad?", + "graph_builder.page_title.location.products.import_value.municipality": "\u00bfQu\u00e9 productos importa este municipio?", + "graph_builder.page_title.location.products.scatter.country": "\u00bfQu\u00e9 productos tienen el mayor potencial para Colombia?", + "graph_builder.page_title.location.products.scatter.department": "\u00bfQu\u00e9 productos tienen el mayor potencial para este departamento?", + "graph_builder.page_title.location.products.scatter.msa": "\u00bfQu\u00e9 productos tienen el mayor potencial para esta ciudad?", + "graph_builder.page_title.location.products.scatter.municipality": "\u00bfQu\u00e9 productos tienen el mayor potencial para este municipio?", + "graph_builder.page_title.location.products.similarity.country": "\u00bfC\u00f3mo es el mapa de los productos de Colombia?", + "graph_builder.page_title.location.products.similarity.department": "\u00bfC\u00f3mo es el mapa de los productos de este departamento?", + "graph_builder.page_title.location.products.similarity.msa": "\u00bfC\u00f3mo es el mapa de los productos de esta ciudad?", + "graph_builder.page_title.location.products.similarity.municipality": "\u00bfC\u00f3mo es el mapa de los productos de este municipio?", + "graph_builder.page_title.product.cities.export_value": "\u00bfQu\u00e9 ciudades en Colombia exportan este producto?", + "graph_builder.page_title.product.cities.import_value": "\u00bfQu\u00e9 ciudades en Colombia importan este producto?", + "graph_builder.page_title.product.departments.export_value": "\u00bfQu\u00e9 departamentos en Colombia exportan este producto?", + "graph_builder.page_title.product.departments.import_value": "\u00bfQu\u00e9 departamentos en Colombia importan este producto?", + "graph_builder.page_title.product.partners.export_value": "\u00bfA d\u00f3nde exporta Colombia este producto?", + "graph_builder.page_title.product.partners.export_value.destination": "\u00bfA qu\u00e9 pa\u00edses env\u00eda {{location}} sus exportaciones de {{product}}?", + "graph_builder.page_title.product.partners.import_value": "\u00bfDe d\u00f3nde importa Colombia este producto?", + "graph_builder.page_title.product.partners.import_value.origin": "\u00bfDe qu\u00e9 pa\u00edses recibe {{location}} sus importaciones de {{product}}?", + "graph_builder.questions.label": "Cambiar pregunta", + "graph_builder.recirc.header.industry": "Lea el perfil de este sector", + "graph_builder.recirc.header.location": "Lea el perfil de este lugar", + "graph_builder.recirc.header.product": "Lea el perfil de este producto", + "graph_builder.search.placeholder.agproducts": "", + "graph_builder.search.placeholder.cities": "Destaque una ciudad en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.departments": "Destaque un departamento en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.farmtypes": "", + "graph_builder.search.placeholder.industries": "Destaque un sector en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.landUses": "", + "graph_builder.search.placeholder.livestock": "", + "graph_builder.search.placeholder.locations": "Destaque un lugar en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.municipalities": "", + "graph_builder.search.placeholder.occupations": "Destaque una ocupaci\u00f3n en el gr\u00e1fico siguiente", + "graph_builder.search.placeholder.partners": "Resaltar socios comerciales en la gr\u00e1fica inferior", + "graph_builder.search.placeholder.products": "Destaque un producto en el gr\u00e1fico siguiente", + "graph_builder.search.submit": "Destacar", + "graph_builder.settings.change_time": "Cambiar per\u00edodo", + "graph_builder.settings.close_settings": "Archive y cierre", + "graph_builder.settings.label": "Cambiar caracter\u00edsticas", + "graph_builder.settings.rca": "Ventaja comparativa revelada", + "graph_builder.settings.rca.all": "Todo", + "graph_builder.settings.rca.greater": "> 1", + "graph_builder.settings.rca.less": "< 1", + "graph_builder.settings.to": "a", + "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year.next": "Siguiente", + "graph_builder.settings.year.previous": "Anterior", + "graph_builder.table.agproduct": "", + "graph_builder.table.area": "", + "graph_builder.table.average_wages": "Salario mensual promedio, Col$ ", + "graph_builder.table.avg_wage": "Salario mensual promedio, Col$ ", + "graph_builder.table.code": "C\u00f3digo", + "graph_builder.table.cog": "Valor estrat\u00e9gico", + "graph_builder.table.coi": "Complejidad exportadora potencial", + "graph_builder.table.complexity": "Complejidad", + "graph_builder.table.country": "Pa\u00eds", + "graph_builder.table.distance": "Distancia", + "graph_builder.table.eci": "Complejidad exportadora", + "graph_builder.table.employment": "Empleo", + "graph_builder.table.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "graph_builder.table.export": "Exportaci\u00f3n", + "graph_builder.table.export_num_plants": "N\u00famero de empresas", + "graph_builder.table.export_rca": "Ventaja comparativa revelada", + "graph_builder.table.export_value": "Exportaciones, USD", + "graph_builder.table.farmtype": "", + "graph_builder.table.gdp_pc_real": "PIB per c\u00e1pita", + "graph_builder.table.gdp_real": "PIB", + "graph_builder.table.import_value": "Importaciones, USD", + "graph_builder.table.industry": "Sector", + "graph_builder.table.industry_coi": "Complejidad sectorial potencial", + "graph_builder.table.industry_eci": "Complejidad sectorial", + "graph_builder.table.land_harvested": "", + "graph_builder.table.land_sown": "", + "graph_builder.table.land_use": "", + "graph_builder.table.less_than_5": "Menos de 5", + "graph_builder.table.livestock": "", + "graph_builder.table.location": "Lugar", + "graph_builder.table.monthly_wages": "Salario mensual promedio, Col$", + "graph_builder.table.name": "Nombre", + "graph_builder.table.num_establishments": "N\u00famero de empresas", + "graph_builder.table.num_farms": "", + "graph_builder.table.num_livestock": "", + "graph_builder.table.num_vacancies": "Vacantes", + "graph_builder.table.occupation": "Ocupaci\u00f3n", + "graph_builder.table.parent": "Grupo", + "graph_builder.table.parent.country": "Regi\u00f3n", + "graph_builder.table.population": "Poblaci\u00f3n", + "graph_builder.table.production_tons": "", + "graph_builder.table.rca": "Ventaja comparativa revelada", + "graph_builder.table.read_more": "\u00bfNo entiende alguno de estos t\u00e9rminos? Consulte el", + "graph_builder.table.share": "Participaci\u00f3n", + "graph_builder.table.wages": "N\u00f3mina salarial total, Col$ (miles)", + "graph_builder.table.year": "A\u00f1o", + "graph_builder.table.yield_index": "", + "graph_builder.table.yield_ratio": "", + "graph_builder.view_more": "Muestre m\u00e1s", + "header.destination": "Destino", + "header.destination_by_products": "Destinos por productos", + "header.employment": "Empleo", + "header.export": "Exportaciones", + "header.import": "Importaciones", + "header.industry": "Sectores", + "header.industry_potential": "Potencial", + "header.industry_space": "Mapa de los sectores ", + "header.landUse": "", + "header.land_harvested": "", + "header.land_sown": "", + "header.occupation": "Ocupaciones", + "header.occupation.available_jobs": "Vacantes anunciadas", + "header.origin": "Origen", + "header.origin_by_products": "Origen por productos", + "header.overview": "Resumen", + "header.partner": "Socios comerciales", + "header.product": "Productos ", + "header.product_potential": "Potencial", + "header.product_space": "Mapa de los productos", + "header.production_tons": "", + "header.region": "Por departamento", + "header.subregion": "Por ciudad", + "header.subsubregion": "", + "header.wage": "N\u00f3mina total", + "index.builder_cta": "Explore las gr\u00e1ficas sobre el caf\u00e9", + "index.builder_head": "Luego vaya al graficador", + "index.builder_subhead": "Haga sus propios gr\u00e1ficos y mapas", + "index.complexity_caption": "\u00bfQu\u00e9 tan bueno es este enfoque? Las predicciones de crecimiento basadas en la complejidad son seis veces m\u00e1s preocsas que las basadas en variables convencionales, como los \u00cdndice de Competitividad Mundial. ", + "index.complexity_cta": "Lea m\u00e1s sobre los conceptos de complejidad", + "index.complexity_figure.WEF_name": "\u00cdndice de Competitividad Mundial", + "index.complexity_figure.complexity_name": "\u00cdndice de complejidad econ\u00f3mica", + "index.complexity_figure.head": "Crecimiento econ\u00f3mico explicado (% de la varianza decenal)", + "index.complexity_head": "La ventaja de la complejidad", + "index.complexity_subhead": "Los pa\u00edses que exportan productos complejos, que requieren una gran cantidad de conocimientos, crecen m\u00e1s r\u00e1pido que los que exportan materias primas. Usando los m\u00e9todos para medir y visualizar la complejidad desarrollados por la Universidad de Harvard, Datlas permite explorar las posibilidades productivas y de exportaci\u00f3n de los departamentos y ciudades colombianas.", + "index.country_profile": "Lea el perfil de Colombia", + "index.dropdown.industries": "461,488", + "index.dropdown.locations": "41,87,34,40", + "index.dropdown.products": "1143,87", + "index.future_head": "Avizorando el futuro", + "index.future_subhead": "Los gr\u00e1ficos de dispersi\u00f3n y diagramas de redes permiten encontrar los sectores productivos que tienen las mejores posibilidades en un departamento o ciudad.", + "index.graphbuilder.id": "87", + "index.header_h1": "El Atlas Colombiano de Complejidad Econ\u00f3mica", + "index.header_head": "Colombia como usted nunca la ha visto", + "index.header_subhead": "Visualice las posibilidades de cualquier sector, cualquier producto de exportaci\u00f3n o cualquier lugar en Colombia.", + "index.industry_head": "Ent\u00e9rese de un sector", + "index.industry_q1": "\u00bfD\u00f3nde emplea m\u00e1s gente la industria qu\u00edmica en Colombia?", + "index.industry_q1.id": "461", + "index.industry_q2": "\u00bfQu\u00e9 ocupaciones demanda la industria qu\u00edmica?", + "index.industry_q2.id": "461", + "index.location_head": "Aprenda sobre un lugar", + "index.location_q1": "\u00bfQu\u00e9 sectores emplean m\u00e1s gente en Bogot\u00e1 Met?", + "index.location_q1.id": "41", + "index.location_q2": "\u00bfQu\u00e9 exportaciones tienen el mayor potencial en Bogot\u00e1 Met?", + "index.location_q2.id": "41", + "index.location_viewall": "Vea todas las preguntas", + "index.present_head": "Mapeando el presente", + "index.present_subhead": "Utilice nuestros diagramas de composici\u00f3n para estudiar las exportaciones o el empleo formal de su departamento, su ciudad o su municipio.", + "index.product_head": "Aprenda sobre un producto de exportaci\u00f3n", + "index.product_q1": "\u00bfQu\u00e9 lugares de Colombia exportan computadores?", + "index.product_q1.id": "1143", + "index.product_q2": "\u00bfQu\u00e9 lugares de Colombia importan computadores?", + "index.product_q2.id": "1143", + "index.profile.id": "1", + "index.profiles_cta": "Lea el perfil de Antioquia", + "index.profiles_head": "Comience por los perfiles", + "index.profiles_subhead": "S\u00f3lo lo esencial, en un resumen de una p\u00e1gina", + "index.questions_head": "No somos una bola de cristal, pero podemos responder muchas preguntas", + "index.questions_subhead": "index.questions_subhead", + "index.research_head": "Investigaci\u00f3n mencionada en", + "industry.show.avg_wages": "Salarios promedio ({{year}})", + "industry.show.employment": "Empleo ({{year}})", + "industry.show.employment_and_wages": "Empleo formal y salarios", + "industry.show.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", + "industry.show.industries": "Sectores", + "industry.show.industry_composition": "Composici\u00f3n del sector ({{year}})", + "industry.show.occupation": "Ocupaciones", + "industry.show.occupation_demand": "Ocupaciones m\u00e1s demandadas en este sector, 2014", + "industry.show.value": "Valor", + "last_year": "2014", + "location.model.country": "Colombia", + "location.model.department": "departamento", + "location.model.msa": "ciudad", + "location.model.municipality": "municipio", + "location.show.ag_farmsize": "", + "location.show.all_departments": "Comparaci\u00f3n con otros departamentos", + "location.show.all_regions": "En comparaci\u00f3n con los otros lugares", + "location.show.bullet.gdp_grow_rate": "La tasa de crecimiento del PIB en el per\u00edodo {{yearRange}} fue {{gdpGrowth}}, comparada con 5,3% para toda Colombia.", + "location.show.bullet.gdp_pc": "El PIB per capita de {{name}} es {{lastGdpPerCapita}}, comparado con Col$15,1 millones para toda Colombia en 2014.", + "location.show.bullet.last_pop": "La poblaci\u00f3n es {{lastPop}} de personas, frente a 46,3 millones de personas en todo el pa\u00eds en 2014.", + "location.show.eci": "Complejidad exportadora", + "location.show.employment": "Empleo total ({{lastYear}})", + "location.show.employment_and_wages": "Empleo formal y salarios", + "location.show.export_possiblities": "Posibilidades de exportaci\u00f3n", + "location.show.export_possiblities.footer": "Los productos indicados pueden no ser viables debido a condiciones del lugar que no se consideran en el an\u00e1lisis de similitud tecnol\u00f3gica.", + "location.show.export_possiblities.intro": "Hemos encontrado que los pa\u00edses que exportan productos m\u00e1s complejos crecen m\u00e1s r\u00e1pido. Usando el \"mapa del producto\" presentado arriba, estamos destacando productos de alto potencial para {{name}}, ordenados por las mejores combinaciones de complejidad actual y valor estrat\u00e9gico.", + "location.show.exports": "Exportaciones ({{year}})", + "location.show.exports_and_imports": "Exportaciones e importaciones", + "location.show.gdp": "PIB", + "location.show.gdp_pc": "PIB per c\u00e1pita", + "location.show.growth_annual": "Tasa de crecimiento ({{yearRange}})", + "location.show.imports": "Importaciones ({{year}})", + "location.show.nonag_farmsize": "", + "location.show.overview": "", + "location.show.population": "Poblaci\u00f3n", + "location.show.subregion.exports": "Composici\u00f3n de exportaciones por municipio ({{year}})", + "location.show.subregion.imports": "Composici\u00f3n de importaciones por municipio ({{year}})", + "location.show.subregion.title": "Exportaciones e importaciones por municipio", + "location.show.total_wages": "N\u00f3mina salarial ({{lastYear}})", + "location.show.value": "Valor", + "pageheader.about": "Acerca de Datlas", + "pageheader.alternative_title": "Atlas de complejidad econ\u00f3mica", + "pageheader.brand_slogan": "Colombia como usted nunca la ha visto", + "pageheader.download": "Acerca de los datos", + "pageheader.graph_builder_link": "Graficador", + "pageheader.profile_link": "Perfil", + "pageheader.rankings": "Rankings", + "pageheader.search_link": "Buscar", + "pageheader.search_placeholder": "Busque un lugar, producto o sector", + "pageheader.search_placeholder.industry": "Busque un sector", + "pageheader.search_placeholder.location": "Busque un lugar", + "pageheader.search_placeholder.product": "Busque un producto", + "rankings.explanation.body": "", + "rankings.explanation.title": "Explicaci\u00f3n", + "rankings.intro.p": "Comparaci\u00f3n entre departamentos o ciudades", + "rankings.pagetitle": "Rankings", + "rankings.section.cities": "Ciudades", + "rankings.section.departments": "Departamentos", + "rankings.table-title": "Posici\u00f3n", + "search.didnt_find": "\u00bfEncontr\u00f3 lo que buscaba? Nos interesa saber: Datlascolombia@bancoldex.com", + "search.header": "resultados", + "search.intro": "Busque el lugar, producto, sector u ocupaci\u00f3n que le interese", + "search.level.4digit": "Partida arancelaria (1992) a cuatro d\u00edgitos", + "search.level.class": "CIIU a cuatro d\u00edgitos", + "search.level.country": "Pa\u00eds", + "search.level.department": "Departamento", + "search.level.division": "CIIU a dos d\u00edgitos", + "search.level.msa": "Ciudad", + "search.level.municipality": "Municipio", + "search.level.parent.4digit": "Partida arancelaria (1992) a dos d\u00edgitos", + "search.level.parent.class": "CIIU a dos d\u00edgitos", + "search.level.parent.country": "Regi\u00f3n", + "search.placeholder": "Escriba aqu\u00ed para buscar lo que quiere", + "search.results_industries": "Sectores", + "search.results_locations": "Lugares", + "search.results_products": "Productos", + "table.export_data": "Descargar Datos", + "thousands_delimiter": "." +}; \ No newline at end of file diff --git a/app/styles/components/_components/_button.scss b/app/styles/components/_components/_button.scss index f6546b8a..5b136487 100755 --- a/app/styles/components/_components/_button.scss +++ b/app/styles/components/_components/_button.scss @@ -53,12 +53,13 @@ button::-moz-focus-inner { } .btn--search { - background: $colorRed; + background: none; color: $colorWhite; - box-shadow: inset 0 -5px $colorRedDark; + border: solid 1px $colorWhite; width: 10rem; &:hover { - background: $colorRedDark; + color: $colorWhite; + opacity: 0.8; } } diff --git a/app/styles/components/_components/_search.scss b/app/styles/components/_components/_search.scss index 0b3c930f..a40205d9 100755 --- a/app/styles/components/_components/_search.scss +++ b/app/styles/components/_components/_search.scss @@ -6,7 +6,7 @@ .search__wrap { display: inline-block; - width: 60%; + width: 100%; position: relative; .btn--search, .btn--buildermod { @@ -32,6 +32,7 @@ width: 100%; height: 100%; font-family: $sans; + border: solid 1px $colorWhite; &:active, &:focus { outline: 0; diff --git a/app/styles/components/_components/_typography.scss b/app/styles/components/_components/_typography.scss index db571215..daf53bd5 100755 --- a/app/styles/components/_components/_typography.scss +++ b/app/styles/components/_components/_typography.scss @@ -9,13 +9,13 @@ body { font-size: $fontBase; font-weight: 500; color: $colorGrayDark; - font-family: $serif; + font-family: $sans; } h1, h2, h3, h4, h5, p { margin: 0; padding: 0; - color: $colorBlack; + color: $colorWhite; } @@ -37,4 +37,4 @@ li > p { .fontSerif { font-family: $serif; font-style: normal !important; } .fontSansAlt { font-family: $sansAlt; font-style: normal !important; } .fontSansSC { font-family: $sansSC; text-transform: lowercase; font-style: normal !important; } -.fontSerifSC { font-family: $serifSC; text-transform: lowercase; font-style: normal !important; } \ No newline at end of file +.fontSerifSC { font-family: $serifSC; text-transform: lowercase; font-style: normal !important; } diff --git a/app/styles/components/_font-face.scss b/app/styles/components/_font-face.scss index 1f99f897..128afac0 100755 --- a/app/styles/components/_font-face.scss +++ b/app/styles/components/_font-face.scss @@ -14,6 +14,11 @@ font-style: normal; } +@font-face { + font-family: "RF Rufo"; + src: url('public/assets/font/RF_Rufo/RFRufo-Bold.ttf'); +} + [class^="icon-cidcon_"]::before, [class*=" icon-cidcon_"]::before { font-family: 'cidcons'; font-style: normal; diff --git a/app/styles/components/_modules/_builder.scss b/app/styles/components/_modules/_builder.scss index 4586109b..8626beb2 100755 --- a/app/styles/components/_modules/_builder.scss +++ b/app/styles/components/_modules/_builder.scss @@ -5,7 +5,8 @@ **/ .builder { - background: white; + background: $colorBase; + color: $colorWhite; } .builder__recirc { diff --git a/app/styles/components/_modules/_ember-table.scss b/app/styles/components/_modules/_ember-table.scss index 1f7b9678..10032ef1 100755 --- a/app/styles/components/_modules/_ember-table.scss +++ b/app/styles/components/_modules/_ember-table.scss @@ -10,7 +10,7 @@ } .ember-table-tables-container { - background: $colorGrayLightest; + background: $colorBase; border: none; margin-bottom: $baseSpace / 2; } diff --git a/app/styles/components/_modules/_index.scss b/app/styles/components/_modules/_index.scss index 0b410709..296620bc 100755 --- a/app/styles/components/_modules/_index.scss +++ b/app/styles/components/_modules/_index.scss @@ -9,7 +9,7 @@ } .index__section { - padding: 0 $baseSpace * 3; + padding: 0; display: relative; } @@ -44,7 +44,6 @@ .stream__head.index__head { margin-bottom: $baseSpace; max-width: 100rem; - font-size: $fontXLarge; } .index__search__wrap { @@ -186,8 +185,9 @@ // Research featured in media grid .index__featuredin__wrap { margin: 0 $baseSpace*3; - background: $colorBrown300; + background: $colorBase; padding: $baseSpace * 2; + margin-top: 5rem !important; } .index__featuredin__list { @@ -221,7 +221,10 @@ margin: 0 auto; .section__head { - margin: $baseSpace*1.75 0 $baseSpace 0; + margin: $baseSpace*3 0 $baseSpace*3 0; + color: $colorYellow; + text-transform: uppercase; + font-size: 5rem; } } @@ -329,7 +332,7 @@ .index__questions__link { font-size: $fontSmall; display: block; - + &.index__questions__link--viewall { font-style: italic; font-weight: 400; @@ -405,3 +408,97 @@ .index__featuredin__wrap { margin: 0; } + +.stream__section__wrap__yellow{ + color: $colorYellow; + text-transform: uppercase; + font-size: 4rem; +} + +.stream__section__wrap__white{ + color: $colorWhite; + text-transform: uppercase; + font-size: 5rem; +} + +.stream__section__subhead__wrap__white{ + color: $colorWhite; + text-transform: uppercase; +} + +.update__sections__head__wrap__white{ + color: $colorWhite; + text-transform: uppercase; + font-size: 3rem; +} + +.dropdown-update .ui-selectmenu-button{ + box-shadow: none; + width: 100% !important; + background: none; + color: $colorWhite; + border: solid 1px $colorWhite; + border-radius: 3px; +} + +.ui-selectmenu-button.ui-state-hover{ + background: none !important; + color: $colorWhite; + opacity: 0.8; +} + +.ui-menu-item{ + background: $colorBase !important; + color: $colorWhite !important; +} + +.section__message_dropbox{ + color: $colorYellow; +} + +.section__card-cian-sophistication_route{ + background: $colorSecondary; + height: 100%; + padding: 4rem; +} + +.section__card-cian-sophistication_route > h1,p{ + color: $colorBlack; +} + +.section__card-yellow > h1{ + color: $colorBlack; +} + +.section__card-yellow{ + background: $colorYellow; + padding: 4rem; +} + +.bordered-div-yellow{ + border: solid 1px $colorYellow; +} + +.section__card__wrap__yellow{ + color: $colorYellow; + text-transform: uppercase; + font-size: 8rem; +} + +.section__card__wrap__white{ + color: $colorWhite; + text-transform: uppercase; + font-size: 8rem; +} + +.section__card__profile{ + margin-top: 10rem; + margin-left: 8rem; + button{ + margin-top: 6rem; + } +} + +.btn-large{ + font-size: 3rem; +} diff --git a/app/styles/components/_modules/_layout.scss b/app/styles/components/_modules/_layout.scss index 62dc6afa..931a2ec0 100755 --- a/app/styles/components/_modules/_layout.scss +++ b/app/styles/components/_modules/_layout.scss @@ -6,7 +6,7 @@ .body { // height: 100%; - background: white; + background: $colorBase; border-bottom: 5px solid $colorRed; } diff --git a/app/styles/components/_modules/_pageheader.scss b/app/styles/components/_modules/_pageheader.scss index 293c8cb0..6840213d 100755 --- a/app/styles/components/_modules/_pageheader.scss +++ b/app/styles/components/_modules/_pageheader.scss @@ -5,26 +5,24 @@ **/ .header--pageheader { - background: $colorRed; - padding: 0 $baseSpace; + background: $colorBase; + color: $colorWhite; } .pageheader__wrap { - padding: $baseSpace/2 0; position: relative; - max-width: $xlarge; margin: auto; + padding: 6rem 12rem; } // Branding .branding { - height: 30px; + height: 100%; } .branding__logo { - width: 12rem; - margin-top: -5px; + height: 4rem; } .branding__slogan { @@ -216,11 +214,11 @@ .index__header__wrap { padding: $baseSpace*1.5 0 0 0; - max-width: $baseSpace*20; + max-width: fit-content; } .stream__head { - color: $colorRed; + color: $colorWhite; letter-spacing: 0; font-size: $fontXLarge; margin: $fontXLarge/3 0 $fontXLarge/3 0; @@ -268,7 +266,7 @@ background-color: $colorRed; } -.header--pageheader--home .pageheader__home__cap { display: block; } +.header--pageheader--home .pageheader__home__cap { display: none; } .stream__section .pageheader__home__cap { display: block; @@ -296,4 +294,32 @@ background: $colorWhite; } +.bordered-div{ + border: solid 1px $colorWhite; +} + +.pageheader__menu__item{ + color: $colorWhite; + text-transform: uppercase; + &:hover { + opacity: 0.8; + color: $colorWhite; + text-decoration: none; + } +} + +.index__header__wrap .index__header .stream__head{ + color: $colorYellow; + text-transform: uppercase; +} +.index__header__wrap .index__header .stream__subhead{ + color: $colorWhite; + text-transform: uppercase; + font-size: $fontLarge; +} + +.btn btn-outline-warning{ + color: $colorYellow; + border-color: $colorYellow; +} diff --git a/app/styles/components/_modules/_results.scss b/app/styles/components/_modules/_results.scss index d396fabb..481431e5 100755 --- a/app/styles/components/_modules/_results.scss +++ b/app/styles/components/_modules/_results.scss @@ -11,7 +11,7 @@ .results__head { font-size: $fontXLarge; - color: $colorRed; + color: $colorWhite; margin-bottom: $baseSpace*2; margin-top: $baseSpace; line-height: 100%; @@ -20,7 +20,7 @@ } .results__subhead { - color: $colorBlack; + color: $colorWhite; font-size: $fontLarge; @include offset-text; margin-top: $baseSpace; @@ -55,7 +55,7 @@ } .results__breadcrumb { - color: $colorBlack; + color: $colorWhite; font-size: $fontSmall; @include offset-text; @@ -65,7 +65,7 @@ &:after { content: '/'; margin-left: $baseSpace / 3; - color: $colorGray; + color: $colorWhite; } &:last-of-type { margin-right: 0; @@ -76,7 +76,7 @@ } .results__name { - color: $colorBlack; + color: $colorWhite; font-weight: 700; @include offset-text; } @@ -93,7 +93,7 @@ .results__copy--postscript { margin: $baseSpace*2 0; text-align: left; - color: $colorGray; + color: $colorWhite; @include offset-text; padding: $baseSpace/2 0; border-top: 1px solid $colorGrayLight; diff --git a/app/styles/components/_modules/_stream-header.scss b/app/styles/components/_modules/_stream-header.scss index 0b7f20d1..797dda9d 100755 --- a/app/styles/components/_modules/_stream-header.scss +++ b/app/styles/components/_modules/_stream-header.scss @@ -44,7 +44,7 @@ line-height: 100%; -moz-osx-font-smoothing: grayscale; margin-bottom: $baseSpace; - color: $colorRed; + color: $colorWhite; margin-top: $baseSpace/2; } diff --git a/app/styles/components/_modules/_stream-section.scss b/app/styles/components/_modules/_stream-section.scss index 12922faf..b3cad720 100755 --- a/app/styles/components/_modules/_stream-section.scss +++ b/app/styles/components/_modules/_stream-section.scss @@ -47,8 +47,9 @@ } .stream__section__wrap { - max-width: $xlarge; + max-width: 100%; margin: 0 auto; position: relative; + margin-top: 8rem; } diff --git a/app/styles/components/_variables.scss b/app/styles/components/_variables.scss index 35e027bf..aa592f8a 100755 --- a/app/styles/components/_variables.scss +++ b/app/styles/components/_variables.scss @@ -7,7 +7,7 @@ /* ========== Type Palette ========== */ $icon: 'FontAwesome'; -$sans: 'Source Sans Pro', sans-serif; // 'Alegreya Sans', Arial, sans-serif; +$sans: 'RF Rufo', sans-serif; // 'Alegreya Sans', Arial, sans-serif; $sansAlt: $sans; $sansSC: 'Alegreya Sans SC', Arial, sans-serif; $serif: 'Alegreya', 'Times New Roman', Georgia, serif; // 'Bitter', serif; // 'Source Serif Pro', Georgia, serif; @@ -15,6 +15,10 @@ $serifSC: 'Alegreya SC', Georgia, serif; /* ========== Color Palettes ========== */ +$colorBase: #292A48; +$colorYellow: #FFCD00; +$colorSecondary: #C2C4FF; + $colorBlack: rgb( 25, 25, 20 ); $colorGrayDark: rgb( 83, 83, 79 ); $colorGray: rgb( 140, 140, 138 ); diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-100.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-100.otf new file mode 100644 index 0000000000000000000000000000000000000000..dbf12a5ff68e6620665e2ac2f47020692c0d1094 GIT binary patch literal 103732 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 WR_7gRq_GsScIicChPW>I)c*rH{f=?~ literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-300.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-300.otf new file mode 100644 index 0000000000000000000000000000000000000000..1d7785037110baeefb37e1d57a6a55e252b69c50 GIT binary patch literal 106444 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

#g1G;48*cHt7o;Dn@O~C=sBqw+|f@f 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 F{|34HZh!y) literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-300Italic.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-300Italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..aae678e39a235c3a9a785eff964be0f16d550396 GIT binary patch literal 109296 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 literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-500.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-500.otf new file mode 100644 index 0000000000000000000000000000000000000000..e4a14db440ad3fbf66bd6767cec1268ce6b11486 GIT binary patch literal 106620 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 literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-500Italic.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-500Italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..08babf7a69203e53056ff9ff28853457e32816b6 GIT binary patch literal 109056 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

sCX^#J@fSZV;`D)rL^#IN&> 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�M*e+5g$`6*dtGxOk?uf}SR{>g;#6T5^6?P1K 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 literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-700.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-700.otf new file mode 100644 index 0000000000000000000000000000000000000000..d8f19f03a97557d69b5ba3aec23d58b53f496a41 GIT binary patch literal 106712 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

YU&C=GOP!_Uy{f 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

sE%Lt)`D0xGP6)v# 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 literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSlab/Museo_Slab_100italic.otf b/app/styles/components/font/MuseoSlab/Museo_Slab_100italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..8201da91ba27374e8db40006a0779a0ea86f1749 GIT binary patch literal 49520 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 Ap#T5? literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSlab/Museo_Slab_300.otf b/app/styles/components/font/MuseoSlab/Museo_Slab_300.otf new file mode 100644 index 0000000000000000000000000000000000000000..984be3d8099f268a381e7a92a82a476048bed103 GIT binary patch literal 47816 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�j#Ol1m+5>!ife!Mc{yc zJ+D#y<-?3_S8pQB!G;{@fiBqz$#Xr?g`CcCk5hxffAl!vi#g~`ooUHS8g!Iwj5LZZ z8jobE?`U0Fi#0KbO z4Y#>8uMWH?)ldKA8;Py+PrecC1NX>oGu$Kd>TvhSe~1ei5f>_{YV<@046B#eMAZGO zFp!alfx027_P;_wES-fvb0A2pihRLHum6B2`pAw-z(WwZ(z17f}zRyiL}DSSg~4vYv7G9lYRL6Wk+3=t`D3-Z1%@P_v<>P0c3uawy-SeEgz7xR59h|$nf+%gf`hzG{-Icp z2A>iWY6hC^$l4*@rbTe;b>9bE2L8t|57Sn(q!jyVV)zRwMIv0d3PY5%rx^Ep7TmmJThg&L0Yn zpT5Ba#C;(ia*~s-VcKbfHFdBx6F6SC@a07(^VXV7;7elWy0B#(*>X0V zje8EFt)mG}pM8dlH!lD6dGRN$T2C0%p4Ayb4&NH}N#lIAgDeXRjrx{`SE;@aY(lE< zCEvlg??Z!Hk%VMk4sCnjH3bbGcc=HRUE6mq6LS@FGWW&H3tGA?`+Uo*jNx|BczPMy zjw*ce#B%i+)hT0jyG`ylwu4DO1q0x<=7(D`ZR@eHTO6Lvf3nc1`-W^54>wJ|dRzMq zYn~0xb_L!F(2314>bhTogm}|uvTlU`8yKpNC(RmxjLRRx1WUb0Nl2=sjNrMt2+zs_ zB-wtCR?|w>6f^t+6T3eC2}|ia_72?K!gRoQt&f zoBRoVO>8pzpJgl(VAqBy2ml)@J@Q$cu+~2!+-&j<;~D%WkUi4-*K>Y2yn-1()S)sKjBhdyvVf;6FNYs(!`|Cwu+@X18;T5pwJaLt~_Zb zmQmfYh;qj&sXLo#ECAAki~IrghM%b+I>kWDM-7<^>&L|#ZKD zFml1R?%Ik=-s7F8Ojz{8qW`%v^ocy{j7te55|GEICT_E4o!O`f4+;+o z1P06>gHZ+6wv0nlMzN9OcuSaP0UA2ebg3?Lng>}{U+QxhznrMiVL0vju)g!~s}WxQ z;HC|ajEvaqk|BVeP z<`{k4;sxEev`m{27a8M{5GLSN0l}Msf&v@q8n%&jW6 zSh%1&cf|AFM%2$CzbmgJ&g z@bo^;*DaEH_IFiEuKUoCY*r)B`{a0CL;541nUr;-1PnWM4^029I1vdtVxk+xBg?yw zfSJ+Pnf;w1s(>l*&*4Fx`h-0YbdG>hhLz}$OClVTHQ67-`w+T1Q;XU3{vf1oA0=F4 z4p~^Y<8<52XD#}(4~%+YbD}0vSNnDk9udt_#yh}Kw%|-XU_#2|OyuUsif1#)DWSQbprsH1!A@GvsQLiz&+Vpq8)Gn4w z_wo7^7Z601gQ`3PsT9eRTm+~(lf4Lu%yk?eKw|Nbl|ix&={ZYv1yrvQ*sY^>~T>uM4eR^)YM{oSQilBfR?i2MsWWiVoh~5`k|w0?cSElAnyd|^Sti!{YE*}gEqP#IYxC2@XU|?-pf*Nj z$^#uVgor61iL7qCwibuv>EU%Y=OHk(stzX!I;^qg8ZT;LZ@x<(=nxO6Q-XwSy2sVu zATe4w-n4M6)Xm~{4Y}Ggz6eFOm7SY3)#+N@#fML?_Q72F-oSxfbSJ+?w*Ie?t$z`+ z^&@7kG%wRR9w?@%WjaH8s3t5iB|P0FU-$hl7%4mTf~oO=&X9-J&4NCVBXXSd(_Nr$ z7i`r|vQ&4IvaT)JzvPm%QWs&F=cP=x@Ug7;t`P}>_p*19VV^^g03d~3I`|bg>yTtD JQioT@{x3SRDrW!y literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSlab/Museo_Slab_300italic.otf b/app/styles/components/font/MuseoSlab/Museo_Slab_300italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..c952686c50afff1912103e185edad483ba476422 GIT binary patch literal 51404 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Ð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 W7p-UXVbmL_!xi=L>>?xPxc>`YHjKFd literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSlab/Museo_Slab_500italic.otf b/app/styles/components/font/MuseoSlab/Museo_Slab_500italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..a8c055fd45b67ffd692546e95e061b088410e2a1 GIT binary patch literal 66376 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 MHaGM|jBkklA1QS;6#xJL literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSlab/Museo_Slab_700.otf b/app/styles/components/font/MuseoSlab/Museo_Slab_700.otf new file mode 100644 index 0000000000000000000000000000000000000000..28188621bc17d08a3479d867ea3580acac46cd4a GIT binary patch literal 47840 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 V;!g4;e1(d=<3x>dFimCg{{hKQDaQZ+ literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSlab/Museo_Slab_700italic.otf b/app/styles/components/font/MuseoSlab/Museo_Slab_700italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..d1654c4f7ee802fe494f1da859927b3597008c47 GIT binary patch literal 51100 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%0DJZWC-*?zQQnWW6O`6V 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

J9C$wxxKK4B};!LRj_0$>7>4h|D2 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 Y>MKjh@gJo~iflt2wXh>yv{qLC8wwz*bN~PV literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSlab/Museo_Slab_900italic.otf b/app/styles/components/font/MuseoSlab/Museo_Slab_900italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..92ea0149c06c8fcb1496a96cc244d4103ca2b54e GIT binary patch literal 51072 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 literal 0 HcmV?d00001 diff --git a/app/styles/components/font/RF_Rufo/RFRufo-Light.ttf b/app/styles/components/font/RF_Rufo/RFRufo-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2bf062775d92705408a85781c4326a3ad30cce52 GIT binary patch literal 78988 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

Y6?`{#*bHAym^- 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

-
-

{{ t 'index.questions_head' }}

-
    - {{#if showLocations }} -
  • -
    -
    -

    {{ t 'index.location_head' }}

    - {{select-dropdown collection=sortedLocations selected=sortedLocations.[0].id type='location'}} -
      -
    • - {{#link-to - 'location.visualization' locationFirst 'industries' 'treemap' 'employment' (query-params endDate=lastYear startDate=lastYear) - data-home-page-location-question='1' - class="link--stream index__questions__link" - }} - {{ t 'index.location_q1' }} - {{/link-to}} -
    • -
    • - {{#link-to - 'location.visualization' locationSecond 'products' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear) - data-home-page-location-question='2' - class="link--stream index__questions__link" - }} - {{ t 'index.location_q2' }} - {{/link-to}} -
    • -
    • - {{#link-to - 'location.show' locationFirst - data-home-page-location-question='2' - class="link--stream index__questions__link index__questions__link--viewall" - }} - {{ t 'index.location_viewall' }} - {{/link-to}} -
    • -
    +
    + +
    +
    +
    +

    {{ t 'index.header_h1_p1' }}

    +

    {{ t 'index.header_h1_p2' }}

    +
    +
    +

    {{ t 'index.header_subhead' }}

    +
    +
    + {{input + class="search" + placeholder=( t 'pageheader.search_placeholder' ) + value=query + enter='query' + target=controllers.search + required='required' + }} + +
    + +
    +
    +
    +
    + +

    {{ t 'index.questions_head_p1' }}

    + +
    +
    + +

    {{ t 'index.questions_head_p2' }}

    + + {{#if showLocations }} +
    +
    +

    {{ t 'index.location_head' }}

    -
  • - {{/if}} - {{#if showIndustries }} -
  • -
    -
    -

    {{ t 'index.industry_head' }}

    - {{select-dropdown collection=sortedIndustries selected=sortedIndustries.[0].id type='industry'}} -
      -
    • - {{#link-to - 'industry.visualization' industryFirst 'departments' 'multiples' 'employment'(query-params endDate=lastYear startDate=firstYear ) - data-home-page-product-question='1' - class="link--stream index__questions__link" - }} - {{ t 'index.industry_q1' }} - {{/link-to}} -
    • -
    • - {{#link-to - 'industry.visualization' industrySecond 'occupations' 'treemap' 'num_vacancies'(query-params endDate=lastYear startDate=firstYear ) - data-home-page-product-question='2' - class="link--stream index__questions__link" - }} - {{ t 'index.industry_q2' }} - {{/link-to}} -
    • -
    • - {{#link-to - 'industry.show' industryFirst - data-home-page-product-question='1' - class="link--stream index__questions__link index__questions__link--viewall" - }} - {{ t 'index.location_viewall' }} - {{/link-to}} -
    • -
    +
    + {{select-dropdown collection=sortedLocations selected=sortedLocations.[0].id type='location' class="dropdown-update"}}
    -
  • - {{/if}} - {{#if showProducts }} -
  • -
    -
    -

    {{ t 'index.product_head' }}

    - {{select-dropdown collection=sortedProducts selected=sortedProducts.[0].id type='product'}} -
      -
    • - {{#link-to - 'product.visualization' productFirst 'departments' 'geo' 'export_value' (query-params endDate=lastYear startDate=lastYear ) - data-home-page-industry-question='1' - class="link--stream index__questions__link" - }} - {{ t 'index.product_q1' }} - {{/link-to}} -
    • - {{#if featureToggle.showImports }} -
    • - {{#link-to - 'product.visualization' productSecond 'departments' 'multiples' 'import_value'(query-params endDate=lastYear startDate=firstYear ) - data-home-page-industry-question='2' - class="link--stream index__questions__link" - }} - {{ t 'index.product_q2' }} - {{/link-to}} -
    • - {{/if}} -
    • - {{#link-to - 'product.show' productFirst - data-home-page-industry-question='1' - class="link--stream index__questions__link index__questions__link--viewall" - }} - {{ t 'index.location_viewall' }} - {{/link-to}} -
    • -
    +
    + {{/if}} + + {{#if showIndustries }} +
    +
    +

    {{ t 'index.industry_head' }}

    -
  • - {{/if}} - {{#if showFarmAndLand }} -
  • -
    -
    -

    {{ t 'index.farmandland_head' }}

    - {{select-dropdown collection=sortedAgproducts selected=sortedAgproducts.[0].id type='agproduct'}} -
      -
    • - {{#link-to - 'location.visualization' farmAndLandFirst 'livestock' 'treemap' 'num_farms' (query-params endDate=agcensusLastYear startDate=agcensusLastYear ) - data-home-page-farmandland-question='1' - class="link--stream index__questions__link" - }} - {{ t 'index.livestock_q1' }} - {{/link-to}} -
    • -
    • - {{#link-to - 'landUse.visualization' farmAndLandSecond 'departments' 'treemap' 'area' (query-params endDate=agcensusLastYear startDate=agcensusLastYear ) - data-home-page-farmandland-question='2' - class="link--stream index__questions__link" - }} - {{ t 'index.landuse_q1' }} - {{/link-to}} -
    • -
    +
    + {{select-dropdown collection=sortedIndustries selected=sortedIndustries.[0].id type='industry' class="dropdown-update"}}
    -
  • - {{/if}} -
-
-
-
-
-
-
-

- {{ t 'index.present_head' }} -

-
    -
  • - -
    {{ t 'general.treemap' }}
    -
  • -
  • - -
    {{ t 'general.multiples' }}
    -
  • -
  • - -
    {{ t 'general.geo' }}
    -
  • -
-

{{ t 'index.present_subhead' }}

+
+ {{/if}} + + {{#if showProducts }} +
+
+

{{ t 'index.product_head' }}

+
+
+ {{select-dropdown collection=sortedProducts selected=sortedProducts.[0].id type='product' class="dropdown-update"}} +
+
+ {{/if}} + + {{#if showFarmAndLand }} +
+
+

{{ t 'index.farmandland_head' }}

+
+
+ {{select-dropdown collection=sortedAgproducts selected=sortedAgproducts.[0].id type='agproduct' class="dropdown-update"}} +
+
+ {{/if}} + +
-
-

- {{ t 'index.future_head' }} -

-
    -
  • - -
    {{ t 'general.scatter' }}
    -
  • -
  • - -
    {{ t 'general.similarity' }}
    -
  • -
-

{{ t 'index.future_subhead' }}

+
+
+

{{ t 'index.sophistication_route'}}

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc a porta dolor, at vehicula enim. Fusce dignissim massa magna, quis mollis arcu scelerisque fringilla. Sed semper risus ipsum, tempus pretium leo ullamcorper eget. Donec in erat at elit tempor aliquet vitae quis dolor. Quisque mi erat, luctus sed orci eu, aliquet maximus odio. Quisque tempus scelerisque tortor vel volutpat. Nunc volutpat justo non arcu mollis, a suscipit lacus porttitor. Cras euismod, nunc ac lacinia tristique, ipsum odio tempor metus, at lobortis nibh tellus sed lacus. Quisque mollis cursus sem, nec pellentesque dolor faucibus quis. +

+ +
+
-
-
-
-
-
-
-

- {{ t 'index.complexity_head' }} -

+
+
+

{{ t 'index.present_head' }}

+

{{ t 'index.present_subhead' }}

+
+
+ +

{{ t 'general.treemap' }}

+
+
+ +

{{ t 'general.multiples' }}

+
+
+ +

{{ t 'general.geo' }}

+
+
+
+
+ +

{{ t 'general.scatter' }}

+
+
+ +

{{ t 'general.similarity' }}

+
+
+

{{ t 'index.future_head' }}

+

{{ t 'index.future_subhead' }}

+
+
+
+
+
+

{{ t 'index.complexity_head' }}

+

{{ t 'index.complexity_subhead' }}

+
+ {{#link-to 'about.glossary' + data-home-page-product='' + class="text-uppercase btn btn-outline-light btn-large mt-5" + }} + {{ t 'index.complexity_cta' }} + {{/link-to}} +
-
-

- {{ t 'index.complexity_subhead' }} -

- {{#link-to 'about.glossary' - data-home-page-product='' - class="btn btn--standalone btn--stream index__complexity__cta" - }} - {{ t 'index.complexity_cta' }} - {{/link-to}} +
+
+
+
+
+

{{ t 'index.country_profile_p1' }}

+

{{ t 'index.country_profile_p2' }}

+ {{#link-to + 'location.show' 0 + data-home-page-industry-question='2' + class="text-uppercase btn btn-outline-light btn-large mt-5" + }} + {{ t 'pageheader.profile_link' }} + {{/link-to}} +
+ +
+
+ +
-
-
-
-

- {{t 'index.country_profile'}} -

- {{#link-to - 'location.show' 0 - data-home-page-industry-question='2' - class="btn btn--standalone btn--stream" - }} - {{ t 'pageheader.profile_link' }} - {{/link-to}} -
-
+ {{#if featureToggle.homepage_logos }}
- {{/if}} - {{#unless isIndustryClass}} -

{{t 'graph_builder.builder_questions.occupation'}}

- {{#if (array-contains openPanels 'occupation') }} -
    -
  • - {{#link-to 'industry.visualization' model.id 'occupations' 'treemap' 'num_vacancies' (query-params startDate=occupationLastYear endDate=occupationLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - - {{#link-to 'industry.visualization' model.id 'occupations' 'treemap' 'num_vacancies' (query-params startDate=occupationLastYear endDate=occupationLastYear) +
    +

    {{t 'graph_builder.builder_questions.wage'}}

    + +
    + + {{#link-to 'industry.visualization' model.id 'departments' 'multiples' 'wages' (query-params startDate=firstYear endDate=lastYear) class="builder__questions__question" }} - {{t 'graph_builder.page_title.industry.occupations.num_vacancies'}} + {{t 'graph_builder.page_title.industry.departments.wages'}} + {{/link-to}} +
    + +
    + + {{#link-to 'industry.visualization' model.id 'cities' 'multiples' 'wages' (query-params startDate=firstYear endDate=lastYear) + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.industry.cities.wages'}} {{/link-to}} - +
    +
    -
  • -
- {{/if}} - {{/unless}} + + + + diff --git a/app/templates/industry/show.hbs b/app/templates/industry/show.hbs index 67f0a01f..f14a7f3f 100755 --- a/app/templates/industry/show.hbs +++ b/app/templates/industry/show.hbs @@ -9,108 +9,112 @@ lastYear=lastYear occupationLastYear=occupationLastYear }} -
-

- {{t 'industry.show.employment_and_wages'}} -

-
- - - - - - - - - - - - - - - {{#if hasAverageWage }} - - - - - - {{/if}} - -
- {{t 'industry.show.value'}} - - {{t 'industry.show.industries'}} -
- {{t 'industry.show.employment_growth' yearRange=yearRange}} - - {{model.displayEmploymentGrowth}} - - {{vistk-dotplot - elementId='dotplot--employment-growth' - data=employmentGrowthDotPlot - varX='employment_growth' - varText='name_en' - varId='industry_id' - type='percentage' - currentSelection=model.id - }} -
- {{t 'industry.show.avg_wages' year=lastYear}} - - {{model.lastAvgWage}} - - {{vistk-dotplot - elementId='dotplot--avg-wage' - data=averageWageDotPlot - varX='avg_wage' - varText='name_en' - varId='industry_id' - currentSelection=model.id - }} -
-
- {{#ivy-tabs}} - {{#ivy-tab-list classNames='tabmod__tabs'}} - {{#if hasAverageWage }} - {{#ivy-tab classNames='tabmod__tab' activeClass='tabmod__tab--is--active' action='puts'}} - {{t 'industry.show.avg_wages' year=yearRange }} - {{/ivy-tab}} - {{/if}} - {{#ivy-tab classNames='tabmod__tab' activeClass='tabmod__tab--is--active'}} - {{t 'industry.show.employment' year=lastYear}} - {{/ivy-tab}} - {{/ivy-tab-list}} + +
+
+ +
+

+ {{t 'industry.show.employment_and_wages'}} +

+
+ +
+ + + + + + + + + + + + + + + {{#if hasAverageWage }} + + + + + + {{/if}} + +
Item{{t 'industry.show.value'}}{{t 'industry.show.industries'}}
{{t 'industry.show.employment_growth' yearRange=yearRange}}{{model.displayEmploymentGrowth}} + {{vistk-dotplot + elementId='dotplot--employment-growth' + data=employmentGrowthDotPlot + varX='employment_growth' + varText='name_en' + varId='industry_id' + type='percentage' + currentSelection=model.id + }} +
{{t 'industry.show.avg_wages' year=lastYear}}{{model.lastAvgWage}} + {{vistk-dotplot + elementId='dotplot--avg-wage' + data=averageWageDotPlot + varX='avg_wage' + varText='name_en' + varId='industry_id' + currentSelection=model.id + }} +
+
+ +
+ +
+ + + +
+
{{#if hasAverageWage }} - {{#ivy-tab-panel classNames='tabmod__card' activeClass='tabmod__card--is--active'}} -
-
- {{multiples-graph - data=departmentsData - immutableData=departmentsData - isInTab='true' - varDependent='monthly_wages' - startDate=firstYear - endDate=lastYear - }} -
-
- {{/ivy-tab-panel}} - {{/if}} - {{#ivy-tab-panel classNames='tabmod__card' activeClass='tabmod__card--is--active'}}
- {{vistk-treemap + {{multiples-graph + data=departmentsData + immutableData=departmentsData isInTab='true' - data=recentDepartmentsData - immutableData=recentDepartmentsData - elementId='employment-vistk-treemap' - varDependent='employment' + varDependent='monthly_wages' + startDate=firstYear + endDate=lastYear }}
- {{/ivy-tab-panel}} - {{/ivy-tabs}} + {{/if}} +
+
+
+
+ {{vistk-treemap + isInTab='true' + data=recentDepartmentsData + immutableData=recentDepartmentsData + elementId='employment-vistk-treemap' + varDependent='employment' + }} +
+
+
+
{{#unless isIndustryClass}}
diff --git a/app/templates/partials/-pageheader.hbs b/app/templates/partials/-pageheader.hbs index 89fe48ba..9643ff25 100755 --- a/app/templates/partials/-pageheader.hbs +++ b/app/templates/partials/-pageheader.hbs @@ -1,88 +1,92 @@
-
-
-
-
- {{#if featureToggle.showDatlas }} - {{#link-to "index" class='mr-auto'}} - - {{/link-to}} - - + + {{#if isHomePageRoute }} + {{!-- special display of introductory text on index --}} +
+
+
+

{{ t 'index.header_h1_add' }}

+

{{ t 'index.header_subhead_add' }}

+ + +
+
+
+ {{/if}} +
diff --git a/bower.json b/bower.json index 99fa1945..1d104749 100644 --- a/bower.json +++ b/bower.json @@ -28,7 +28,7 @@ "d3": "~3.5.5", "FileSaver.js": "https://github.com/eligrey/FileSaver.js.git#v2.0.4", "papaparse": "~4.1.2", - "vis-toolkit": "https://github.com/cid-harvard/vis-toolkit.git#master" + "vis-toolkit": "https://github.com/Dandresfsoto/vis-toolkit.git#master" }, "resolutions": { "d3": "~3.5.5", From 711961601d17075ae38b4e57a8e373be6d7144e6 Mon Sep 17 00:00:00 2001 From: cristianfonseca03 Date: Fri, 16 Jul 2021 14:26:44 -0500 Subject: [PATCH 008/126] Add tooltip to max-value --- app/components/multiples-graph.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/components/multiples-graph.js b/app/components/multiples-graph.js index eecfb16b..c2bc2954 100644 --- a/app/components/multiples-graph.js +++ b/app/components/multiples-graph.js @@ -209,11 +209,23 @@ export default Ember.Component.extend({ return 'translate(0, -3.54) rotate( 45 ' + x(d.max_values.x) + ' ' + y(d.max_values.y) + ')'; }); + svg.append('rect') + .attr('width', 80) + .attr('height', 20) + .attr('opacity', 1) + .attr('fill', 'white') + .attr('x', function(d) { + return x(d.max_values.x) - 75; + }) + .attr('y', function(d) { + return y(d.max_values.y) - 25; + }); + svg.append('text') .classed('max_value', true) .classed(markerGroup, true) .attr('text-anchor', 'end') - .attr('dy', -5) + .attr('dy', - 10) .attr('x', function(d) { return x(d.max_values.x) }) @@ -285,7 +297,7 @@ export default Ember.Component.extend({ let yValue = d.values[index] ? Ember.get(d.values[index], varDependent, 0): 0; return 'translate(0, -3.54) rotate( 45 ' + x(date) + ' ' + y(yValue) + ')'; }); - + d3.selectAll('text.caption.'+markerGroup) .attr('x', x(date)) .attr('y', function(d) { From 29587d988815eab881343a24e68023b868bc9d9c Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Sun, 25 Jul 2021 15:57:34 -0500 Subject: [PATCH 009/126] Ad datatables to project --- app/components/autocomplete-input-datlas.js | 98 +++++ app/components/datlas-table.js | 289 +++++++++++++++ app/components/graphbuilder-change-graph.js | 4 +- app/components/multiples-graph.js | 62 +++- app/components/navigation-questions.js | 1 - app/components/zoomable-treemap.js | 350 ++++++++++++++++++ app/controllers/index.js | 37 ++ app/controllers/industry/show.js | 21 +- app/controllers/search.js | 27 +- app/controllers/visualization.js | 11 +- app/index.html | 33 +- app/locales/en-col/translations.js | 27 +- app/locales/en-col/translations.original | 2 +- app/locales/en-col/translations_2016.js | 2 +- app/locales/en-col/translationsold.js | 2 +- app/locales/en-mex/translations.js | 29 +- app/locales/en-peru/translations.js | 29 +- app/locales/es-col/translations.js | 27 +- app/locales/es-col/translations.original | 2 +- app/locales/es-col/translations_2016.js | 2 +- app/locales/es-col/translationsold.js | 2 +- app/locales/es-mex/translations.js | 29 +- app/locales/es-peru/translations.js | 29 +- .../components/_components/_datatables.scss | 63 ++++ app/styles/components/_components/_modal.scss | 12 + .../components/_components/_search.scss | 14 +- app/styles/components/_components/_table.scss | 11 + .../components/_components/_treemap.scss | 79 ++++ .../components/_modules/_buildermod.scss | 1 - .../components/_modules/_header-nav.scss | 5 + app/styles/components/_modules/_index.scss | 10 +- app/styles/components/_modules/_layout.scss | 14 + .../components/_modules/_pageheader.scss | 3 +- .../components/_modules/_stream-header.scss | 8 + app/styles/components/_variables.scss | 1 + .../_area-chart-multiples.scss | 28 +- app/styles/components/components.scss | 4 + app/templates/application.hbs | 2 +- .../components/autocomplete-input-datlas.hbs | 12 + app/templates/components/datlas-table.hbs | 1 + .../components/graphbuilder-change-graph.hbs | 4 +- .../components/graphbuilder-settings.hbs | 27 +- app/templates/components/multiples-graph.hbs | 2 +- .../components/small-multiples-set.hbs | 2 +- app/templates/components/stream-header.hbs | 35 +- .../components/visualization-explanation.hbs | 12 +- app/templates/components/zoomable-treemap.hbs | 1 + app/templates/header-nav.hbs | 27 ++ app/templates/index.hbs | 240 ++++++------ app/templates/industry/-questions.hbs | 18 +- app/templates/industry/loading.hbs | 6 +- app/templates/industry/show.hbs | 206 ++++++----- app/templates/loading.hbs | 6 +- app/templates/location/loading.hbs | 6 +- .../location/visualization-product.hbs | 1 + .../-buildermod-drawer-change-graph.hbs | 4 +- app/templates/partials/-buildermod-search.hbs | 45 ++- app/templates/partials/-pageheader.hbs | 28 +- app/templates/product/-questions.hbs | 82 +++- app/templates/product/loading.hbs | 6 +- app/templates/search.hbs | 307 ++++++++------- app/templates/visualization.hbs | 160 ++++---- package.json | 4 +- public/assets/img/general/ico_questions.svg | 13 + public/assets/img/general/illustracion_2.svg | 39 ++ public/assets/img/graphicons/ico_geo.svg | 14 + .../ico_grafico_de_dispersi\303\263n.svg" | 50 +++ .../img/graphicons/ico_mapa_colombia.svg | 38 ++ .../img/graphicons/ico_mapa_de_sectores.svg | 12 + .../assets/img/graphicons/ico_multiples.svg | 6 + .../assets/img/graphicons/ico_questions.svg | 13 + public/assets/img/graphicons/ico_treemap.svg | 19 + .../autocomplete-input-datlas-test.js | 27 ++ .../components/datlas-table-test.js | 27 ++ .../components/zoomable-treemap-test.js | 27 ++ 75 files changed, 2366 insertions(+), 531 deletions(-) create mode 100644 app/components/autocomplete-input-datlas.js create mode 100644 app/components/datlas-table.js create mode 100644 app/components/zoomable-treemap.js create mode 100644 app/styles/components/_components/_datatables.scss create mode 100644 app/styles/components/_components/_modal.scss create mode 100644 app/styles/components/_components/_treemap.scss create mode 100644 app/styles/components/_modules/_header-nav.scss create mode 100644 app/templates/components/autocomplete-input-datlas.hbs create mode 100644 app/templates/components/datlas-table.hbs create mode 100644 app/templates/components/zoomable-treemap.hbs create mode 100644 public/assets/img/general/ico_questions.svg create mode 100644 public/assets/img/general/illustracion_2.svg create mode 100644 public/assets/img/graphicons/ico_geo.svg create mode 100644 "public/assets/img/graphicons/ico_grafico_de_dispersi\303\263n.svg" create mode 100644 public/assets/img/graphicons/ico_mapa_colombia.svg create mode 100644 public/assets/img/graphicons/ico_mapa_de_sectores.svg create mode 100644 public/assets/img/graphicons/ico_multiples.svg create mode 100644 public/assets/img/graphicons/ico_questions.svg create mode 100644 public/assets/img/graphicons/ico_treemap.svg create mode 100644 tests/integration/components/autocomplete-input-datlas-test.js create mode 100644 tests/integration/components/datlas-table-test.js create mode 100644 tests/integration/components/zoomable-treemap-test.js diff --git a/app/components/autocomplete-input-datlas.js b/app/components/autocomplete-input-datlas.js new file mode 100644 index 00000000..8649f3e7 --- /dev/null +++ b/app/components/autocomplete-input-datlas.js @@ -0,0 +1,98 @@ +import Ember from 'ember'; +const {computed, get, observer} = Ember; + +export default Ember.Component.extend({ + i18n: Ember.inject.service(), + search: null, + placeHolder: null, + transitionProduct: 'transitionProduct', + transitionLocation: 'transitionLocation', + transitionIndustry: 'transitionIndustry', + transitionLocationProducts: 'transitionLocationProducts', + transitionAgproduct: 'transitionAgproduct', + runSelect: computed('idSelect', 'type', 'data_search', 'placeHolder', 'search', 'i18n', function(){ + let id_select = this.get('idSelect'); + var $eventSelect = $(`#${id_select}`); + let type = this.get('type'); + let self = this + var data = this.get('data_search') + var placeholder = this.get("placeHolder") + + if(placeholder === null){ + placeholder = this.get('i18n').t(`pageheader.search_placeholder.${type}`).string + } + + data.unshift({ id: "", text: ""}) + + $eventSelect.select2({ + placeholder: placeholder, + allowClear: true, + theme: 'bootstrap4', + language: this.get('i18n').display, + width: 'auto', + dropdownAutoWidth : true, + data: data, + containerCssClass: "flex-fill" + }); + + $eventSelect.on("select2:select", function (e) { + + let id = $eventSelect.val(); + let text= $(`#${id_select} option:selected`).text(); + + if(id !== ""){ + if(type === 'location') { + self.sendAction('transitionLocation', id); + } else if (type === 'product') { + self.sendAction('transitionProduct', id); + } else if (type === 'industry') { + self.sendAction('transitionIndustry', id); + } else if (type === 'location-product') { + self.sendAction('transitionLocationProducts', id); + } else if (type === 'rural') { + self.sendAction('transitionAgproduct', id); + } else if (type === 'search') { + self.set('search', text); + } + } + + }); + }), + didInsertElement: function() { + Ember.run.scheduleOnce('afterRender', this , function() { + + this.get("runSelect"); + + }); + }, + update: observer('i18n.display', function() { + let id_select = this.get('idSelect'); + var $eventSelect = $(`#${id_select}`); + var placeholder = this.get("placeHolder") + let type = this.get('type'); + + if(placeholder === null){ + placeholder = this.get('i18n').t(`pageheader.search_placeholder.${type}`).string + } + + $eventSelect.select2({ + placeholder: placeholder, + allowClear: true, + theme: 'bootstrap4', + language: this.get('i18n').display, + width: 'auto', + dropdownAutoWidth : true, + }); + + }), + actions: { + reset: function() { + this.set('search', null); + + let id_select = this.get('idSelect'); + var $eventSelect = $(`#${id_select}`); + $eventSelect.val(''); + $eventSelect.trigger('change'); + } + } +}); diff --git a/app/components/datlas-table.js b/app/components/datlas-table.js new file mode 100644 index 00000000..2900f1a8 --- /dev/null +++ b/app/components/datlas-table.js @@ -0,0 +1,289 @@ +import Ember from 'ember'; +import TableMap from '../mixins/table-map'; + +const {computed, observer, get:get} = Ember; + +export default Ember.Component.extend(TableMap, { + i18n: Ember.inject.service(), + transitionProduct: 'transitionProduct', + transitionLocation: 'transitionLocation', + transitionIndustry: 'transitionIndustry', + transitionLocationProducts: 'transitionLocationProducts', + transitionAgproduct: 'transitionAgproduct', + id: computed('data.[]', 'elementId', 'search', 'startDate', function() { + return `#${this.get('elementId')} table`; + }), + tableMap: computed('data.[]', 'source', 'search', 'startDate', function() { + let entityType = this.get('entityType'); + let source = this.get('source'); + + let map = this.get(`${source}Map`); + if (entityType === "landUse"){ + map = this.get("landUseLocationsMap"); + } else if (entityType === "agproduct"){ + map = this.get("agproductLocationsMap"); + } else if (entityType === "nonag"){ + map = this.get("nonagLocationsMap"); + } else if (entityType === "livestock"){ + map = this.get("livestockLocationsMap"); + } + + _.forEach(map, (mapping) => { + if(mapping.key === 'name' || mapping.key == 'parent') { return; } + }); + return map; + }), + droppedColumns: computed('data.[]', 'search', 'startDate', function(){ + + // We only need to drop columns in location sources + var isLocation = _.contains(['cities', 'departments'], this.get('source')); + if(!isLocation){ + return []; + } + + return this.get('tableMap').filter((column) => { + + // Don't ever drop the "name" column + if(column.key == "name" || column.key == "parent_name"){ + return false; + } + + var columnData = _.pluck(this.get('data'), column.key); + var columnEmpty = _.every(columnData, (x) => x === null || x === undefined); + return columnEmpty; + }).map((c) => c.key); + }), + columns: computed('data.[]', 'droppedColumns', 'tableMap', 'search', 'startDate', function() { + + var droppedColumns = this.get('droppedColumns'); + if (!_.isEmpty(droppedColumns)){ + Ember.Logger.log(`Dropping columns: ${droppedColumns}`); + } + + return this.get('tableMap') + .filter((c) => !_.contains(droppedColumns, c.key)) + .map((column) => { + return this.generateColumnDefinition(column); + }); + }), + titles: computed('data.[]', 'tableMap', 'i18n.locale', 'search', 'startDate', function() { + return this.get('tableMap').map(column => ( + { + title: (column.hasOwnProperty("copy")) ? this.get('i18n').t(`graph_builder.table.${column.copy}`).string : this.get('i18n').t(`graph_builder.table.${column.key}`).string, + data: column.key, + } + )); + }), + updateTitles: computed('data.[]', 'titles', 'updatedData', 'search', 'startDate', function() { + var titles = this.get('titles'); + var updatedData = this.get('updatedData'); + + var update_titles = [] + + for(const [key, value] of Object.entries(titles)){ + + var item_key = value.data + + if(updatedData.filter((item) => item[item_key] !== null).length > 0){ + update_titles.push(value) + } + + } + + return update_titles; + + }), + formatNumber: (number, key, i18n) => { + var decimalVars = [ + 'export_rca', + 'eci', + 'industry_eci', + 'rca', + 'complexity', + 'distance', + 'cog', + 'coi', + 'industry_coi', + 'population', + 'yield_ratio', + 'yield_index', + 'average_livestock_load', + ]; + var percentVars = [ + 'share', + 'employment_growth' + ]; + var wageVarsInThousands = [ + 'wages', + 'avg_wages', + 'avg_wage', + ]; + var moneyVars = [ + 'gdp_pc_real', + 'gdp_real', + ]; + var largeNumbers = [ + 'export_value', + 'import_value', + 'monthly_wages', + 'average_wages', + 'area', + 'production_tons', + 'land_sown', + 'land_harvested', + 'num_farms', + 'num_livestock', + ]; + + if(_.include(wageVarsInThousands, key)){ + return numeral(number).divide(1000).format('0,0'); + } else if(_.include(decimalVars, key)){ + return numeral(number).format('0.00a'); + } else if(key === 'employment'){ + return numeral(Math.ceil(number)).format('0,0'); + } else if(key === 'num_establishments' || key === 'export_num_plants'){ + if(parseInt(number) < 6) { + return i18n.t('graph_builder.table.less_than_5'); + } + return numeral(number).format('0,0'); + } else if(_.include(percentVars, key)){ + return numeral(number).format('0.00%'); + } else if(_.include(largeNumbers, key)) { + return numeral(number).format('0,0'); + } else if(_.include(moneyVars, key)) { + return numeral(number).format('$0.00a'); + } else { + return number; + } + }, + updatedData: computed('data.[]', 'tableMap', 'i18n.locale', 'source', 'search', 'startDate', function() { + var data = this.get("data") + + var columns = this.get('tableMap').map((column) => { return column.key }) + + var that = this; + + function updateValue(key, value, item) { + + if(_.isNull(value)){ + return 'N/A'; + } + else if(_.isNumber(value)){ + return that.formatNumber(value, key, that.get('i18n')); + } + else if(key === 'name'){ + return item[`name_short_${that.get('i18n').display}`]; + } + else if(key === 'parent'){ + let color = item['color']; + let testSpan = Ember.String.htmlSafe(''); + return testSpan + item[`parent_name_${that.get('i18n').display}`]; + } + else if(key === 'parent_name'){ + return item[`parent_name_${that.get('i18n').display}`]; + } + else if(!item.hasOwnProperty(key)){ + return null; + } + else { + return value; + } + } + + return data.map((item) => { + + var updatedItem = {} + for(const key of columns) { + var value_item = item[key] + + updatedItem[key] = updateValue(key, value_item, item) + + } + return updatedItem + }) + + }), + renderTable: computed('data.[]', 'id', 'updatedData', 'titles', 'tableMap', 'droppedColumns', 'columns', 'i18n.locale', 'source', 'search', 'startDate', function() { + + var data = this.get('data'); + var id_element = this.get('id'); + var updatedData = this.get('updatedData'); + + console.log(updatedData) + + + + var columns = this.get('updateTitles'); + let source = this.get('source'); + let self = this; + var export_data_text = this.get('i18n').t('table.export_data').string; + + + if(this.get('i18n').display === 'es'){ + var url = "https://cdn.datatables.net/plug-ins/1.10.16/i18n/Spanish.json" + } + else{ + var url = "https://cdn.datatables.net/plug-ins/1.10.16/i18n/English.json" + } + + var table = $(id_element).DataTable({ + dom: 'Bfrtip', + lengthChange: false, + data: updatedData, + columns: columns, + buttons: [ + { + text: export_data_text, + attr: {class: 'btn btn-outline-secondary' }, + extend: "excelHtml5", + filename: function() { + var d = new Date(); + return d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds(); + }, + } + ], + language: { + url: url + }, + }); + + $(`${id_element} tbody`).on( 'click', 'tr', function () { + + if(!$(event.target).attr('class')){ + + var id = data[table.row( this ).index()].id + + if(source === 'location') { + self.sendAction('transitionLocation', id); + } else if (source === 'product') { + self.sendAction('transitionProduct', id); + } else if (source === 'industries') { + self.sendAction('transitionIndustry', id); + } else if (source === 'location-product') { + self.sendAction('transitionLocationProducts', id); + } else if (source === 'agproduct') { + self.sendAction('transitionAgproduct', id); + } + + } + + }); + }), + didInsertElement: function() { + Ember.run.scheduleOnce('afterRender', this, function() { + this.get('renderTable'); + }); + }, + update: observer('i18n.display', 'search', 'data.[]', function() { + console.log("update") + + var id = this.get('id'); + var updatedData = this.get('updatedData'); + var datatable = new $.fn.dataTable.Api( id ); + + datatable.clear(); + datatable.rows.add(updatedData); + datatable.draw(); + + }) +}); diff --git a/app/components/graphbuilder-change-graph.js b/app/components/graphbuilder-change-graph.js index e601b65d..41c6d49d 100644 --- a/app/components/graphbuilder-change-graph.js +++ b/app/components/graphbuilder-change-graph.js @@ -3,11 +3,11 @@ const {computed, get} = Ember; export default Ember.Component.extend({ i18n: Ember.inject.service(), - tagName: 'i', + tagName: 'div', classNames: ['changegraph__icon'], classNameBindings: ['iconClass', 'isChecked'], iconClass: computed('type', function() { - return `icon-cidcon_${get(this, 'type')}`; + return `${get(this, 'type')}`; }), isChecked: computed('type', 'visualization', function() { if(get(this, 'type') === get(this, 'visualization')) { diff --git a/app/components/multiples-graph.js b/app/components/multiples-graph.js index c2bc2954..0bc48819 100644 --- a/app/components/multiples-graph.js +++ b/app/components/multiples-graph.js @@ -107,7 +107,7 @@ export default Ember.Component.extend({ .data(data, (d,i) => { return [d.key, i, this.get('i18n').locale]; }); var div = container.enter().append('div') - .attr('class', 'multiple col-12 col-md-6 col-lg-3'); + .attr('class', 'multiple d-flex flex-row col-12 col-md-6 col-lg-3 pt-5'); //has to be retrieved after the 'multiple' div is appended. let w = this.get('width'); @@ -171,9 +171,7 @@ export default Ember.Component.extend({ .attr('x', w) .text(truncateYear(this.get('xExtent')[1])); - svg.append('g') - .attr('class', 'axis axis--y') - .call(yAxis); + svg.append('path') .attr('class', 'area') @@ -186,34 +184,43 @@ export default Ember.Component.extend({ return line(d.values); }); + svg.append('g') + .attr('class', 'axis axis--y') + .call(yAxis); + svg.append('rect') .classed('marker', true) .classed(this.get('markerGroup'), true) .attr('width', 10) .attr('height', 10) .attr('opacity', 0); + // Max value - svg.append('rect') + svg.append('circle') .classed('marker_fixed', true) - .attr('width', 10) - .attr('height', 10) + //.attr('width', 10) + //.attr('height', 10) .attr('opacity', 1) - .attr('x', function(d) { + .attr('r', 5) + .attr('cx', function(d) { return x(d.max_values.x); }) - .attr('y', function(d) { + .attr('cy', function(d) { return y(d.max_values.y); }) - .attr('transform', function(d) { - return 'translate(0, -3.54) rotate( 45 ' + x(d.max_values.x) + ' ' + y(d.max_values.y) + ')'; - }); + //.attr('transform', function(d) { + // return 'translate(0, -3.54) rotate( 45 ' + x(d.max_values.x) + ' ' + y(d.max_values.y) + ')'; + //}); svg.append('rect') + .classed('tooltip-max_value', true) .attr('width', 80) .attr('height', 20) .attr('opacity', 1) .attr('fill', 'white') + .attr('rx', '5') + .attr('ry', '5') .attr('x', function(d) { return x(d.max_values.x) - 75; }) @@ -225,6 +232,7 @@ export default Ember.Component.extend({ .classed('max_value', true) .classed(markerGroup, true) .attr('text-anchor', 'end') + .attr('fill', 'black') .attr('dy', - 10) .attr('x', function(d) { return x(d.max_values.x) @@ -254,6 +262,15 @@ export default Ember.Component.extend({ }); + svg.append('rect') + .classed('tooltip-value', true) + .classed(this.get('markerGroup'), true) + .attr('width', 80) + .attr('height', 20) + .attr('opacity', 0) + .attr('fill', 'white') + .attr('rx', '5') + .attr('ry', '5'); svg.append('text') @@ -274,6 +291,9 @@ export default Ember.Component.extend({ } function mouseover() { + d3.selectAll('rect.tooltip-max_value').attr('opacity', 0); + d3.selectAll('rect.tooltip-value.'+markerGroup).attr('opacity', 1); + d3.selectAll('text.max_value').attr('opacity', 0); d3.selectAll('rect.marker.'+markerGroup).attr('opacity', 1); d3.selectAll('.static_year').classed('hidden', true); mousemove.call(this); @@ -295,9 +315,9 @@ export default Ember.Component.extend({ .attr('transform', function(d) { index = bisect(d.values, date, 0, d.values.length - 1); let yValue = d.values[index] ? Ember.get(d.values[index], varDependent, 0): 0; - return 'translate(0, -3.54) rotate( 45 ' + x(date) + ' ' + y(yValue) + ')'; + return 'translate(0, -6.54) rotate( 45 ' + x(date) + ' ' + y(yValue) + ')'; }); - + d3.selectAll('text.caption.'+markerGroup) .attr('x', x(date)) .attr('y', function(d) { @@ -320,7 +340,7 @@ export default Ember.Component.extend({ } }) .attr('dy', function() { - return '-5'; + return '-10'; }) .text(function(d) { index = bisect(d.values, date, 0, d.values.length - 1); @@ -333,6 +353,15 @@ export default Ember.Component.extend({ return numeral(yValue).format('0.0a'); }); + + d3.selectAll('rect.tooltip-value') + .attr('x', x(date) - 75) + .attr('y', function(d) { + index = bisect(d.values, date, 0, d.values.length - 1); + let yValue = d.values[index] ? Ember.get(d.values[index], varDependent, 0): 0; + return y(yValue) - 25; + }) + d3.selectAll('text.year.'+markerGroup) .attr('x', x(date)) @@ -340,6 +369,9 @@ export default Ember.Component.extend({ } function mouseout() { + d3.selectAll('rect.tooltip-max_value').attr('opacity', 1); + d3.selectAll('rect.tooltip-value').attr('opacity', 0); + d3.selectAll('text.max_value').attr('opacity', 1); d3.selectAll('rect.marker').attr('opacity', 0); d3.selectAll('.static_year').classed('hidden', false); d3.selectAll('text.caption').text(''); diff --git a/app/components/navigation-questions.js b/app/components/navigation-questions.js index a3b4be18..0b52c375 100644 --- a/app/components/navigation-questions.js +++ b/app/components/navigation-questions.js @@ -75,7 +75,6 @@ export default Ember.Component.extend({ this.set('openPanels', _.union(this.get('openPanels'), [name])); } } else { - console.log("Invalid panel " + name + ", we have " + this.get('allPanels')); } } }, diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js new file mode 100644 index 00000000..1ffbeea0 --- /dev/null +++ b/app/components/zoomable-treemap.js @@ -0,0 +1,350 @@ +import Ember from 'ember'; +const {computed, observer, get:get} = Ember; + +export default Ember.Component.extend({ + i18n: Ember.inject.service(), + id: computed('elementId', function() { + return `#${this.get('elementId')}`; + }), + varText: computed('i18n.locale', function() { + return `name_short_${this.get('i18n').display}`; + }), + updatedData: computed('data.[]', 'varDependent', 'varText', 'i18n.locale', 'search', function() { + + var key = this.get('varText'); + var dependent = this.get('varDependent'); + + return this.get('data').map(item => { + + if(_.get(item, `parent_name_${this.get('i18n').display}`) === _.get(item, `name_${this.get('i18n').display}`)){ + return { key:_.get(item, key), value:_.get(item, dependent) } + } + else{ + return { key:_.get(item, key), value:_.get(item, dependent), group: _.get(item, `parent_name_${this.get('i18n').display}`) } + } + + }); + }), + nestedData: computed('updatedData', 'search', function () { + var updatedData = this.get('updatedData'); + if(updatedData[0].hasOwnProperty("group")){ + return d3.nest().key(function(d) { return d.group; }).entries(updatedData); + } + else{ + return d3.nest().entries(updatedData); + } + }), + treemap: computed('data.[]', 'id', 'updatedData', 'nestedData', 'varDependent', 'i18n.locale', 'varText', 'search', function () { + + var elementId = this.get('id'); + var value_text = this.get('i18n').t(`graph_builder.table.${this.get('varDependent')}`).string + + var defaults = { + margin: {top: 24, right: 0, bottom: 0, left: 0}, + rootname: "TOP", + format: ",d", + width: 1000, + height: 500, + value_text: value_text, + percent_text: this.get('i18n').t(`graph_builder.table.share`).string, + start_color: "#D81B60", + end_color: "#880E4F", + principal_color: "#292A48" + }; + var o = {title: "World Population"} + var data = {key: value_text, values: this.get("nestedData")} + + var root, + opts = $.extend(true, {}, defaults, o), + formatNumber = d3.format(opts.format), + rname = opts.rootname, + margin = opts.margin, + theight = 36 + 16; + + var width = opts.width - margin.left - margin.right, + height = opts.height - margin.top - margin.bottom - theight, + transitioning; + + var color = d3.scale.linear().domain([0,1]).interpolate(d3.interpolateHcl).range([d3.rgb(defaults.start_color), d3.rgb(defaults.end_color)]); + + var x = d3.scale.linear() + .domain([0, width]) + .range([0, width]); + + var y = d3.scale.linear() + .domain([0, height]) + .range([0, height]); + + var treemap = d3.layout.treemap() + .children(function(d, depth) { return depth ? null : d._children; }) + .sort(function(a, b) { return a.value - b.value; }) + .mode('squarify') + .round(false); + + var svg = d3.select(elementId).append("svg") + .attr('viewBox', `0 0 ${defaults.width} ${defaults.height}`) + .style("margin-left", -margin.left + "px") + .style("margin-right", -margin.right + "px") + .style("background-color", defaults.principal_color) + + .append("g") + .attr("transform", "translate(" + margin.left + "," + margin.top + ")") + .style("shape-rendering", "crispEdges"); + + var grandparent = svg.append("g") + .attr("class", "grandparent"); + + grandparent.append("rect") + .attr("y", -margin.top) + .attr("width", width) + .attr("height", margin.top); + + grandparent.append("text") + .attr("x", 6) + .attr("y", 6 - margin.top) + .attr("dy", ".75em"); + + var Tooltip = d3.select(elementId) + .append("div") + .style("position", "absolute") + .style("visibility", "hidden") + .style("background-color", "white") + .style("border", "solid") + .style("border-width", "1px") + .style("border-radius", "5px") + .style("padding", "10px 50px") + + var mouseover = function(d) { + Tooltip.style("visibility", "visible") + } + var mousemove = function(d) { + Tooltip + .html(` +

${d.key}

+

${defaults.value_text}: ${d.value}

+

${defaults.percent_text}: ${(d.area * 100).toFixed(1)} %

+ `) + .style("left", function() { + + var width = this.getBoundingClientRect().width + + if(event.clientX - width > 0){ + return (event.pageX - $(elementId).offset().left ) - width + "px" + } + else{ + return (event.pageX - $(elementId).offset().left ) + "px" + } + + }) + .style("top", function() { + return (event.pageY - $(elementId).offset().top) + 10 + "px" + }) + + + } + var mouseleave = function(d) { + Tooltip.style("visibility", "hidden") + } + + if (data instanceof Array) { + root = { key: rname, values: data }; + } else { + root = data; + } + + initialize(root); + accumulate(root); + layout(root); + display(root); + + function initialize(root) { + root.x = root.y = 0; + root.dx = width; + root.dy = height; + root.depth = 0; + } + + function accumulate(d) { + return (d._children = d.values) + ? d.value = d.values.reduce(function(p, v) { return p + accumulate(v); }, 0) + : d.value; + } + + function layout(d) { + if (d._children) { + treemap.nodes({_children: d._children}); + d._children.forEach(function(c) { + c.x = d.x + c.x * d.dx; + c.y = d.y + c.y * d.dy; + c.dx *= d.dx; + c.dy *= d.dy; + c.parent = d; + layout(c); + }); + } + } + + function display(d) { + + grandparent + .datum(d.parent) + .on("click", transition) + .select("text") + .text(name(d)); + + var g1 = svg.insert("g", ".grandparent") + .datum(d) + .attr("class", "depth"); + + var g = g1.selectAll("g") + .data(d._children) + .enter().append("g").on("mouseover", mouseover).on("mousemove", mousemove).on("mouseleave", mouseleave); + + g.filter(function(d) { return d._children; }) + .classed("children", true) + .on("click", transition); + + var children = g.selectAll(".child") + .data(function(d) { return d._children || [d]; }) + .enter().append("g"); + + children.append("rect") + .attr("class", "child") + .call(rect) + + g.append("rect") + .attr("class", "parent") + .call(rect); + + var t = g.append("text") + .attr("class", "ptext") + .attr("dy", ".75em") + + t.append("tspan") + .attr("class", "tspan-treemap") + .text(function(d) { return d.key; }); + t.append("tspan") + .attr("class", "tspan-treemap") + .attr("dy", "1.2em") + .text(function(d) { + return (d.area * 100).toFixed(1) + "%"; + }); + t.call(text); + + g.selectAll("rect") + .style("fill", function(d) { + return color(d.area); + }); + + function transition(d) { + if (transitioning || !d) return; + transitioning = true; + + var g2 = display(d), + t1 = g1.transition().duration(750), + t2 = g2.transition().duration(750); + + // Update the domain only after entering new elements. + x.domain([d.x, d.x + d.dx]); + y.domain([d.y, d.y + d.dy]); + + // Enable anti-aliasing during the transition. + svg.style("shape-rendering", null); + + // Draw child nodes on top of parent nodes. + svg.selectAll(".depth").sort(function(a, b) { return a.depth - b.depth; }); + + // Fade-in entering text. + g2.selectAll("text").style("fill-opacity", 0); + + // Transition to the new view. + t1.selectAll(".ptext").call(text).style("fill-opacity", 0); + t1.selectAll(".ctext").call(text2).style("fill-opacity", 0); + t2.selectAll(".ptext").call(text).style("fill-opacity", 1); + t2.selectAll(".ctext").call(text2).style("fill-opacity", 1); + t1.selectAll("rect").call(rect); + t2.selectAll("rect").call(rect); + + // Remove the old node when the transition is finished. + t1.remove().each("end", function() { + svg.style("shape-rendering", "crispEdges"); + transitioning = false; + }); + } + + return g; + } + + function text(text) { + + text.selectAll("tspan") + .attr("x", function(d) { return x(d.x) + 6; }) + + text.attr("x", function(d) { return x(d.x) + 6; }) + .attr("y", function(d) { return y(d.y) + 6; }) + .style("opacity", function(d) { + + var rect = this.getBoundingClientRect() + + if(rect.width < x(d.x + d.dx) - x(d.x)){ + if(rect.height < y(d.y + d.dy) - y(d.y)){ + return 1 + } + else{ + return 0 + } + } + else{ + return 0 + } + + }); + } + + function text2(text) { + text.attr("x", function(d) { return x(d.x + d.dx) - this.getComputedTextLength() - 6; }) + .attr("y", function(d) { return y(d.y + d.dy) - 6; }) + .style("opacity", function(d) { + + var rect = this.getBoundingClientRect() + + if(rect.width < x(d.x + d.dx) - x(d.x)){ + if(rect.height < y(d.y + d.dy) - y(d.y)){ + return 1 + } + else{ + return 0 + } + } + else{ + return 0 + } + + }); + } + + function rect(rect) { + rect.attr("x", function(d) { return x(d.x); }) + .attr("y", function(d) { return y(d.y); }) + .attr("width", function(d) { return x(d.x + d.dx) - x(d.x); }) + .attr("height", function(d) { return y(d.y + d.dy) - y(d.y); }); + } + + function name(d) { + return d.parent + ? name(d.parent) + " / " + d.key + : d.key; + } + + }), + didInsertElement: function() { + Ember.run.scheduleOnce('afterRender',this , function() { + d3.select(this.get('id')).selectAll('svg').remove(); + this.get('treemap'); + }); + }, + update: observer('i18n.display', 'search', function() { + d3.select(this.get('id')).selectAll('svg').remove(); + this.get('treemap'); + }) +}); diff --git a/app/controllers/index.js b/app/controllers/index.js index 6f86388e..b47f3bc4 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -19,6 +19,43 @@ export default Ember.Controller.extend({ showLocations: computed.notEmpty('featureToggle.index_locations'), showFarmAndLand: computed.notEmpty('featureToggle.index_agproducts'), + + locationsData: computed('model.locations', 'i18n.locale', function() { + let locations = get(this, 'model.locations'); + let locale = this.get('i18n').display + + return locations.map(function(location){ + return {id: location.id, text: location.get(`name_short_${locale}`) } + }) + }), + + industriesData: computed('model.industries', 'i18n.locale', function() { + let industries = get(this, 'model.industries'); + let locale = this.get('i18n').display + + return industries.map(function(industry){ + return {id: industry.id, text: industry.get(`name_short_${locale}`) + " (" + industry.get('code') + ")" } + }) + }), + + productsData: computed('model.products', 'i18n.locale', function() { + let products = get(this, 'model.products'); + let locale = this.get('i18n').display + + return products.map(function(product){ + return {id: product.id, text: product.get(`name_short_${locale}`) + " (" + product.get('code') + ")" } + }) + }), + + agproductsData: computed('model.agproducts', 'i18n.locale', function() { + let agproducts = get(this, 'model.agproducts'); + let locale = this.get('i18n').display + + return agproducts.map(function(agproduct){ + return {id: agproduct.id, text: agproduct.get(`name_${locale}`) } + }) + }), + products: computed.filter('model.products', function (product) { let id = get(this, 'productIds'); return _.contains(`${id}`, get(product, 'id')); diff --git a/app/controllers/industry/show.js b/app/controllers/industry/show.js index d4031885..7df59856 100644 --- a/app/controllers/industry/show.js +++ b/app/controllers/industry/show.js @@ -44,6 +44,25 @@ export default Ember.Controller.extend({ }), hasChildrenIndustries: computed('model.classIndustries', function() { return this.get('model.classIndustries').length; - }) + }), + init: function(){ + Ember.run.schedule("afterRender", this, function() { + + }) + }, + actions: { + transitionLocation(id) { + this.transitionToRoute('location.show', id); + }, + transitionProduct(id) { + this.transitionToRoute('product.show', id); + }, + transitionIndustry(id) { + this.transitionToRoute('industry.show', id); + }, + transitionAgproduct(id) { + this.transitionToRoute('agproduct.show', id); + }, + } }); diff --git a/app/controllers/search.js b/app/controllers/search.js index a348ab8f..a9e974cf 100644 --- a/app/controllers/search.js +++ b/app/controllers/search.js @@ -9,6 +9,19 @@ export default Ember.Controller.extend({ entity: ['product', 'industry', 'location', 'rural'], query: null, filter: null, + modelData: computed('model', 'i18n.locale', function() { + let model = get(this, 'model'); + let locale = this.get('i18n').display + + return model.map(function(models){ + if(models.get('profileName') === "agproduct"){ + return {id: models.id, text: models.get(`name_${locale}`) } + } + else{ + return {id: models.id, text: models.get(`name_short_${locale}`) + " (" + models.get('code') + ")" } + } + }) + }), search: computed('query', function() { return this.get('query'); }), @@ -92,7 +105,19 @@ export default Ember.Controller.extend({ actions:{ toggleReferenceKey(key) { this.set("referenceKey", key); - } + }, + transitionLocation(id) { + this.transitionToRoute('location.show', id); + }, + transitionProduct(id) { + this.transitionToRoute('product.show', id); + }, + transitionIndustry(id) { + this.transitionToRoute('industry.show', id); + }, + transitionAgproduct(id) { + this.transitionToRoute('agproduct.show', id); + }, } }); diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index 9d748488..004e5f2b 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -16,6 +16,15 @@ export default Ember.Controller.extend({ drawerChangeGraphIsOpen: false, drawerQuestionsIsOpen: false, + locationsData: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.locations')) + + return locations.filter(item => item[1].level === "department").map((item) => { + return {id:item[1].id, text:item[1].name_short_es} + }) + }), + firstYear: computed('model', 'entityType', 'source', 'featureToggle', function(){ // Handle the situation where we're not looking at a location profile but // at a thing-profile like livestock profile. In that case since we're only @@ -386,7 +395,7 @@ export default Ember.Controller.extend({ visualizationComponent: computed('visualization', function(){ let visualization = this.get('visualization'); if(visualization === 'treemap') { - return 'vistk-treemap'; + return 'zoomable-treemap'; } else if(visualization === 'multiples') { return 'small-multiples-set'; } else if(visualization === 'scatter') { diff --git a/app/index.html b/app/index.html index 3c507e3a..368c816f 100644 --- a/app/index.html +++ b/app/index.html @@ -23,7 +23,13 @@ - + + + + + + + @@ -37,6 +43,7 @@ + {{content-for 'head-footer'}} @@ -44,9 +51,27 @@ - - - + + + + + + + + + + + + + + + + + + + + + {{content-for 'body-footer'}} diff --git a/app/locales/en-col/translations.js b/app/locales/en-col/translations.js index 903184ba..7fd59f68 100644 --- a/app/locales/en-col/translations.js +++ b/app/locales/en-col/translations.js @@ -297,6 +297,7 @@ export default { "graph_builder.explanation.product.partners.import_value": "Shows where Colombia imports this product from, nested by world regions. Source: DIAN.", "graph_builder.explanation.show": "Show", "graph_builder.multiples.show_all": "Show All", + "graph_builder.types": "Available graphics", "graph_builder.page_title.agproduct.departments.land_harvested": "What departments harvest this agricultural product?", "graph_builder.page_title.agproduct.departments.land_sown": "What departments sow this agricultural product?", "graph_builder.page_title.agproduct.departments.production_tons": "What departments produce this agricultural product?", @@ -419,7 +420,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "to", - "graph_builder.settings.year": "Years", + "graph_builder.settings.year": "Years selector", "graph_builder.settings.year.next": "Next", "graph_builder.settings.year.previous": "Previous", "graph_builder.table.agproduct": "Agricultural Product", @@ -528,6 +529,8 @@ export default { "index.complexity_head": "The complexity advantage", "index.complexity_subhead": "Countries that export complex products, which require a lot of knowledge, grow faster than those that export raw materials. Using the methods of measuring and visualizing economic complexity developed by Harvard University, Datlas helps to explore the production and export possibilities of every city and department in Colombia.", "index.country_profile": "Read the profile for Colombia", + "index.country_profile_p1": "Read the profile", + "index.country_profile_p2": "Of colombia", "index.dropdown.industries": "461,488", "index.dropdown.locations": "41,87,34,40", "index.dropdown.products": "1143,87", @@ -536,8 +539,13 @@ export default { "index.future_subhead": "Scatterplots and network diagrams help find the untapped markets best suited to a city or a department.", "index.graphbuilder.id": "87", "index.header_h1": "The Colombian Atlas of Economic Complexity", + "index.header_h1_add": "You want to know", + "index.header_h1_p1": "The colombian atlas of", + "index.header_h1_p2": "Economic complexity", "index.header_head": "You haven\u2019t seen Colombia like this before", "index.header_subhead": "Visualize the possibilities for industries, exports and locations across Colombia.", + "index.header_subhead_add": "Which sectors employ more people in Bogota?", + "index.button_more_information": "More information", "index.industry_head": "Learn about an industry", "index.industry_q1": "Where in Colombia does the chemical industry employ the most people?", "index.industry_q1.id": "461", @@ -563,8 +571,11 @@ export default { "index.profiles_head": "Start with our profiles", "index.profiles_subhead": "Just the essentials, presented as a one-page summary", "index.questions_head": "New 2016 update!
We\u2019re not a crystal ball, but we can answer a lot of questions", + "index.questions_head_p1": "Updates", + "index.questions_head_p2": "External trade modules and sectors", "index.questions_subhead": "index.questions_subhead", "index.research_head": "Research featured in", + "index.sophistication_route": "Product sophistication and diversification route", "industry.show.avg_wages": "Average wages ({{year}})", "industry.show.employment": "Employment ({{year}})", "industry.show.employment_and_wages": "Formal employment and wages", @@ -616,7 +627,8 @@ export default { "pageheader.rankings": "Rankings", "pageheader.search_link": "Search", "pageheader.search_placeholder": "Search for a location, industry, product or rural activity", - "pageheader.search_placeholder.industry": "Search for an industry", + "pageheader.search_placeholder.header": "Make a search by", + "pageheader.search_placeholder.industry": "Industry or by CIIU code", "pageheader.search_placeholder.location": "Search for a location", "pageheader.search_placeholder.product": "Search for a product", "pageheader.search_placeholder.rural": "Search for rural activities", @@ -652,6 +664,15 @@ export default { "search.results_nonag": "Non-agricultural activities", "search.results_products": "Products", "search.results_rural": "Rural activities", + "search.sophistication_path_place": "Path of sophistication and diversification of location", + "search.sophistication_path_product": "Path of sophistication and diversification of product", + "search.message.p1": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.", + "search.message.p2": "Use the question mark to expand the information.", + "search.modal.title": "CIIU Code", + "search.modal.p1": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", + "search.placeholder.select2": "Search by Name or CIIU Code", + "search.modal.close": "Close", "table.export_data": "Export Data", - "thousands_delimiter": "," + "thousands_delimiter": ",", + "header_nav.search": "Search by" }; diff --git a/app/locales/en-col/translations.original b/app/locales/en-col/translations.original index 7c24733a..163a68fc 100644 --- a/app/locales/en-col/translations.original +++ b/app/locales/en-col/translations.original @@ -365,7 +365,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "to", - "graph_builder.settings.year": "Years", + "graph_builder.settings.year": "Years selector", "graph_builder.settings.year.next": "Next", "graph_builder.settings.year.previous": "Previous", "graph_builder.table.agproduct": "Agricultural Product", diff --git a/app/locales/en-col/translations_2016.js b/app/locales/en-col/translations_2016.js index f8471f68..a0dea0f5 100644 --- a/app/locales/en-col/translations_2016.js +++ b/app/locales/en-col/translations_2016.js @@ -419,7 +419,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "to", - "graph_builder.settings.year": "Years", + "graph_builder.settings.year": "Years selector", "graph_builder.settings.year.next": "Next", "graph_builder.settings.year.previous": "Previous", "graph_builder.table.agproduct": "Agricultural Product", diff --git a/app/locales/en-col/translationsold.js b/app/locales/en-col/translationsold.js index 7c24733a..163a68fc 100644 --- a/app/locales/en-col/translationsold.js +++ b/app/locales/en-col/translationsold.js @@ -365,7 +365,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "to", - "graph_builder.settings.year": "Years", + "graph_builder.settings.year": "Years selector", "graph_builder.settings.year.next": "Next", "graph_builder.settings.year.previous": "Previous", "graph_builder.table.agproduct": "Agricultural Product", diff --git a/app/locales/en-mex/translations.js b/app/locales/en-mex/translations.js index eee80795..6101d223 100644 --- a/app/locales/en-mex/translations.js +++ b/app/locales/en-mex/translations.js @@ -212,6 +212,7 @@ export default { "graph_builder.explanation.product.partners.import_value": "Shows where Mexico imports this product from, nested by world regions. Source: SAT, IMSS and own calculations by CID.", "graph_builder.explanation.show": "Show", "graph_builder.multiples.show_all": "Show All", + "graph_builder.types": "Available graphics", "graph_builder.page_title.industry.cities.employment": "What cities in Mexico account for a larger share of employment in this industry?", "graph_builder.page_title.industry.cities.wages": "What cities in Mexico acoount for a larger share of wages paid in this industry?", "graph_builder.page_title.industry.departments.employment": "Where in Mexico does this industry employ the most people?", @@ -287,7 +288,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "to", - "graph_builder.settings.year": "Years", + "graph_builder.settings.year": "Years selector", "graph_builder.settings.year.next": "Next", "graph_builder.settings.year.previous": "Previous", "graph_builder.table.average_wages": "Avg. wage, MX$ (in thousands)", @@ -358,6 +359,8 @@ export default { "index.complexity_head": "The complexity advantage", "index.complexity_subhead": "Countries that export complex products, which require a lot of knowledge, grow faster than those that export raw materials. Researchers at Harvard University have pioneered a way to measure and visualize the complexity of every export and industry in Mexico.", "index.country_profile": "Read the profile for Mexico", + "index.country_profile_p1": "Read the profile", + "index.country_profile_p2": "Of colombia", "index.dropdown.industries": "294,359", "index.dropdown.locations": "2533,2501,2511,2539", "index.dropdown.products": "1143,87", @@ -365,8 +368,13 @@ export default { "index.future_subhead": "Find the untapped markets best suited to your location", "index.graphbuilder.id": "87", "index.header_h1": "The Mexican Atlas of Economic Complexity", + "index.header_h1_add": "You want to know", + "index.header_h1_p1": "The colombian atlas of", + "index.header_h1_p2": "Economic complexity", "index.header_head": "You haven\u2019t seen Mexico like this before", "index.header_subhead": "Visualize the possibilities for industries, exports and locations across Mexico.", + "index.header_subhead_add": "Which sectors employ more people in Bogota?", + "index.button_more_information": "More information", "index.industry_head": "Learn about an industry", "index.industry_q1": "Where in Mexico does the insurance industry employ the most people?", "index.industry_q1.id": "294", @@ -390,8 +398,11 @@ export default { "index.profiles_head": "Start with our profiles", "index.profiles_subhead": "Just the essentials, presented as a one-page summary", "index.questions_head": "We\u2019re not a crystal ball, but we can answer a lot of questions", + "index.questions_head_p1": "Updates", + "index.questions_head_p2": "External trade modules and sectors", "index.questions_subhead": "But we can answer a lot of questions.", "index.research_head": "Research featured in", + "index.sophistication_route": "Product sophistication and diversification route", "industry.show.avg_wages": "Average wages ({{year}})", "industry.show.employment": "Employment ({{year}})", "industry.show.employment_and_wages": "Employment and wages", @@ -439,7 +450,8 @@ export default { "pageheader.rankings": "Rankings", "pageheader.search_link": "Search", "pageheader.search_placeholder": "Search for a location, product or industry", - "pageheader.search_placeholder.industry": "Search for a industry", + "pageheader.search_placeholder.header": "Make a search by", + "pageheader.search_placeholder.industry": "Industry or by CIIU code", "pageheader.search_placeholder.location": "Search for a location", "pageheader.search_placeholder.product": "Search for a product", "rankings.explanation.body": "", @@ -466,6 +478,15 @@ export default { "search.results_industries": "Industries", "search.results_locations": "Locations", "search.results_products": "Products", + "search.sophistication_path_place": "Path of sophistication and diversification of location", + "search.sophistication_path_product": "Path of sophistication and diversification of product", + "search.message.p1": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.", + "search.message.p2": "Use the question mark to expand the information.", + "search.modal.title": "CIIU Code", + "search.modal.p1": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", + "search.placeholder.select2": "Search by Name or CIIU Code", + "search.modal.close": "Close", "table.export_data": "Export Data", - "thousands_delimiter": "," -}; \ No newline at end of file + "thousands_delimiter": ",", + "header_nav.search": "Search by" +}; diff --git a/app/locales/en-peru/translations.js b/app/locales/en-peru/translations.js index a57eefc8..0ba1107e 100644 --- a/app/locales/en-peru/translations.js +++ b/app/locales/en-peru/translations.js @@ -208,6 +208,7 @@ export default { "graph_builder.explanation.product.partners.import_value": "Shows where Peru imports this product from, nested by world regions. Source: DIAN.", "graph_builder.explanation.show": "Show", "graph_builder.multiples.show_all": "Show All", + "graph_builder.types": "Available graphics", "graph_builder.page_title.industry.cities.employment": "What cities in Mexico does this industry employ the most people?", "graph_builder.page_title.industry.cities.wages": "What cities in Peru does this industry pay the highest total wages?", "graph_builder.page_title.industry.departments.employment": "", @@ -283,7 +284,7 @@ export default { "graph_builder.settings.rca.greater": "RCA greater than or equal 1", "graph_builder.settings.rca.less": "RCA less than 1", "graph_builder.settings.to": "to", - "graph_builder.settings.year": "Years", + "graph_builder.settings.year": "Years selector", "graph_builder.settings.year.next": "Next", "graph_builder.settings.year.previous": "Previous", "graph_builder.table.average_wages": "Avg. wage, MX$ (in thousands)", @@ -353,6 +354,8 @@ export default { "index.complexity_head": "The complexity advantage", "index.complexity_subhead": "Economies that export more complex products, which require a lot of knowledge, grow faster. By using the methods to measure and visualize the complexity pioneered at Harvard University, the Atlas of Economic Complexity allows to understand the complexity, and the productive and export possibilities of the departments and provinces in Peru.", "index.country_profile": "Read the profile for Peru", + "index.country_profile_p1": "Read the profile", + "index.country_profile_p2": "Of colombia", "index.dropdown.industries": "294,359", "index.dropdown.locations": "206,2501,87,2539", "index.dropdown.products": "1143,87", @@ -360,8 +363,13 @@ export default { "index.future_subhead": "Find the untapped export products best suited to your department or province.", "index.graphbuilder.id": "87", "index.header_h1": "The Peruvian Atlas of Economic Complexity", + "index.header_h1_add": "You want to know", + "index.header_h1_p1": "The colombian atlas of", + "index.header_h1_p2": "Economic complexity", "index.header_head": "You haven\u2019t seen Peru like this before", "index.header_subhead": "Visualize the possibilities for exports and locations across Peru.", + "index.header_subhead_add": "Which sectors employ more people in Bogota?", + "index.button_more_information": "More information", "index.industry_head": "", "index.industry_q1": "", "index.industry_q1.id": "294", @@ -385,8 +393,11 @@ export default { "index.profiles_head": "Start with our profiles", "index.profiles_subhead": "Just the essentials, presented as a one-page summary", "index.questions_head": "We\u2019re not a crystal ball, but we can answer a lot of questions.", + "index.questions_head_p1": "Updates", + "index.questions_head_p2": "External trade modules and sectors", "index.questions_subhead": "But we can answer a lot of questions.", "index.research_head": "Research featured in", + "index.sophistication_route": "Product sophistication and diversification route", "industry.show.avg_wages": "Average wages ({{year}})", "industry.show.employment": "Employment ({{year}})", "industry.show.employment_and_wages": "Employment and wages", @@ -433,7 +444,8 @@ export default { "pageheader.rankings": "Rankings", "pageheader.search_link": "Search", "pageheader.search_placeholder": "Search for location or export product", - "pageheader.search_placeholder.industry": "Search for a industry", + "pageheader.search_placeholder.header": "Make a search by", + "pageheader.search_placeholder.industry": "Industry or by CIIU code", "pageheader.search_placeholder.location": "Search for location", "pageheader.search_placeholder.product": "Search for an export product", "rankings.explanation.body": "", @@ -460,6 +472,15 @@ export default { "search.results_industries": "Industries", "search.results_locations": "Locations", "search.results_products": "Export products", + "search.sophistication_path_place": "Path of sophistication and diversification of location", + "search.sophistication_path_product": "Path of sophistication and diversification of product", + "search.message.p1": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.", + "search.message.p2": "Use the question mark to expand the information.", + "search.modal.title": "CIIU Code", + "search.modal.p1": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", + "search.placeholder.select2": "Search by Name or CIIU Code", + "search.modal.close": "Close", "table.export_data": "Export data", - "thousands_delimiter": "," -}; \ No newline at end of file + "thousands_delimiter": ",", + "header_nav.search": "Search by" +}; diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index 49cb7602..541efb83 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -297,6 +297,7 @@ export default { "graph_builder.explanation.product.partners.import_value": "Muestra el origen de las importaciones de este producto, por pa\u00eds y regi\u00f3n del mundo. Fuente: DIAN.", "graph_builder.explanation.show": "Muestre m\u00e1s", "graph_builder.multiples.show_all": "Mostrar todo", + "graph_builder.types": "Graficas disponibles", "graph_builder.page_title.agproduct.departments.land_harvested": "\u00bfQu\u00e9 departamentos cosechan este producto agropecuario?", "graph_builder.page_title.agproduct.departments.land_sown": "\u00bfQu\u00e9 departamentos siembran este producto agropecuario?", "graph_builder.page_title.agproduct.departments.production_tons": "\u00bfQu\u00e9 departamentos producen este producto agropecuario?", @@ -419,7 +420,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "a", - "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year": "Selector de A\u00f1os", "graph_builder.settings.year.next": "Siguiente", "graph_builder.settings.year.previous": "Anterior", "graph_builder.table.agproduct": "Producto Agr\u00edcola", @@ -528,6 +529,8 @@ export default { "index.complexity_head": "La ventaja de la complejidad", "index.complexity_subhead": "Los pa\u00edses que exportan productos complejos, que requieren una gran cantidad de conocimientos, crecen m\u00e1s r\u00e1pido que los que exportan materias primas. Usando los m\u00e9todos para medir y visualizar la complejidad desarrollados por la Universidad de Harvard, Datlas permite explorar las posibilidades productivas y de exportaci\u00f3n de los departamentos y ciudades colombianas.", "index.country_profile": "Lea el perfil de Colombia", + "index.country_profile_p1": "Lea el perfil", + "index.country_profile_p2": "De colombia", "index.dropdown.industries": "461,488", "index.dropdown.locations": "41,87,34,40", "index.dropdown.products": "1143,87", @@ -536,8 +539,13 @@ export default { "index.future_subhead": "Los gr\u00e1ficos de dispersi\u00f3n y diagramas de redes permiten encontrar los sectores productivos que tienen las mejores posibilidades en un departamento o ciudad.", "index.graphbuilder.id": "87", "index.header_h1": "El Atlas Colombiano de Complejidad Econ\u00f3mica", + "index.header_h1_add": "Quires saber", + "index.header_h1_p1": "El atlas colombiano de", + "index.header_h1_p2": "Complejidad econ\u00f3mica", "index.header_head": "Colombia como usted nunca la ha visto", "index.header_subhead": "Visualice las posibilidades de cualquier sector, cualquier producto de exportaci\u00f3n o cualquier lugar en Colombia.", + "index.header_subhead_add": "\u00bfQue sectores emplean m\u00e1s gente en bogot\u00e1?", + "index.button_more_information": "M\u00e1s informaci\u00f3n", "index.industry_head": "Ent\u00e9rese de un sector", "index.industry_q1": "\u00bfEn d\u00f3nde emplea m\u00e1s personas el sector qu\u00edmico de Colombia?", "index.industry_q1.id": "461", @@ -563,8 +571,11 @@ export default { "index.profiles_head": "Comience por los perfiles", "index.profiles_subhead": "S\u00f3lo lo esencial, en un resumen de una p\u00e1gina", "index.questions_head": "Nueva actualizaci\u00f3n 2017: m\u00f3dulos comercio exterior y sectores ", + "index.questions_head_p1": "Actualizaciones", + "index.questions_head_p2": "M\u00f3dulos comercio exterior y sectores", "index.questions_subhead": "index.questions_subhead", "index.research_head": "Investigaci\u00f3n mencionada en", + "index.sophistication_route": "Ruta de sofisticaci\u00f3n y diversificaci\u00f3n de producto", "industry.show.avg_wages": "Salarios promedio ({{year}})", "industry.show.employment": "Empleo ({{year}})", "industry.show.employment_and_wages": "Empleo formal y salarios", @@ -616,7 +627,8 @@ export default { "pageheader.rankings": "Rankings", "pageheader.search_link": "Buscar", "pageheader.search_placeholder": "Busque un lugar, sector, producto o actividad rural", - "pageheader.search_placeholder.industry": "Busque un sector", + "pageheader.search_placeholder.header": "Realice una busqueda por", + "pageheader.search_placeholder.industry": "Sector o por c\u00f3digo CIIU", "pageheader.search_placeholder.location": "Busque un lugar", "pageheader.search_placeholder.product": "Busque un producto", "pageheader.search_placeholder.rural": "Busque actividades rurales", @@ -652,6 +664,15 @@ export default { "search.results_nonag": "Actividades no agropecuarias", "search.results_products": "Productos", "search.results_rural": "Actividades rurales", + "search.sophistication_path_place": "Ruta de sofisticacion y diversificacion de lugar", + "search.sophistication_path_product": "Ruta de sofisticacion y diversificacion de producto", + "search.message.p1": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.", + "search.message.p2": "Haga uso del interrogante para ampliar la información.", + "search.modal.title": "CODIGO CIIU", + "search.modal.p1": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", + "search.placeholder.select2": "Busqueda por Nombre o Codigo CIIU", + "search.modal.close": "Cerrar", "table.export_data": "Descargar Datos", - "thousands_delimiter": "." + "thousands_delimiter": ".", + "header_nav.search": "REALICE UNA BUSQUEDA POR" }; diff --git a/app/locales/es-col/translations.original b/app/locales/es-col/translations.original index 9c3865a5..a5249729 100644 --- a/app/locales/es-col/translations.original +++ b/app/locales/es-col/translations.original @@ -365,7 +365,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "a", - "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year": "Selector de A\u00f1os", "graph_builder.settings.year.next": "Siguiente", "graph_builder.settings.year.previous": "Anterior", "graph_builder.table.agproduct": "", diff --git a/app/locales/es-col/translations_2016.js b/app/locales/es-col/translations_2016.js index 6f4a721d..7a0cb712 100644 --- a/app/locales/es-col/translations_2016.js +++ b/app/locales/es-col/translations_2016.js @@ -419,7 +419,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "a", - "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year": "Selector de A\u00f1os", "graph_builder.settings.year.next": "Siguiente", "graph_builder.settings.year.previous": "Anterior", "graph_builder.table.agproduct": "Producto Agr\u00edcola", diff --git a/app/locales/es-col/translationsold.js b/app/locales/es-col/translationsold.js index 9c3865a5..a5249729 100644 --- a/app/locales/es-col/translationsold.js +++ b/app/locales/es-col/translationsold.js @@ -365,7 +365,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "a", - "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year": "Selector de A\u00f1os", "graph_builder.settings.year.next": "Siguiente", "graph_builder.settings.year.previous": "Anterior", "graph_builder.table.agproduct": "", diff --git a/app/locales/es-mex/translations.js b/app/locales/es-mex/translations.js index 16bea1a5..2b997ed0 100644 --- a/app/locales/es-mex/translations.js +++ b/app/locales/es-mex/translations.js @@ -212,6 +212,7 @@ export default { "graph_builder.explanation.product.partners.import_value": "Muestra el origen de las importaciones de este producto, por pa\u00edses de origen agrupados por regi\u00f3n del mundo. Fuente: SAT, IMSS y c\u00e1lculos propios del CID.", "graph_builder.explanation.show": "Muestre m\u00e1s", "graph_builder.multiples.show_all": "Mostrar todo", + "graph_builder.types": "Graficas disponibles", "graph_builder.page_title.industry.cities.employment": "\u00bfQu\u00e9 ciudades de Mexico representan una porci\u00f3n mayor del empleo este sector?", "graph_builder.page_title.industry.cities.wages": "\u00bfQu\u00e9 ciudades en Mexico representan una porci\u00f3n mayor de los salarios pagados en este sector?", "graph_builder.page_title.industry.departments.employment": "\u00bfQu\u00e9 lugares en M\u00e9xico ocupan m\u00e1s gente en esta industria?", @@ -287,7 +288,7 @@ export default { "graph_builder.settings.rca.greater": "> 1", "graph_builder.settings.rca.less": "< 1", "graph_builder.settings.to": "a", - "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year": "Selector de A\u00f1os", "graph_builder.settings.year.next": "Pr\u00f3ximo", "graph_builder.settings.year.previous": "Previo", "graph_builder.table.average_wages": "Salarios promedio, MX$ (miles de pesos)", @@ -358,6 +359,8 @@ export default { "index.complexity_head": "La ventaja de la complejidad", "index.complexity_subhead": "Los pa\u00edses que exportan productos complejos, que requieren una gran cantidad de conocimientos, crecen m\u00e1s r\u00e1pido que los que exportan materias primas. Usando los m\u00e9todos de medir y visualizar la complejidad desarrollados por la Universidad de Harvard, el Atlas de Complejidad Econ\u00f3mica permite entender la complejidad y las posibilidades productivas y de exportaci\u00f3n de las entidades y ciudades mexicanas.", "index.country_profile": "Lea el perfil de M\u00e9xico", + "index.country_profile_p1": "Lea el perfil", + "index.country_profile_p2": "De colombia", "index.dropdown.industries": "294,359", "index.dropdown.locations": "2533,2501,2511,2539,2513", "index.dropdown.products": "1143,87", @@ -365,8 +368,13 @@ export default { "index.future_subhead": "Encuentre qu\u00e9 exportaciones o industrias tienen las mejores posibilidades en su entidad o ciudad.", "index.graphbuilder.id": "87", "index.header_h1": "Atlas de complejidad econ\u00f3mica", + "index.header_h1_add": "Quires saber", + "index.header_h1_p1": "El atlas colombiano de", + "index.header_h1_p2": "Complejidad econ\u00f3mica", "index.header_head": "M\u00e9xico como usted nunca lo ha visto", "index.header_subhead": "Visualice las posibilidades de cualquier industria, cualquier producto de exportaci\u00f3n o cualquier lugar en M\u00e9xico.", + "index.header_subhead_add": "\u00bfQue sectores emplean m\u00e1s gente en bogot\u00e1?", + "index.button_more_information": "M\u00e1s informaci\u00f3n", "index.industry_head": "Ent\u00e9rese de una industria", "index.industry_q1": "\u00bfD\u00f3nde emplea m\u00e1s gente el sector de seguros en M\u00e9xico?", "index.industry_q1.id": "294", @@ -390,8 +398,11 @@ export default { "index.profiles_head": "Comience por nuestros perfiles", "index.profiles_subhead": "S\u00f3lo lo esencial, en un resumen de una p\u00e1gina", "index.questions_head": "No somos una bola de cristal, pero podemos responder muchas preguntas", + "index.questions_head_p1": "Actualizaciones", + "index.questions_head_p2": "M\u00f3dulos comercio exterior y sectores", "index.questions_subhead": "Pero podemos responder muchas preguntas.", "index.research_head": "Investigaci\u00f3n mencionada en", + "index.sophistication_route": "Ruta de sofisticaci\u00f3n y diversificaci\u00f3n de producto", "industry.show.avg_wages": "Salarios promedio ({{year}})", "industry.show.employment": "Empleo ({{year}})", "industry.show.employment_and_wages": "Actividad econ\u00f3mica formal por industrias", @@ -439,7 +450,8 @@ export default { "pageheader.rankings": "Rankings", "pageheader.search_link": "Buscar", "pageheader.search_placeholder": "Busque el lugar, producto o sector", - "pageheader.search_placeholder.industry": "Busque un sector", + "pageheader.search_placeholder.header": "Realice una busqueda por", + "pageheader.search_placeholder.industry": "Sector o por c\u00f3digo CIIU", "pageheader.search_placeholder.location": "Busque un lugar", "pageheader.search_placeholder.product": "Busque un producto", "rankings.explanation.body": "", @@ -466,6 +478,15 @@ export default { "search.results_industries": "Sectores", "search.results_locations": "Lugares", "search.results_products": "Productos", + "search.sophistication_path_place": "Ruta de sofisticacion y diversificacion de lugar", + "search.sophistication_path_product": "Ruta de sofisticacion y diversificacion de producto", + "search.message.p1": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.", + "search.message.p2": "Haga uso del interrogante para ampliar la información.", + "search.modal.title": "CODIGO CIIU", + "search.modal.p1": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", + "search.placeholder.select2": "Busqueda por Nombre o Codigo CIIU", + "search.modal.close": "Cerrar", "table.export_data": "Descargar Datos", - "thousands_delimiter": "," -}; \ No newline at end of file + "thousands_delimiter": ",", + "header_nav.search": "REALICE UNA BUSQUEDA POR" +}; diff --git a/app/locales/es-peru/translations.js b/app/locales/es-peru/translations.js index 704a255a..4c371a1e 100644 --- a/app/locales/es-peru/translations.js +++ b/app/locales/es-peru/translations.js @@ -208,6 +208,7 @@ export default { "graph_builder.explanation.product.partners.import_value": "Muestra el origen de las importaciones de este producto, por pa\u00eds y regi\u00f3n del mundo. Fuente: DIAN.", "graph_builder.explanation.show": "Muestre m\u00e1s", "graph_builder.multiples.show_all": "Mostrar todo", + "graph_builder.types": "Graficas disponibles", "graph_builder.page_title.industry.cities.employment": "\u00bfQu\u00e9 ciudades en Mexico ocupan m\u00e1s gente en este sector?", "graph_builder.page_title.industry.cities.wages": "\u00bfQu\u00e9 ciudades en Peru tienen las mayores n\u00f3minas salariales en este sector?", "graph_builder.page_title.industry.departments.employment": "", @@ -283,7 +284,7 @@ export default { "graph_builder.settings.rca.greater": "RCA mayor o igual a 1", "graph_builder.settings.rca.less": "RCA menos de 1", "graph_builder.settings.to": "a", - "graph_builder.settings.year": "A\u00f1os", + "graph_builder.settings.year": "Selector de A\u00f1os", "graph_builder.settings.year.next": "Siguiente", "graph_builder.settings.year.previous": "Anterior", "graph_builder.table.average_wages": "Salarios promedio, MX$ (miles de pesos)", @@ -353,6 +354,8 @@ export default { "index.complexity_head": "La ventaja de la complejidad", "index.complexity_subhead": "Las econom\u00edas que exportan productos m\u00e1s complejos, que requieren una gran cantidad de conocimientos, crecen m\u00e1s r\u00e1pido. Usando los m\u00e9todos para medir y visualizar la complejidad desarrollados por la Universidad de Harvard, el Atlas de Complejidad Econ\u00f3mica permite entender la complejidad y las posibilidades productivas y de exportaci\u00f3n de los departamentos y provincias peruanos.", "index.country_profile": "Lea el perfil de Per\u00fa", + "index.country_profile_p1": "Lea el perfil", + "index.country_profile_p2": "De colombia", "index.dropdown.industries": "294,359", "index.dropdown.locations": "206,2501,87,2539", "index.dropdown.products": "1143,87", @@ -360,8 +363,13 @@ export default { "index.future_subhead": "Encuentre qu\u00e9 productos de exportaci\u00f3n tienen las mejores posibilidades en su departamento o provincia.", "index.graphbuilder.id": "87", "index.header_h1": "El Atlas Peruano de Complejidad Econ\u00f3mica", + "index.header_h1_add": "Quires saber", + "index.header_h1_p1": "El atlas colombiano de", + "index.header_h1_p2": "Complejidad econ\u00f3mica", "index.header_head": "Peru como usted nunca lo ha visto", "index.header_subhead": "Visualice las posibilidades de cualquier producto de exportaci\u00f3n o lugar en Per\u00fa.", + "index.header_subhead_add": "\u00bfQue sectores emplean m\u00e1s gente en bogot\u00e1?", + "index.button_more_information": "M\u00e1s informaci\u00f3n", "index.industry_head": "", "index.industry_q1": "", "index.industry_q1.id": "294", @@ -385,8 +393,11 @@ export default { "index.profiles_head": "Comience por nuestros perfiles", "index.profiles_subhead": "S\u00f3lo lo esencial, en un resumen de una p\u00e1gina", "index.questions_head": "No somos una bola de cristal, pero podemos responder muchas preguntas.", + "index.questions_head_p1": "Actualizaciones", + "index.questions_head_p2": "M\u00f3dulos comercio exterior y sectores", "index.questions_subhead": "Pero podemos responder muchas preguntas.", "index.research_head": "Investigaci\u00f3n mencionada en", + "index.sophistication_route": "Ruta de sofisticaci\u00f3n y diversificaci\u00f3n de producto", "industry.show.avg_wages": "Salarios promedio ({{year}})", "industry.show.employment": "Empleo ({{year}})", "industry.show.employment_and_wages": "Actividad econ\u00f3mica formal por industrias", @@ -433,7 +444,8 @@ export default { "pageheader.rankings": "Rankings", "pageheader.search_link": "Buscar", "pageheader.search_placeholder": "Busque el lugar o producto de exportaci\u00f3n", - "pageheader.search_placeholder.industry": "Busque un sector", + "pageheader.search_placeholder.header": "Realice una busqueda por", + "pageheader.search_placeholder.industry": "Sector o por c\u00f3digo CIIU", "pageheader.search_placeholder.location": "Busque un lugar", "pageheader.search_placeholder.product": "Busque un producto de exportaci\u00f3n", "rankings.explanation.body": "", @@ -460,6 +472,15 @@ export default { "search.results_industries": "Sectores", "search.results_locations": "Lugares", "search.results_products": "Productos de exportaci\u00f3n", + "search.sophistication_path_place": "Ruta de sofisticacion y diversificacion de lugar", + "search.sophistication_path_product": "Ruta de sofisticacion y diversificacion de producto", + "search.message.p1": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.", + "search.message.p2": "Haga uso del interrogante para ampliar la información.", + "search.modal.title": "CODIGO CIIU", + "search.modal.p1": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", + "search.placeholder.select2": "Busqueda por Nombre o Codigo CIIU", + "search.modal.close": "Cerrar", "table.export_data": "Descargar datos", - "thousands_delimiter": "," -}; \ No newline at end of file + "thousands_delimiter": ",", + "header_nav.search": "REALICE UNA BUSQUEDA POR" +}; diff --git a/app/styles/components/_components/_datatables.scss b/app/styles/components/_components/_datatables.scss new file mode 100644 index 00000000..0ce52bc9 --- /dev/null +++ b/app/styles/components/_components/_datatables.scss @@ -0,0 +1,63 @@ +.dataTables_filter label{ + display: inline-block; +} + +table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control, table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{ + padding-left: 50px; +} + +.table-hover tbody tr:hover{ + color: $colorBase; + background-color: $colorSecondary; + cursor: pointer; +} + +.dataTables_filter, .dataTables_info{ + color: white; +} + +.datlas thead{ + background-color: $colorSecondary; + color: $colorBase; +} + + +.datlas th, .datlas td{ + border: none; +} + +.even{ + background-color: $colorThree; +} + + +.table th, .table td{ + padding: 2rem; +} + +table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before, table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{ + background-color: $colorSecondary; + left: 15px; +} + + +.page-item.active .page-link{ + background-color: $colorBase; + border-color: $colorBase; +} + +.page-link, .page-link:hover{ + color: $colorBase; + background-color: $colorThree; + border-color: $colorBase; +} + +.page-item.disabled .page-link{ + color: $colorBase; + background-color: $colorThree; + border-color: $colorBase; +} + +.form-control-sm{ + font-size: 1.8rem; +} diff --git a/app/styles/components/_components/_modal.scss b/app/styles/components/_components/_modal.scss new file mode 100644 index 00000000..43dc8ac4 --- /dev/null +++ b/app/styles/components/_components/_modal.scss @@ -0,0 +1,12 @@ + +.modal-content{ + background-color: $colorBase; +} + +.modal-header, .modal-footer{ + border: none; +} + +.rect-principal{ + fill: $colorBase; +} diff --git a/app/styles/components/_components/_search.scss b/app/styles/components/_components/_search.scss index 9a253e19..9b592a6f 100755 --- a/app/styles/components/_components/_search.scss +++ b/app/styles/components/_components/_search.scss @@ -13,7 +13,7 @@ position: absolute; top: 0; right: 0; - + } } @@ -25,15 +25,11 @@ } .search { - transition: background $animationTime $animationEasing; - background: $colorGrayLightest; font-size: $fontSmall; font-weight: 300; padding: $baseSpace/2 $baseSpace; - width: 100%; - height: 100%; font-family: $sans; - border: solid 1px $colorWhite; + height: auto; &:active, &:focus { outline: 0; @@ -42,7 +38,6 @@ } } &::-webkit-input-placeholder { - transition: color $animationTime $animationEasing; color: $colorGrayLight; font-size: $fontSmall; } @@ -79,3 +74,8 @@ .search:invalid ~ .search__reset { display: none; } + +.seach__placeholder__title{ + font-size: 6rem; + color: $colorSecondary; +} diff --git a/app/styles/components/_components/_table.scss b/app/styles/components/_components/_table.scss index 738387e7..b587b6a8 100755 --- a/app/styles/components/_components/_table.scss +++ b/app/styles/components/_components/_table.scss @@ -64,4 +64,15 @@ } +.datlas-table th, .datlas-table td{ + vertical-align: middle; + border: none; +} + +.datlas-table .even{ + background-color: $colorThree; +} +.select2-container{ + flex: 1 1 auto !important; +} diff --git a/app/styles/components/_components/_treemap.scss b/app/styles/components/_components/_treemap.scss new file mode 100644 index 00000000..e4fe4e95 --- /dev/null +++ b/app/styles/components/_components/_treemap.scss @@ -0,0 +1,79 @@ +#chart { + background: #fff; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.title { + font-weight: bold; + font-size: 24px; + text-align: center; + margin-top: 6px; + margin-bottom: 6px; +} +text { + pointer-events: none; +} + +.grandparent text { + font-weight: bold; + font-size: 1.6rem; +} + +rect { + fill: none; + stroke: #fff; +} + +rect.parent, +.grandparent rect { + stroke-width: 3px; +} + +rect.parent { + pointer-events: none; +} + +.grandparent rect { + fill: orange; +} + +.grandparent:hover rect { + fill: #ee9700; +} + +.children rect.parent, +.grandparent rect { + cursor: pointer; +} + +.children rect.parent { + fill: #bbb; + fill-opacity: 1; +} + +.children:hover rect.child { + fill: #bbb; +} + +tspan{ + fill: white; +} + +rect{ + stroke: #292A48; +} + +.tspan-treemap{ + font-size: 1rem; +} + +.tab-content > .tab-pane:not(.active), +.pill-content > .pill-pane:not(.active) { + display: block; + height: 0; + overflow-y: hidden; +} + +.depth rect, .grandparent rect { + stroke: $colorBase; +} \ No newline at end of file diff --git a/app/styles/components/_modules/_buildermod.scss b/app/styles/components/_modules/_buildermod.scss index 15da5ba6..9eefe513 100755 --- a/app/styles/components/_modules/_buildermod.scss +++ b/app/styles/components/_modules/_buildermod.scss @@ -73,7 +73,6 @@ .buildermod__viz { position: relative; - min-height: 500px; &--white { background: $colorWhite; } diff --git a/app/styles/components/_modules/_header-nav.scss b/app/styles/components/_modules/_header-nav.scss new file mode 100644 index 00000000..5696dcee --- /dev/null +++ b/app/styles/components/_modules/_header-nav.scss @@ -0,0 +1,5 @@ +.header__nav__title{ + color: $colorYellow; + text-transform: uppercase; + font-size: 4rem; +} diff --git a/app/styles/components/_modules/_index.scss b/app/styles/components/_modules/_index.scss index 6d776610..8fb034e9 100755 --- a/app/styles/components/_modules/_index.scss +++ b/app/styles/components/_modules/_index.scss @@ -408,16 +408,20 @@ margin: 0; } -.stream__section__wrap__yellow{ +.title_yellow{ color: $colorYellow; text-transform: uppercase; font-size: 4rem; } -.stream__section__wrap__white{ +.text_yellow{ + color: $colorYellow; +} + +.title_white{ color: $colorWhite; text-transform: uppercase; - font-size: 5rem; + font-size: 4rem; } .stream__section__subhead__wrap__white{ diff --git a/app/styles/components/_modules/_layout.scss b/app/styles/components/_modules/_layout.scss index bcafd1b0..e6dc9093 100755 --- a/app/styles/components/_modules/_layout.scss +++ b/app/styles/components/_modules/_layout.scss @@ -32,3 +32,17 @@ .stream__article--no--indent { margin: $baseSpace*3; } + +.row-without-margin{ + margin: 0; +} + +.select2-selection--single { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.select2-drop li { + white-space: pre-line; +} diff --git a/app/styles/components/_modules/_pageheader.scss b/app/styles/components/_modules/_pageheader.scss index dd38d75f..21e3795a 100755 --- a/app/styles/components/_modules/_pageheader.scss +++ b/app/styles/components/_modules/_pageheader.scss @@ -19,6 +19,7 @@ margin: auto; padding:4vw; padding-top: 10vh; + padding-bottom: 5vh; } // Branding @@ -128,7 +129,7 @@ left: 2px; bottom: 2px; right: 2px; - background-color: $colorRed; + background-color: $colorBase; border-radius: $baseSpace / 2; } &:after { diff --git a/app/styles/components/_modules/_stream-header.scss b/app/styles/components/_modules/_stream-header.scss index 405e13b3..ace76fb3 100755 --- a/app/styles/components/_modules/_stream-header.scss +++ b/app/styles/components/_modules/_stream-header.scss @@ -268,6 +268,14 @@ .pr-md-x10{ padding-right: ($spacer * 10) !important; } + + .pt-md-x10{ + padding-top: ($spacer * 10) !important; + } + + .px-md-x10{ + padding: 0 ($spacer * 10); + } } .center-pills { diff --git a/app/styles/components/_variables.scss b/app/styles/components/_variables.scss index 4821429d..8e058d53 100755 --- a/app/styles/components/_variables.scss +++ b/app/styles/components/_variables.scss @@ -18,6 +18,7 @@ $serifSC: 'Alegreya SC', Georgia, serif; $colorBase: #292A48; $colorYellow: #FFCD00; $colorSecondary: #C2C4FF; +$colorThree: #7C7EAC; $colorBlack: rgb( 25, 25, 20 ); $colorGrayDark: rgb( 83, 83, 79 ); diff --git a/app/styles/components/_visualizations/_area-chart-multiples.scss b/app/styles/components/_visualizations/_area-chart-multiples.scss index 364d1341..b0bef2d7 100755 --- a/app/styles/components/_visualizations/_area-chart-multiples.scss +++ b/app/styles/components/_visualizations/_area-chart-multiples.scss @@ -44,6 +44,12 @@ } .chart__title { + color: $colorBase; + text-align: center !important; + background-color: $colorSecondary; + padding: 5px; + writing-mode: vertical-lr; + transform: rotate(180deg); font-weight: 500; font-size: $fontSmall; position: relative; @@ -66,7 +72,7 @@ .chart__wrap { font-size: $fontTiny; text { - fill: $colorSecondary; + fill: white; } } @@ -114,7 +120,7 @@ .axis--y { line { - stroke: $colorSecondary; + stroke: $colorWhite; fill: none; shape-rendering: crispEdges; pointer-events: none; @@ -126,7 +132,7 @@ } .marker_fixed{ - fill: #ee4036; + fill: #80D8FF; } .caption, .year, .marker { @@ -136,3 +142,19 @@ .hidden { opacity: 0; } + +.tooltip-max_value, .tooltip-value{ + fill: white; +} + +.max_value{ + fill: black !important; +} + +rect{ + stroke: none; +} + +.caption{ + fill: black !important; +} diff --git a/app/styles/components/components.scss b/app/styles/components/components.scss index 30789d2a..76cfea00 100755 --- a/app/styles/components/components.scss +++ b/app/styles/components/components.scss @@ -27,6 +27,9 @@ @import '_components/_tooltip'; @import '_components/_spinner'; @import '_components/_columns'; +@import '_components/_treemap'; +@import '_components/_datatables'; +@import '_components/_modal'; // Modules @import '_modules/_layout'; @@ -55,6 +58,7 @@ @import '_modules/_results'; @import '_modules/_explanation'; @import '_modules/_select-dropdown'; +@import '_modules/_header-nav'; // Visualizations @import '_visualizations/_dotplot'; diff --git a/app/templates/application.hbs b/app/templates/application.hbs index 01cd49aa..ed5fd0e2 100755 --- a/app/templates/application.hbs +++ b/app/templates/application.hbs @@ -5,7 +5,7 @@ {{outlet 'search'}} {{#if showStreamer }} -
+
{{ render 'header-nav' controller='application'}}
{{outlet}} diff --git a/app/templates/components/autocomplete-input-datlas.hbs b/app/templates/components/autocomplete-input-datlas.hbs new file mode 100644 index 00000000..9c0d94bd --- /dev/null +++ b/app/templates/components/autocomplete-input-datlas.hbs @@ -0,0 +1,12 @@ +
+ + +
+ + {{#if reset }} + + {{/if}} +
+ + +
diff --git a/app/templates/components/datlas-table.hbs b/app/templates/components/datlas-table.hbs new file mode 100644 index 00000000..efb85669 --- /dev/null +++ b/app/templates/components/datlas-table.hbs @@ -0,0 +1 @@ +
diff --git a/app/templates/components/graphbuilder-change-graph.hbs b/app/templates/components/graphbuilder-change-graph.hbs index e7da9f8c..065fe11c 100755 --- a/app/templates/components/graphbuilder-change-graph.hbs +++ b/app/templates/components/graphbuilder-change-graph.hbs @@ -1 +1,3 @@ -{{t description}} +
+ +
diff --git a/app/templates/components/graphbuilder-settings.hbs b/app/templates/components/graphbuilder-settings.hbs index 11351bff..cd61eeb9 100755 --- a/app/templates/components/graphbuilder-settings.hbs +++ b/app/templates/components/graphbuilder-settings.hbs @@ -1,6 +1,26 @@ {{#if canYearToggle}} {{#unless isSingleYear}} -
+ +
+

{{t 'graph_builder.settings.year'}}

+
+ +
+ +
+ +

{{year}}

+ +
+ + +
+ + + {{/unless}} {{/if}} {{#if isScatter }} +
+ {{/if}} diff --git a/app/templates/components/multiples-graph.hbs b/app/templates/components/multiples-graph.hbs index 8774eaaa..438ce6c0 100755 --- a/app/templates/components/multiples-graph.hbs +++ b/app/templates/components/multiples-graph.hbs @@ -1,6 +1,6 @@
-
diff --git a/app/templates/components/small-multiples-set.hbs b/app/templates/components/small-multiples-set.hbs index dad39c69..6a0a09a3 100755 --- a/app/templates/components/small-multiples-set.hbs +++ b/app/templates/components/small-multiples-set.hbs @@ -1,5 +1,5 @@ {{#unless isFiltered }} -

{{setTitle}}

+ {{/unless}} {{#if showTotal}} diff --git a/app/templates/components/stream-header.hbs b/app/templates/components/stream-header.hbs index 1ef1fef0..b09b1bda 100755 --- a/app/templates/components/stream-header.hbs +++ b/app/templates/components/stream-header.hbs @@ -9,16 +9,12 @@ {{/each}} {{/if}} - {{#if isProduct }} -
    - -
- {{/if}} + {{#if isIndustry}} @@ -34,20 +30,35 @@ {{/if}} {{/if}} {{#if isProduct}} -

{{model.name}} ({{model.code}})

- {{#if isShowingIndex}} - {{ partial 'partials/builder-questions-product'}} - {{/if}} + + + {{/if}} {{#if isIndustry}}
-

SECTOR

+

{{ t 'general.industry' }}

{{model.name}} ({{model.code}})

{{#if isShowingIndex}} {{ partial 'partials/builder-questions-industry'}} {{/if}} {{/if}} + + {{#if isProduct }} + +
+

{{ t 'general.product' }}

+

{{model.name}} ({{model.code}})

+
+ + {{/if}} + {{#if isLandUse}}

{{model.name}}

{{#if isShowingIndex}} diff --git a/app/templates/components/visualization-explanation.hbs b/app/templates/components/visualization-explanation.hbs index a048f47e..c022460c 100755 --- a/app/templates/components/visualization-explanation.hbs +++ b/app/templates/components/visualization-explanation.hbs @@ -1,7 +1,15 @@ -
+
+
+

{{t 'graph_builder.explanation'}}

+
+
+

{{text}}

+
+
+ diff --git a/app/templates/components/zoomable-treemap.hbs b/app/templates/components/zoomable-treemap.hbs new file mode 100644 index 00000000..889d9eea --- /dev/null +++ b/app/templates/components/zoomable-treemap.hbs @@ -0,0 +1 @@ +{{yield}} diff --git a/app/templates/header-nav.hbs b/app/templates/header-nav.hbs index 96f920d1..939507a4 100644 --- a/app/templates/header-nav.hbs +++ b/app/templates/header-nav.hbs @@ -1,5 +1,10 @@
+ +
+

{{ t 'header_nav.search' }}

+
+
{{#link-to 'search' @@ -54,5 +59,27 @@
+
+ {{#link-to 'search' + (query-params filter='results_products') + class="btn btn-outline-secondary btn-lg btn-block text-uppercase" + activeClass="active" + data-side-search-link='locations' + }} + {{ t 'search.sophistication_path_place' }} + {{/link-to}} +
+ +
+ {{#link-to 'search' + (query-params filter='results_products') + class="btn btn-outline-secondary btn-lg btn-block text-uppercase" + activeClass="active" + data-side-search-link='locations' + }} + {{ t 'search.sophistication_path_product' }} + {{/link-to}} +
+
\ No newline at end of file diff --git a/app/templates/index.hbs b/app/templates/index.hbs index 97d2dc17..2e9085d8 100755 --- a/app/templates/index.hbs +++ b/app/templates/index.hbs @@ -1,104 +1,116 @@ -
-
-
-
+
+
-
-
-
-

{{ t 'index.header_h1_p1' }}

-

{{ t 'index.header_h1_p2' }}

-
-
-

{{ t 'index.header_subhead' }}

- -
- {{input - class="search" - placeholder=( t 'pageheader.search_placeholder' ) - value=query - enter='query' - target=controllers.search - required='required' - }} - +
+ + +
+
+

{{ t 'index.header_h1_p1' }}

+

{{ t 'index.header_h1_p2' }}

- - +
+

{{ t 'index.header_subhead' }}

+ +
+ {{input + class="form-control search" + type="text" + placeholder=( t 'pageheader.search_placeholder' ) + value=query + enter='query' + target=controllers.search + required='required' + autocomplete='off' + }} +
+
+
+
+ + -

{{ t 'index.questions_head_p1' }}

+
+
+

{{ t 'index.questions_head_p1' }}

+
+
-
-
+ +
-

{{ t 'index.questions_head_p2' }}

+
+ - {{#if showLocations }} -
-
-

{{ t 'index.location_head' }}

-
-
- {{select-dropdown collection=sortedLocations selected=sortedLocations.[0].id type='location' class="dropdown-update"}} -
+
+
+ +

{{ t 'index.questions_head_p2' }}

+ + {{#if showLocations }} +
+
+

{{ t 'index.location_head' }}

+
+
+ {{autocomplete-input-datlas data_search=locationsData type='location' idSelect='location_search'}}
- {{/if}} +
+ {{/if}} - {{#if showIndustries }} -
-
-

{{ t 'index.industry_head' }}

-
-
- {{select-dropdown collection=sortedIndustries selected=sortedIndustries.[0].id type='industry' class="dropdown-update border-light"}} -
+ {{#if showIndustries }} +
+
+

{{ t 'index.industry_head' }}

- {{/if}} +
+ {{autocomplete-input-datlas data_search=industriesData type='industry' idSelect='industry_search'}} +
+
+ {{/if}} - {{#if showProducts }} -
-
-

{{ t 'index.product_head' }}

-
-
- {{select-dropdown collection=sortedProducts selected=sortedProducts.[0].id type='product' class="dropdown-update"}} -
+ {{#if showProducts }} +
+
+

{{ t 'index.product_head' }}

+
+
+ {{autocomplete-input-datlas data_search=productsData type='product' idSelect='product_search'}}
- {{/if}} +
+ {{/if}} - {{#if showFarmAndLand }} -
-
-

{{ t 'index.farmandland_head' }}

-
-
- {{select-dropdown collection=sortedAgproducts selected=sortedAgproducts.[0].id type='agproduct' class="dropdown-update"}} -
+ {{#if showFarmAndLand }} +
+
+

{{ t 'index.farmandland_head' }}

- {{/if}} +
+ {{autocomplete-input-datlas data_search=agproductsData type='rural' idSelect='agproduct_search'}} +
+
+ {{/if}} -
-
-
-

{{ t 'index.sophistication_route'}}

-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc a porta dolor, at vehicula enim. Fusce dignissim massa magna, quis mollis arcu scelerisque fringilla. Sed semper risus ipsum, tempus pretium leo ullamcorper eget. Donec in erat at elit tempor aliquet vitae quis dolor. Quisque mi erat, luctus sed orci eu, aliquet maximus odio. Quisque tempus scelerisque tortor vel volutpat. Nunc volutpat justo non arcu mollis, a suscipit lacus porttitor. Cras euismod, nunc ac lacinia tristique, ipsum odio tempor metus, at lobortis nibh tellus sed lacus. Quisque mollis cursus sem, nec pellentesque dolor faucibus quis. -

- -
+
+
+
+

{{ t 'index.sophistication_route'}}

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc a porta dolor, at vehicula enim. Fusce dignissim massa magna, quis mollis arcu scelerisque fringilla. Sed semper risus ipsum, tempus pretium leo ullamcorper eget. Donec in erat at elit tempor aliquet vitae quis dolor. Quisque mi erat, luctus sed orci eu, aliquet maximus odio. Quisque tempus scelerisque tortor vel volutpat. Nunc volutpat justo non arcu mollis, a suscipit lacus porttitor. Cras euismod, nunc ac lacinia tristique, ipsum odio tempor metus, at lobortis nibh tellus sed lacus. Quisque mollis cursus sem, nec pellentesque dolor faucibus quis. +

+
-
-
+ + + + +

{{ t 'index.present_head' }}

{{ t 'index.present_subhead' }}

@@ -116,7 +128,8 @@

{{ t 'general.geo' }}

-
+ +

{{ t 'general.scatter' }}

@@ -130,23 +143,22 @@

{{ t 'index.future_subhead' }}

-
-
-
-

{{ t 'index.complexity_head' }}

-

{{ t 'index.complexity_subhead' }}

-
- {{#link-to 'about.glossary' - data-home-page-product='' - class="text-uppercase btn btn-outline-light btn-large mt-5" - }} - {{ t 'index.complexity_cta' }} - {{/link-to}} -
+ +
+
+

{{ t 'index.complexity_head' }}

+

{{ t 'index.complexity_subhead' }}

+
+ {{#link-to 'about.glossary' + data-home-page-product='' + class="text-uppercase btn btn-outline-light btn-large mt-5" + }} + {{ t 'index.complexity_cta' }} + {{/link-to}}
-
+

{{ t 'index.country_profile_p1' }}

@@ -161,26 +173,30 @@
-
- +
+
-
- - {{#if featureToggle.homepage_logos }} -
-
    - {{#each logo in featureToggle.homepage_logos}} -
  • - - {{logo.name}} - -
  • - {{/each}} -
-
- {{/if}} + + {{#if featureToggle.homepage_logos }} +
+
    + {{#each logo in featureToggle.homepage_logos}} +
  • + + {{logo.name}} + +
  • + {{/each}} +
+
+ {{/if}} + + +
+ +
diff --git a/app/templates/industry/-questions.hbs b/app/templates/industry/-questions.hbs index 41bc00f8..99904dd0 100755 --- a/app/templates/industry/-questions.hbs +++ b/app/templates/industry/-questions.hbs @@ -1,14 +1,14 @@ -
-
+
-
-
+
+
+

Realice una búsqueda por Temáticas del sector

+
-
-
+

{{t 'graph_builder.builder_questions.employment'}}

@@ -30,7 +30,8 @@
-
+ +

{{t 'graph_builder.builder_questions.wage'}}

@@ -52,8 +53,7 @@
-
+
-
diff --git a/app/templates/industry/loading.hbs b/app/templates/industry/loading.hbs index 949c5f45..1ec367e6 100755 --- a/app/templates/industry/loading.hbs +++ b/app/templates/industry/loading.hbs @@ -1,4 +1,6 @@ -
-
+
+
+ +
diff --git a/app/templates/industry/show.hbs b/app/templates/industry/show.hbs index f14a7f3f..f3d20baf 100755 --- a/app/templates/industry/show.hbs +++ b/app/templates/industry/show.hbs @@ -10,147 +10,157 @@ occupationLastYear=occupationLastYear }} -
-
+
+
-
-

+
+

{{t 'industry.show.employment_and_wages'}}

-
- - - - - - - - - - - - - - - {{#if hasAverageWage }} +
+ +
+
Item{{t 'industry.show.value'}}{{t 'industry.show.industries'}}
{{t 'industry.show.employment_growth' yearRange=yearRange}}{{model.displayEmploymentGrowth}} - {{vistk-dotplot - elementId='dotplot--employment-growth' - data=employmentGrowthDotPlot - varX='employment_growth' - varText='name_en' - varId='industry_id' - type='percentage' - currentSelection=model.id - }} -
+ + + + + + + + + + + - - + + - {{/if}} - -
Item{{t 'industry.show.value'}}{{t 'industry.show.industries'}}
{{t 'industry.show.avg_wages' year=lastYear}}{{model.lastAvgWage}}{{t 'industry.show.employment_growth' yearRange=yearRange}}{{model.displayEmploymentGrowth}} + {{vistk-dotplot - elementId='dotplot--avg-wage' - data=averageWageDotPlot - varX='avg_wage' + elementId='dotplot--employment-growth' + data=employmentGrowthDotPlot + varX='employment_growth' varText='name_en' varId='industry_id' + type='percentage' currentSelection=model.id }}
+ {{#if hasAverageWage }} + + {{t 'industry.show.avg_wages' year=lastYear}} + {{model.lastAvgWage}} + + + {{vistk-dotplot + elementId='dotplot--avg-wage' + data=averageWageDotPlot + varX='avg_wage' + varText='name_en' + varId='industry_id' + currentSelection=model.id + }} + + + {{/if}} + + +
+ +

-
+ -
-
- {{#if hasAverageWage }} -
-
- {{multiples-graph - data=departmentsData - immutableData=departmentsData - isInTab='true' - varDependent='monthly_wages' - startDate=firstYear - endDate=lastYear - }} +
+
+ {{#if hasAverageWage }} +
+
+ {{multiples-graph + data=departmentsData + immutableData=departmentsData + isInTab='true' + varDependent='monthly_wages' + startDate=firstYear + endDate=lastYear + }} +
-
- {{/if}} -
-
-
-
- {{vistk-treemap - isInTab='true' + {{/if}} +
+
+
+ {{ + zoomable-treemap data=recentDepartmentsData - immutableData=recentDepartmentsData - elementId='employment-vistk-treemap' varDependent='employment' + elementId='employment-vistk-treemap' + class="position-relative" }}
+
+
{{#unless isIndustryClass}} -
-
-

{{t 'industry.show.occupation'}}

-
- {{#ivy-tabs}} - {{#ivy-tab-list classNames='tabmod__tabs'}} - {{#ivy-tab classNames='tabmod__tab' activeClass='tabmod__tab--is--active'}} - {{t 'industry.show.occupation_demand' year=occupationLastYear}} - {{/ivy-tab}} - {{/ivy-tab-list}} - {{#ivy-tab-panel classNames='tabmod__card' activeClass='tabmod__card--is--active'}} -
-
- {{vistk-treemap - isInTab='true' - data=occupationsData - immutableData=occupationsData - elementId='occupation-vistk-treemap' - varDependent='num_vacancies' - }} -
-
- {{/ivy-tab-panel}} - {{/ivy-tabs}} -
+ +
+
+
+

{{t 'industry.show.occupation_demand'}} {{occupationLastYear}}

+ {{ + zoomable-treemap + data=occupationsData + varDependent='num_vacancies' + elementId='occupation-vistk-treemap' + class="position-relative" + }} +
+
+
+ {{/unless}} + {{#if hasChildrenIndustries}} -
-
+ +
+

{{t 'industry.show.industry_composition' year=lastYear}}

-
- {{component 'graphbuilder-table' - data=model.classIndustries - source="industries" - }} -
+ {{ + datlas-table + data=model.classIndustries + source="industries" + entityType=entityType + elementId="industriesTable" + }} + + + {{/if}} diff --git a/app/templates/loading.hbs b/app/templates/loading.hbs index 949c5f45..1ec367e6 100755 --- a/app/templates/loading.hbs +++ b/app/templates/loading.hbs @@ -1,4 +1,6 @@ -
-
+
+
+ +
diff --git a/app/templates/location/loading.hbs b/app/templates/location/loading.hbs index 949c5f45..1ec367e6 100755 --- a/app/templates/location/loading.hbs +++ b/app/templates/location/loading.hbs @@ -1,4 +1,6 @@ -
-
+
+
+ +
diff --git a/app/templates/location/visualization-product.hbs b/app/templates/location/visualization-product.hbs index a6918f7a..c1a8c8e1 100755 --- a/app/templates/location/visualization-product.hbs +++ b/app/templates/location/visualization-product.hbs @@ -27,6 +27,7 @@

{{pageTitle}}

+

Hola 2

diff --git a/app/templates/partials/-buildermod-drawer-change-graph.hbs b/app/templates/partials/-buildermod-drawer-change-graph.hbs index 7a0c734a..8557fb66 100755 --- a/app/templates/partials/-buildermod-drawer-change-graph.hbs +++ b/app/templates/partials/-buildermod-drawer-change-graph.hbs @@ -1,14 +1,12 @@ -
+
{{#each graph in otherPossibleGraphs}} {{#if graph.available}} -
{{component 'graphbuilder-change-graph' toggleVisualization='toggleVisualization' type=graph.type description=graph.description visualization=visualization }} -
{{/if}} {{/each}}
diff --git a/app/templates/partials/-buildermod-search.hbs b/app/templates/partials/-buildermod-search.hbs index 190ce97c..a3178e57 100755 --- a/app/templates/partials/-buildermod-search.hbs +++ b/app/templates/partials/-buildermod-search.hbs @@ -1,4 +1,45 @@ -
+ + +
+ + + + + + +
+
+ + +
+ {{component 'graphbuilder-settings' + classNames='buildermod__settings' + startDate=startDate + endDate=endDate + dateExtent=dateExtent + canYearToggle=canYearToggle + isScatter=isScatter + rcaFilter=rcaFilter + }} +
+ + +
+
+ + + BÚSQUE POR DEPARTAMENTO O CÓDIGO DANE +
+ + {{autocomplete-input-datlas data_search=locationsData type='search' idSelect='searchSelect' placeHolder="Búsqueda por departamento o código CIIU" search=search reset="reset" className="d-flex justify-content-center"}} +
+
+
+ +
+ + + diff --git a/app/templates/partials/-pageheader.hbs b/app/templates/partials/-pageheader.hbs index 9643ff25..5d4d9d1d 100755 --- a/app/templates/partials/-pageheader.hbs +++ b/app/templates/partials/-pageheader.hbs @@ -19,6 +19,32 @@
+
+
+
+

+ {{otherLanguage}} +

+
+ + {{input + type='checkbox' + id='toggle--languages' + class='toggle toggle--languages' + checked=isDefaultLocale + data-language-toggle='' + }} + + +
+

+ {{defaultLanguage}} +

+
+ +
+
+ {{else}} {{#link-to "index" class="pageheader__title"}} @@ -82,7 +108,7 @@

{{ t 'index.header_h1_add' }}

{{ t 'index.header_subhead_add' }}

- +
diff --git a/app/templates/product/-questions.hbs b/app/templates/product/-questions.hbs index 31a28704..76ed9666 100755 --- a/app/templates/product/-questions.hbs +++ b/app/templates/product/-questions.hbs @@ -1,4 +1,82 @@ -
+
+ +
+
+
+

Realice una búsqueda por

+
+
+
+ +
+

{{t 'graph_builder.builder_questions.export'}}

+ +
+ + {{#link-to 'product.visualization' model.id 'departments' 'geo' 'export_value' (query-params startDate=lastYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.product.departments.export_value'}} + {{/link-to}} +
+ +
+ + {{#link-to 'product.visualization' model.id 'cities' 'multiples' 'export_value' (query-params startDate=firstYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.product.cities.export_value'}} + {{/link-to}} +
+ +
+ + {{#link-to 'product.visualization' model.id 'partners' 'treemap' 'export_value' (query-params startDate=lastYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.product.partners.export_value'}} + {{/link-to}} +
+ +
+ +
+

{{t 'graph_builder.builder_questions.import'}}

+ +
+ + {{#link-to 'product.visualization' model.id 'departments' 'geo' 'import_value' (query-params startDate=lastYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.product.departments.import_value'}} + {{/link-to}} +
+ +
+ + {{#link-to 'product.visualization' model.id 'cities' 'multiples' 'import_value' (query-params startDate=firstYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.product.cities.import_value'}} + {{/link-to}} +
+ +
+ + {{#link-to 'product.visualization' model.id 'partners' 'treemap' 'import_value' (query-params startDate=lastYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.product.partners.import_value'}} + {{/link-to}} +
+ +
+ +
+
+
+ + diff --git a/app/templates/product/loading.hbs b/app/templates/product/loading.hbs index 949c5f45..1ec367e6 100755 --- a/app/templates/product/loading.hbs +++ b/app/templates/product/loading.hbs @@ -1,4 +1,6 @@ -
-
+
+
+ +
diff --git a/app/templates/search.hbs b/app/templates/search.hbs index 252e002d..d1ea8166 100755 --- a/app/templates/search.hbs +++ b/app/templates/search.hbs @@ -1,137 +1,176 @@ -{{#if query }} -

{{resultsLength}} {{t 'search.header'}}

-{{else}} -

{{t placeHolderText}}

-{{/if}} - - -
- {{input - class="search" - placeholder=( t placeHolderText ) - value=search - enter='query' - required='required' - data-search-input='' - }} - -
- - - -{{#if landuseResults.length}} -

{{t 'search.results_landuses'}}

-
    - {{#each result in landuseResults}} - {{search-result - result=result - tagName="li" - class="results__item" - levelOnly=true - }} - {{/each}} -
-{{/if}} -{{#if locationResults.length}} -

{{t 'search.results_locations'}}

-
    - {{#each result in locationResults}} - {{search-result - result=result - tagName="li" - class="results__item" - metaData=metaData - isLocation="True" - }} - {{/each}} -
-{{/if}} -{{#if productResults.length}} -

{{t 'search.results_products'}}

-
    - {{#each result in productResults}} - {{search-result - result=result - tagName="li" - class="results__item" - }} - {{/each}} -
-{{/if}} -{{#if agproductResults.length}} -

{{t 'search.results_agproducts'}}

-
    - {{#each result in agproductResults}} - {{search-result - result=result - tagName="li" - class="results__item" - levelOnly=true - }} - {{/each}} -
-{{/if}} -{{#if nonagResults.length}} -

{{t 'search.results_nonag'}}

-
    - {{#each result in nonagResults}} - {{search-result - result=result - tagName="li" - class="results__item" - levelOnly=true - }} - {{/each}} -
-{{/if}} -{{#if livestockResults.length}} -

{{t 'search.results_livestock'}}

-
    - {{#each result in livestockResults}} - {{search-result - result=result - tagName="li" - class="results__item" - levelOnly=true - }} - {{/each}} -
-{{/if}} -{{#if industryResults.length}} -

{{t 'search.results_industries'}}

-
    - {{#each result in industryResults}} - {{search-result - result=result - tagName="li" - class="results__item" - }} - {{/each}} -
-{{/if}} - -{{#if modelCategorized }} -
-
- {{#each modelCategorizedKeys as |key|}} - {{#if (is-equal key referenceKey)}} -
{{t (is-concat 'header.' key)}}
- {{else}} -
{{t (is-concat 'header.' key)}}
- {{/if}} - {{/each}} +
+ + {{#if filter}} + +
+ +
+

{{ t 'pageheader.search_placeholder.header' }}

+

{{t placeHolderText}}

+
+ +
+ +
+ +
+

{{t 'search.message.p1' }}

+

{{t 'search.message.p2' }}

+
+ +
+ + + + + + + + + + + +
+ +
+ {{autocomplete-input-datlas data_search=modelData type=filter idSelect='search_select'}} +
+ +
+ +
+
-
    - {{#each sortedReferenceBody as |item|}} - {{#link-to (is-concat item.profileName ".show") item.id tagName="li"}}{{item.name}}{{/link-to}} - {{/each}} -
-
-{{/if}} + {{/if}} + + {{#if query}} -

{{t 'search.didnt_find'}}

+ {{#if filter}} + {{else}} + {{#if landuseResults.length}} +

{{t 'search.results_landuses'}}

+
    + {{#each result in landuseResults}} + {{search-result + result=result + tagName="li" + class="results__item" + levelOnly=true + }} + {{/each}} +
+ {{/if}} + {{#if locationResults.length}} +

{{t 'search.results_locations'}}

+
    + {{#each result in locationResults}} + {{search-result + result=result + tagName="li" + class="results__item" + metaData=metaData + isLocation="True" + }} + {{/each}} +
+ {{/if}} + {{#if productResults.length}} +

{{t 'search.results_products'}}

+
    + {{#each result in productResults}} + {{search-result + result=result + tagName="li" + class="results__item" + }} + {{/each}} +
+ {{/if}} + {{#if agproductResults.length}} +

{{t 'search.results_agproducts'}}

+
    + {{#each result in agproductResults}} + {{search-result + result=result + tagName="li" + class="results__item" + levelOnly=true + }} + {{/each}} +
+ {{/if}} + {{#if nonagResults.length}} +

{{t 'search.results_nonag'}}

+
    + {{#each result in nonagResults}} + {{search-result + result=result + tagName="li" + class="results__item" + levelOnly=true + }} + {{/each}} +
+ {{/if}} + {{#if livestockResults.length}} +

{{t 'search.results_livestock'}}

+
    + {{#each result in livestockResults}} + {{search-result + result=result + tagName="li" + class="results__item" + levelOnly=true + }} + {{/each}} +
+ {{/if}} + {{#if industryResults.length}} +

{{t 'search.results_industries'}}

+
    + {{#each result in industryResults}} + {{search-result + result=result + tagName="li" + class="results__item" + }} + {{/each}} +
+ {{/if}} + {{/if}} + + {{/if}} + +
diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 4fe019b7..309fc033 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -25,90 +25,104 @@ agcensusLastYear=agcensusLastYear occupationLastYear=occupationLastYear }} -
-

{{pageTitle}}

-
-
-
+ +
+
+ +
+

{{pageTitle}}

+
+ +
+

{{ t 'graph_builder.types' }}

+ {{partial "partials/buildermod-drawer-change-graph"}} +
+ +
+
+ + +
+
+ {{#unless hideVisualization }} -
- {{partial "partials/buildermod-drawer-change-graph"}} + +
+

{{builderModHeader}}

+

{{headerValue}}

+

{{years}}

-
-

{{builderModHeader}}: {{headerValue}} ({{years}})

-
-
- {{#unless isGeo }} - {{partial "partials/buildermod-search"}} - {{/unless}} - - {{component visualizationComponent - classNames='buildermod__viz' - immutableData=immutableData - modelData=modelData - data=filteredData - dataType=source - varDependent=varDependent - scale=scale - startDate=startDate - dateExtent=dateExtent - endDate=endDate - metadata=metadata - isFiltered=isFiltered - entityType=entityType - entityId=entityId - variable=variable - search=search - graph=graph - }} - - {{#if needsLegend }} + +
{{#unless isGeo }} - {{component 'visualization-legend' legend=legend }} - {{else}} - {{component 'visualization-legend-geomap' legend=geoLegend }} + {{partial "partials/buildermod-search"}} {{/unless}} - {{/if}} +
-
- {{component 'graphbuilder-settings' - classNames='buildermod__settings' +
+ + {{component visualizationComponent + classNames='buildermod__viz' + immutableData=immutableData + modelData=modelData + data=filteredData + dataType=source + varDependent=varDependent + scale=scale startDate=startDate - endDate=endDate dateExtent=dateExtent - canYearToggle=canYearToggle - isScatter=isScatter - rcaFilter=rcaFilter + endDate=endDate + metadata=metadata + isFiltered=isFiltered + entityType=entityType + entityId=entityId + variable=variable + search=search + graph=graph + elementId=source + }} + + + + {{#if needsLegend }} + {{#unless isGeo }} + {{component 'visualization-legend' legend=legend }} + {{else}} + {{component 'visualization-legend-geomap' legend=geoLegend }} + {{/unless}} + {{/if}} + +
+ + + +
+ {{component 'visualization-explanation' text=visualizationExplanation}} +
+ +
+ + {{ + datlas-table + data=filteredData + source=source + entityType=entityType + search=search + startDate=startDate + endDate=endDate + elementId="sourceTable" }} +
-
+ {{/unless}} - {{component 'visualization-explanation' - text=visualizationExplanation - }} -
- {{component 'table-download' - name=builderModHeader - data=immutableData - source=source - entityType=entityType - pageTitle=pageTitle - }} - {{component 'graphbuilder-table' - data=filteredData - source=source - entityType=entityType - search=search - }} -
- - {{ t 'graph_builder.table.read_more' }} - {{#link-to 'about.glossary' class='link--stream link--stream--inline--tiny table__footer__link--glossary'}} - {{t 'general.glossary'}}. - {{/link-to}} - +
-
+
+ + + +
diff --git a/package.json b/package.json index 459371d5..bd71adbf 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,8 @@ "ember-export-application-global": "^1.0.2", "ember-i18n": "4.1.1", "ember-table": "0.9.2", - "ivy-tabs": "1.2.0" + "ember-truth-helpers": "^2.1.0", + "ivy-tabs": "1.2.0", + "jspdf": "^2.3.1" } } diff --git a/public/assets/img/general/ico_questions.svg b/public/assets/img/general/ico_questions.svg new file mode 100644 index 00000000..e893eb66 --- /dev/null +++ b/public/assets/img/general/ico_questions.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/img/general/illustracion_2.svg b/public/assets/img/general/illustracion_2.svg new file mode 100644 index 00000000..9fc3168a --- /dev/null +++ b/public/assets/img/general/illustracion_2.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/img/graphicons/ico_geo.svg b/public/assets/img/graphicons/ico_geo.svg new file mode 100644 index 00000000..65184b02 --- /dev/null +++ b/public/assets/img/graphicons/ico_geo.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git "a/public/assets/img/graphicons/ico_grafico_de_dispersi\303\263n.svg" "b/public/assets/img/graphicons/ico_grafico_de_dispersi\303\263n.svg" new file mode 100644 index 00000000..6fb256d2 --- /dev/null +++ "b/public/assets/img/graphicons/ico_grafico_de_dispersi\303\263n.svg" @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/img/graphicons/ico_mapa_colombia.svg b/public/assets/img/graphicons/ico_mapa_colombia.svg new file mode 100644 index 00000000..86b6555f --- /dev/null +++ b/public/assets/img/graphicons/ico_mapa_colombia.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/img/graphicons/ico_mapa_de_sectores.svg b/public/assets/img/graphicons/ico_mapa_de_sectores.svg new file mode 100644 index 00000000..d9bbfd3b --- /dev/null +++ b/public/assets/img/graphicons/ico_mapa_de_sectores.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/img/graphicons/ico_multiples.svg b/public/assets/img/graphicons/ico_multiples.svg new file mode 100644 index 00000000..170b3f2a --- /dev/null +++ b/public/assets/img/graphicons/ico_multiples.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/img/graphicons/ico_questions.svg b/public/assets/img/graphicons/ico_questions.svg new file mode 100644 index 00000000..e893eb66 --- /dev/null +++ b/public/assets/img/graphicons/ico_questions.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/img/graphicons/ico_treemap.svg b/public/assets/img/graphicons/ico_treemap.svg new file mode 100644 index 00000000..8e340536 --- /dev/null +++ b/public/assets/img/graphicons/ico_treemap.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/tests/integration/components/autocomplete-input-datlas-test.js b/tests/integration/components/autocomplete-input-datlas-test.js new file mode 100644 index 00000000..994ed543 --- /dev/null +++ b/tests/integration/components/autocomplete-input-datlas-test.js @@ -0,0 +1,27 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + + +moduleForComponent('autocomplete-input-datlas', 'Integration | Component | autocomplete input datlas', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{autocomplete-input-datlas}}`); + + assert.equal(this.$().text(), ''); + + // Template block usage: + this.render(hbs` + {{#autocomplete-input-datlas}} + template block text + {{/autocomplete-input-datlas}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); diff --git a/tests/integration/components/datlas-table-test.js b/tests/integration/components/datlas-table-test.js new file mode 100644 index 00000000..7bf6a008 --- /dev/null +++ b/tests/integration/components/datlas-table-test.js @@ -0,0 +1,27 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + + +moduleForComponent('datlas-table', 'Integration | Component | datlas table', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{datlas-table}}`); + + assert.equal(this.$().text(), ''); + + // Template block usage: + this.render(hbs` + {{#datlas-table}} + template block text + {{/datlas-table}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); diff --git a/tests/integration/components/zoomable-treemap-test.js b/tests/integration/components/zoomable-treemap-test.js new file mode 100644 index 00000000..d404587b --- /dev/null +++ b/tests/integration/components/zoomable-treemap-test.js @@ -0,0 +1,27 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + + +moduleForComponent('zoomable-treemap', 'Integration | Component | zoomable treemap', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{zoomable-treemap}}`); + + assert.equal(this.$().text(), ''); + + // Template block usage: + this.render(hbs` + {{#zoomable-treemap}} + template block text + {{/zoomable-treemap}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); From 98d31c8eb95789f35702546b91aa861b24118375 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Tue, 27 Jul 2021 15:10:50 -0500 Subject: [PATCH 010/126] Release 0.3 --- app/components/autocomplete-input-datlas.js | 54 +++++- app/components/zoomable-treemap.js | 106 ++++++++++- app/controllers/index.js | 55 +++++- app/controllers/search.js | 95 ++++++++-- app/index.html | 3 + app/locales/en-col/translations.js | 48 ++++- app/locales/en-mex/translations.js | 25 ++- app/locales/en-peru/translations.js | 26 ++- app/locales/es-col/translations.js | 52 +++-- app/locales/es-mex/translations.js | 25 ++- app/locales/es-peru/translations.js | 25 ++- app/routes/index.js | 13 +- app/styles/components/_components/_link.scss | 9 + app/styles/components/_modules/_index.scss | 1 - app/styles/components/_modules/_results.scss | 2 +- app/templates/agproduct/-questions.hbs | 178 ++++++------------ app/templates/components/multiples-graph.hbs | 6 +- app/templates/components/stream-header.hbs | 61 +++++- app/templates/components/zoomable-treemap.hbs | 8 + app/templates/index.hbs | 28 ++- app/templates/industry/show.hbs | 6 +- app/templates/land-use/-questions.hbs | 56 +++--- app/templates/livestock/-questions.hbs | 85 ++++++--- app/templates/nonag/-questions.hbs | 44 ++++- app/templates/search.hbs | 44 ++++- app/templates/visualization.hbs | 44 ++--- bower.json | 2 +- public/assets/img/general/illustracion_1.svg | 31 +++ 28 files changed, 849 insertions(+), 283 deletions(-) create mode 100644 public/assets/img/general/illustracion_1.svg diff --git a/app/components/autocomplete-input-datlas.js b/app/components/autocomplete-input-datlas.js index 8649f3e7..e5bfb3a8 100644 --- a/app/components/autocomplete-input-datlas.js +++ b/app/components/autocomplete-input-datlas.js @@ -10,7 +10,11 @@ export default Ember.Component.extend({ transitionIndustry: 'transitionIndustry', transitionLocationProducts: 'transitionLocationProducts', transitionAgproduct: 'transitionAgproduct', + transitionLivestock: 'transitionLivestock', + transitionNonag: 'transitionNonag', + transitionLanduse: 'transitionLanduse', runSelect: computed('idSelect', 'type', 'data_search', 'placeHolder', 'search', 'i18n', function(){ + let id_select = this.get('idSelect'); var $eventSelect = $(`#${id_select}`); let type = this.get('type'); @@ -32,7 +36,11 @@ export default Ember.Component.extend({ width: 'auto', dropdownAutoWidth : true, data: data, - containerCssClass: "flex-fill" + containerCssClass: "flex-fill", + templateSelection: function (data, container) { + $(data.element).attr('data-key', data.key); + return data.text; + } }); $eventSelect.on("select2:select", function (e) { @@ -50,7 +58,12 @@ export default Ember.Component.extend({ } else if (type === 'location-product') { self.sendAction('transitionLocationProducts', id); } else if (type === 'rural') { - self.sendAction('transitionAgproduct', id); + + var key = $(`#${id_select}`).find(':selected').data("key").replace('-', '') + var action = `transition${key.charAt(0).toUpperCase() + key.slice(1)}` + + self.sendAction(action, id); + } else if (type === 'search') { self.set('search', text); } @@ -65,11 +78,12 @@ export default Ember.Component.extend({ }); }, - update: observer('i18n.display', function() { + update: observer('i18n.display', 'data_search', function() { let id_select = this.get('idSelect'); var $eventSelect = $(`#${id_select}`); var placeholder = this.get("placeHolder") let type = this.get('type'); + var data = this.get('data_search') if(placeholder === null){ placeholder = this.get('i18n').t(`pageheader.search_placeholder.${type}`).string @@ -82,6 +96,40 @@ export default Ember.Component.extend({ language: this.get('i18n').display, width: 'auto', dropdownAutoWidth : true, + data: data, + containerCssClass: "flex-fill", + templateSelection: function (data, container) { + $(data.element).attr('data-key', data.key); + return data.text; + } + }); + + $eventSelect.on("select2:select", function (e) { + + let id = $eventSelect.val(); + let text= $(`#${id_select} option:selected`).text(); + + if(id !== ""){ + if(type === 'location') { + self.sendAction('transitionLocation', id); + } else if (type === 'product') { + self.sendAction('transitionProduct', id); + } else if (type === 'industry') { + self.sendAction('transitionIndustry', id); + } else if (type === 'location-product') { + self.sendAction('transitionLocationProducts', id); + } else if (type === 'rural') { + + var key = $(`#${id_select}`).find(':selected').data("key").replace('-', '') + var action = `transition${key.charAt(0).toUpperCase() + key.slice(1)}` + + self.sendAction(action, id); + + } else if (type === 'search') { + self.set('search', text); + } + } + }); }), diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js index 1ffbeea0..4061b120 100644 --- a/app/components/zoomable-treemap.js +++ b/app/components/zoomable-treemap.js @@ -34,6 +34,18 @@ export default Ember.Component.extend({ return d3.nest().entries(updatedData); } }), + getColors: computed('updatedData', 'search', 'color', function () { + + var color = this.get('color') + + if(color === 'pink'){ + return ["#880E4F", "#F06292"] + } + else if(color === 'green'){ + return ["#33691E", "#9CCC65"] + } + return ["#880E4F", "#F06292"] + }), treemap: computed('data.[]', 'id', 'updatedData', 'nestedData', 'varDependent', 'i18n.locale', 'varText', 'search', function () { var elementId = this.get('id'); @@ -47,8 +59,7 @@ export default Ember.Component.extend({ height: 500, value_text: value_text, percent_text: this.get('i18n').t(`graph_builder.table.share`).string, - start_color: "#D81B60", - end_color: "#880E4F", + colors: this.get('getColors'), principal_color: "#292A48" }; var o = {title: "World Population"} @@ -65,7 +76,7 @@ export default Ember.Component.extend({ height = opts.height - margin.top - margin.bottom - theight, transitioning; - var color = d3.scale.linear().domain([0,1]).interpolate(d3.interpolateHcl).range([d3.rgb(defaults.start_color), d3.rgb(defaults.end_color)]); + var color = d3.scale.linear().domain([100, 0]).interpolate(d3.interpolateHcl).range([defaults.colors[0], defaults.colors[1]]); var x = d3.scale.linear() .domain([0, width]) @@ -97,12 +108,15 @@ export default Ember.Component.extend({ grandparent.append("rect") .attr("y", -margin.top) .attr("width", width) - .attr("height", margin.top); + .attr("height", margin.top) + .style("fill", "orange") + .style("stroke", "#292A48") grandparent.append("text") .attr("x", 6) .attr("y", 6 - margin.top) - .attr("dy", ".75em"); + .attr("dy", ".75em") + .style("font-family", "sans-serif"); var Tooltip = d3.select(elementId) .append("div") @@ -222,9 +236,15 @@ export default Ember.Component.extend({ t.append("tspan") .attr("class", "tspan-treemap") + .style("fill", "white") + .style("font-size", "1rem") + .style("font-family", "sans-serif") .text(function(d) { return d.key; }); t.append("tspan") .attr("class", "tspan-treemap") + .style("fill", "white") + .style("font-size", "1rem") + .style("font-family", "sans-serif") .attr("dy", "1.2em") .text(function(d) { return (d.area * 100).toFixed(1) + "%"; @@ -233,8 +253,9 @@ export default Ember.Component.extend({ g.selectAll("rect") .style("fill", function(d) { - return color(d.area); - }); + return color(d.area*100); + }) + .style("stroke", "#292A48") function transition(d) { if (transitioning || !d) return; @@ -339,10 +360,79 @@ export default Ember.Component.extend({ }), didInsertElement: function() { Ember.run.scheduleOnce('afterRender',this , function() { - d3.select(this.get('id')).selectAll('svg').remove(); + + var id = this.get('id') + + d3.select(id).selectAll('svg').remove(); this.get('treemap'); + + + }); }, + actions: { + savePng() { + + var id = this.get('id') + var svgElement = $(`${id} svg`).get(0) + var d = new Date(); + var file_name = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() + + svgElement.setAttribute("width", svgElement.getBoundingClientRect().width); + svgElement.setAttribute("height", svgElement.getBoundingClientRect().height); + svgElement.style.width = null; + svgElement.style.height= null; + + html2canvas(svgElement, { + onrendered: function(canvas) { + var myImage = canvas.toDataURL("image/png"); + saveAs(myImage, `${file_name}.png`); + } + }); + + }, + savePdf() { + + var id = this.get('id') + var svgElement = $(`${id} svg`).get(0) + var d = new Date(); + var file_name = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() + + svgElement.setAttribute("width", svgElement.getBoundingClientRect().width); + svgElement.setAttribute("height", svgElement.getBoundingClientRect().height); + svgElement.style.width = null; + svgElement.style.height= null; + + var HTML_Width = svgElement.getBoundingClientRect().width; + var HTML_Height = svgElement.getBoundingClientRect().height; + var top_left_margin = 15; + var PDF_Width = HTML_Width + (top_left_margin * 2); + var PDF_Height = (PDF_Width * 1.5) + (top_left_margin * 2); + var canvas_image_width = HTML_Width; + var canvas_image_height = HTML_Height; + + var totalPDFPages = Math.ceil(HTML_Height / PDF_Height) - 1; + + html2canvas(svgElement, { + onrendered: function(canvas) { + var myImage = canvas.toDataURL("image/jpeg", 1.0); + var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]); + + pdf.addImage(myImage, 'JPG', top_left_margin, top_left_margin, canvas_image_width, canvas_image_height); + + for (var i = 1; i <= totalPDFPages; i++) { + pdf.addPage(PDF_Width, PDF_Height); + pdf.addImage(imgData, 'JPG', top_left_margin, -(PDF_Height*i)+(top_left_margin*4),canvas_image_width,canvas_image_height); + } + + pdf.save(`${file_name}.pdf`); + + saveAs(pdf, `${file_name}.pdf`); + } + }); + + }, + }, update: observer('i18n.display', 'search', function() { d3.select(this.get('id')).selectAll('svg').remove(); this.get('treemap'); diff --git a/app/controllers/index.js b/app/controllers/index.js index b47f3bc4..1c9a217e 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -25,7 +25,7 @@ export default Ember.Controller.extend({ let locale = this.get('i18n').display return locations.map(function(location){ - return {id: location.id, text: location.get(`name_short_${locale}`) } + return {id: location.id, text: location.get(`name_short_${locale}`) + " (" + location.get('code') + ")" } }) }), @@ -56,6 +56,47 @@ export default Ember.Controller.extend({ }) }), + ruralData: computed('model.agproducts', 'i18n.locale', function() { + let agproducts = get(this, 'model.agproducts'); + let nonags = get(this, 'model.nonags'); + let livestock = get(this, 'model.livestock'); + let landuses = get(this, 'model.landuses'); + let locale = this.get('i18n').display + var self = this + + + var agproducts_data = agproducts.map(function(agproduct){ + var key = "agproduct" + var to_concatenate = self.get('i18n').t(`search.rural.${key}`).string + + return {id: agproduct.id, text: agproduct.get(`name_${locale}`) + ' - ' + to_concatenate, key: key } + }) + + var nonags_data = nonags.map(function(nonags){ + var key = "nonag" + var to_concatenate = self.get('i18n').t(`search.rural.${key}`).string + + return {id: nonags.id, text: nonags.get(`name_${locale}`) + ' - ' + to_concatenate, key: key, key: key } + }) + + var livestock_data = livestock.map(function(livestock){ + var key = "livestock" + var to_concatenate = self.get('i18n').t(`search.rural.${key}`).string + + return {id: livestock.id, text: livestock.get(`name_${locale}`) + ' - ' + to_concatenate, key: key, key: key } + }) + + var landuses_data = landuses.map(function(landuses){ + var key = "land-use" + var to_concatenate = self.get('i18n').t(`search.rural.${key}`).string + + return {id: landuses.id, text: landuses.get(`name_${locale}`) + ' - ' + to_concatenate, key: key, key: key } + }) + + return agproducts_data.concat(nonags_data).concat(livestock_data).concat(landuses_data) + + }), + products: computed.filter('model.products', function (product) { let id = get(this, 'productIds'); return _.contains(`${id}`, get(product, 'id')); @@ -118,6 +159,9 @@ export default Ember.Controller.extend({ transitionLocation(id) { this.transitionToRoute('location.show', id); }, + transitionLocationSearch() { + this.transitionToRoute('search', {queryParams: { filter: 'location' }}); + }, transitionProduct(id) { this.transitionToRoute('product.show', id); }, @@ -127,5 +171,14 @@ export default Ember.Controller.extend({ transitionAgproduct(id) { this.transitionToRoute('agproduct.show', id); }, + transitionLivestock(id) { + this.transitionToRoute('livestock.show', id); + }, + transitionNonag(id) { + this.transitionToRoute('nonag.show', id); + }, + transitionLanduse(id) { + this.transitionToRoute('landUse.show', id); + } } }); diff --git a/app/controllers/search.js b/app/controllers/search.js index a9e974cf..391e0925 100644 --- a/app/controllers/search.js +++ b/app/controllers/search.js @@ -9,22 +9,52 @@ export default Ember.Controller.extend({ entity: ['product', 'industry', 'location', 'rural'], query: null, filter: null, - modelData: computed('model', 'i18n.locale', function() { - let model = get(this, 'model'); + modelData: computed('model', 'filter', 'i18n.locale', function() { + let model = get(this, 'modelCategorized'); let locale = this.get('i18n').display + var self = this - return model.map(function(models){ - if(models.get('profileName') === "agproduct"){ - return {id: models.id, text: models.get(`name_${locale}`) } - } - else{ - return {id: models.id, text: models.get(`name_short_${locale}`) + " (" + models.get('code') + ")" } - } - }) + + if(model.hasOwnProperty("agproduct")){ + + return Object.entries(model).map(function(models){ + + var key = models[0] + + return models[1].map(function(models){ + + var to_concatenate = self.get('i18n').t(`search.rural.${key}`).string + + return {id: models.id, text: models.get(`name_${locale}`) + ' - ' + to_concatenate, key: key } + + }) + + }).reduce((accum, item) => accum.concat(item)) + + } + else{ + + + return Object.entries(model).map(function(models){ + + return models[1].map(function(models){ + return {id: models.id, text: models.get(`name_short_${locale}`) + " (" + models.get('code') + ")" } + }) + + })[0] + + } + }), search: computed('query', function() { return this.get('query'); }), + isRural: computed('filter', function(){ + if(this.get('filter') == 'rural'){ + return true + } + return false + }), modelCategorized: computed('filter', 'model', function(){ return _.groupBy(this.get('model'), (x)=>x.constructor.modelName); }), @@ -96,11 +126,41 @@ export default Ember.Controller.extend({ return get(d,'constructor.modelName') === 'industry'; }); }), - placeHolderText: computed('filter', function() { + subTitleText: computed('filter', function() { if(_.contains(this.get('entity'), this.get('filter'))){ - return `pageheader.search_placeholder.${this.get('filter')}`; + return `search.${this.get('filter')}.subtitle`; } - return `pageheader.search_placeholder`; + return `search.subtitle`; + }), + titleText: computed('filter', function() { + if(_.contains(this.get('entity'), this.get('filter'))){ + return `search.${this.get('filter')}.title`; + } + return `search.title`; + }), + bodyText: computed('filter', function() { + if(_.contains(this.get('entity'), this.get('filter'))){ + return `search.${this.get('filter')}.body`; + } + return `search.body`; + }), + modalTitle: computed('filter', function() { + if(_.contains(this.get('entity'), this.get('filter'))){ + return `search.modal.title.${this.get('filter')}`; + } + return `search.modal.title`; + }), + modalContent: computed('filter', function() { + if(_.contains(this.get('entity'), this.get('filter'))){ + return `search.modal.p1.${this.get('filter')}`; + } + return `search.modal.p1`; + }), + modalLink: computed('filter', function() { + if(_.contains(this.get('entity'), this.get('filter'))){ + return `search.modal.link.${this.get('filter')}`; + } + return `search.modal.link`; }), actions:{ toggleReferenceKey(key) { @@ -118,6 +178,15 @@ export default Ember.Controller.extend({ transitionAgproduct(id) { this.transitionToRoute('agproduct.show', id); }, + transitionLivestock(id) { + this.transitionToRoute('livestock.show', id); + }, + transitionNonag(id) { + this.transitionToRoute('nonag.show', id); + }, + transitionLanduse(id) { + this.transitionToRoute('landUse.show', id); + }, } }); diff --git a/app/index.html b/app/index.html index 368c816f..c3ec9d09 100644 --- a/app/index.html +++ b/app/index.html @@ -72,6 +72,9 @@ + + + {{content-for 'body-footer'}} diff --git a/app/locales/en-col/translations.js b/app/locales/en-col/translations.js index 7fd59f68..7b08e4dd 100644 --- a/app/locales/en-col/translations.js +++ b/app/locales/en-col/translations.js @@ -183,17 +183,17 @@ export default { "graph_builder.builder_questions.export": "Questions: Exports", "graph_builder.builder_questions.import": "Questions: Imports", "graph_builder.builder_questions.industry": "Questions: Industries", - "graph_builder.builder_questions.landUse": "Questions: Land Use ", - "graph_builder.builder_questions.land_harvested": "Questions: Land Harvested", - "graph_builder.builder_questions.land_sown": "Questions: Land Sown", - "graph_builder.builder_questions.livestock_num_farms": "Questions: Number of UPAs", - "graph_builder.builder_questions.livestock_num_livestock": "Questions: Number of livestock", + "graph_builder.builder_questions.landUse": "Land Use ", + "graph_builder.builder_questions.land_harvested": "Land Harvested", + "graph_builder.builder_questions.land_sown": "Land Sown", + "graph_builder.builder_questions.livestock_num_farms": "Number of UPAs", + "graph_builder.builder_questions.livestock_num_livestock": "Number of livestock", "graph_builder.builder_questions.location": "Questions: Locations", - "graph_builder.builder_questions.nonag": "Questions: Non-agricultural Activities", + "graph_builder.builder_questions.nonag": "Non-agricultural Activities", "graph_builder.builder_questions.occupation": "Questions: Occupations", "graph_builder.builder_questions.partner": "Questions: Partners", "graph_builder.builder_questions.product": "Questions: Products", - "graph_builder.builder_questions.production_tons": "Questions: Production", + "graph_builder.builder_questions.production_tons": "Production", "graph_builder.builder_questions.rural": "Questions: Rural activities", "graph_builder.builder_questions.wage": "Questions: Total Wages", "graph_builder.change_graph.geo_description": "Map the data", @@ -628,10 +628,10 @@ export default { "pageheader.search_link": "Search", "pageheader.search_placeholder": "Search for a location, industry, product or rural activity", "pageheader.search_placeholder.header": "Make a search by", - "pageheader.search_placeholder.industry": "Industry or by CIIU code", + "pageheader.search_placeholder.industry": "Find by name or by CIIU code", "pageheader.search_placeholder.location": "Search for a location", "pageheader.search_placeholder.product": "Search for a product", - "pageheader.search_placeholder.rural": "Search for rural activities", + "pageheader.search_placeholder.rural": "Search by agricultural product, land use, agricultural activity or livestock species", "rankings.explanation.body": "", "rankings.explanation.title": "Explanation", "rankings.intro.p": "Compare departments and cities across Colombia.", @@ -669,9 +669,37 @@ export default { "search.message.p1": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.", "search.message.p2": "Use the question mark to expand the information.", "search.modal.title": "CIIU Code", - "search.modal.p1": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", "search.placeholder.select2": "Search by Name or CIIU Code", "search.modal.close": "Close", + "search.modal.title.industry": "CIIU Code", + "search.modal.p1.industry": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", + "search.modal.link.industry": "https://clasificaciones.dane.gov.co/ciiu4-0/ciiu4_dispone", + + "search.modal.title.rural": "Search", + "search.modal.p1.rural": "In this option you can search for an agricultural product, land use, non-agricultural activity or livestock species by name.

In case you do not find what you want, at the bottom you can find each of the agricultural activities and select them directly.", + "search.modal.link.rural": "", + + "search.modal.title.location": "DANE Code", + "search.modal.p1.location": "Numerical classification that identifies economic activities. In Colombia, DANE determines these classifications

", + "search.modal.link.location": "https://www.dane.gov.co/files/censo2005/provincias/subregiones.pdf", + + "search.rural.agproduct": "Agricultural Product", + "search.rural.land-use": "Land Use", + "search.rural.nonag": "Non-agricultural Activities", + "search.rural.livestock": "Live Stock", + + "search.industry.title": "Search for", + "search.industry.subtitle": "Sector or by CIIU code", + "search.industry.body": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.

Use the question mark to expand the information.", + + "search.rural.title": "Search for", + "search.rural.subtitle": "Rural activity", + "search.rural.body": "In the next field you can search by agricultural product, land use, agricultural activity or livestock species.

Use the question mark to expand the information.", + + "search.location.title": "Search by place", + "search.location.subtitle": "", + "search.location.body": "In the next field you can search for a place or DANE code.

Use the question mark to expand the information.", + "table.export_data": "Export Data", "thousands_delimiter": ",", "header_nav.search": "Search by" diff --git a/app/locales/en-mex/translations.js b/app/locales/en-mex/translations.js index 6101d223..fe5e1a63 100644 --- a/app/locales/en-mex/translations.js +++ b/app/locales/en-mex/translations.js @@ -451,9 +451,10 @@ export default { "pageheader.search_link": "Search", "pageheader.search_placeholder": "Search for a location, product or industry", "pageheader.search_placeholder.header": "Make a search by", - "pageheader.search_placeholder.industry": "Industry or by CIIU code", + "pageheader.search_placeholder.industry": "Find by name or by CIIU code", "pageheader.search_placeholder.location": "Search for a location", "pageheader.search_placeholder.product": "Search for a product", + "pageheader.search_placeholder.rural": "Search by agricultural product, land use, agricultural activity or livestock species", "rankings.explanation.body": "", "rankings.explanation.title": "Explanation", "rankings.intro.p": "Compare states and cities across Mexico.", @@ -483,9 +484,29 @@ export default { "search.message.p1": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.", "search.message.p2": "Use the question mark to expand the information.", "search.modal.title": "CIIU Code", - "search.modal.p1": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", "search.placeholder.select2": "Search by Name or CIIU Code", "search.modal.close": "Close", + "search.modal.title.industry": "CIIU Code", + "search.modal.p1.industry": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", + "search.modal.link.industry": "https://clasificaciones.dane.gov.co/ciiu4-0/ciiu4_dispone", + + "search.modal.title.rural": "Search", + "search.modal.p1.rural": "In this option you can search for an agricultural product, land use, non-agricultural activity or livestock species by name.

In case you do not find what you want, at the bottom you can find each of the agricultural activities and select them directly.", + "search.modal.link.rural": "", + + "search.rural.agproduct": "Agricultural Product", + "search.rural.land-use": "Land Use", + "search.rural.nonag": "Agricultural Activities", + "search.rural.livestock": "Live Stock", + + "search.industry.title": "Search for", + "search.industry.subtitle": "Sector or by CIIU code", + "search.industry.body": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.

Use the question mark to expand the information.", + + "search.rural.title": "Search for", + "search.rural.subtitle": "Rural activity", + "search.rural.body": "In the next field you can search by agricultural product, land use, agricultural activity or livestock species.

Use the question mark to expand the information.", + "table.export_data": "Export Data", "thousands_delimiter": ",", "header_nav.search": "Search by" diff --git a/app/locales/en-peru/translations.js b/app/locales/en-peru/translations.js index 0ba1107e..17ce5c9f 100644 --- a/app/locales/en-peru/translations.js +++ b/app/locales/en-peru/translations.js @@ -445,9 +445,10 @@ export default { "pageheader.search_link": "Search", "pageheader.search_placeholder": "Search for location or export product", "pageheader.search_placeholder.header": "Make a search by", - "pageheader.search_placeholder.industry": "Industry or by CIIU code", + "pageheader.search_placeholder.industry": "Find by name or by CIIU code", "pageheader.search_placeholder.location": "Search for location", "pageheader.search_placeholder.product": "Search for an export product", + "pageheader.search_placeholder.rural": "Search by agricultural product, land use, agricultural activity or livestock species", "rankings.explanation.body": "", "rankings.explanation.title": "Explanation", "rankings.intro.p": "Compare departments and provinces across Peru.", @@ -477,9 +478,30 @@ export default { "search.message.p1": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.", "search.message.p2": "Use the question mark to expand the information.", "search.modal.title": "CIIU Code", - "search.modal.p1": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", "search.placeholder.select2": "Search by Name or CIIU Code", "search.modal.close": "Close", + + "search.modal.title.industry": "CIIU Code", + "search.modal.p1.industry": "Numerical classification that identifies economic activities. Although it belongs to the United Nations, in Colombia, DANE performs the last 4-digit classification.", + "search.modal.link.industry": "https://clasificaciones.dane.gov.co/ciiu4-0/ciiu4_dispone", + + "search.modal.title.rural": "Search", + "search.modal.p1.rural": "In this option you can search for an agricultural product, land use, non-agricultural activity or livestock species by name.

In case you do not find what you want, at the bottom you can find each of the agricultural activities and select them directly.", + "search.modal.link.rural": "", + + "search.rural.agproduct": "Agricultural Product", + "search.rural.land-use": "Land Use", + "search.rural.nonag": "Agricultural Activities", + "search.rural.livestock": "Live Stock", + + "search.industry.title": "Search for", + "search.industry.subtitle": "Sector or by CIIU code", + "search.industry.body": "In the next field you can fill out your query, you can also carry out this same search by CIIU code.

Use the question mark to expand the information.", + + "search.rural.title": "Search for", + "search.rural.subtitle": "Rural activity", + "search.rural.body": "In the next field you can search by agricultural product, land use, agricultural activity or livestock species.

Use the question mark to expand the information.", + "table.export_data": "Export data", "thousands_delimiter": ",", "header_nav.search": "Search by" diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index 541efb83..5d12548e 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -183,17 +183,17 @@ export default { "graph_builder.builder_questions.export": "Preguntas: Exportaciones", "graph_builder.builder_questions.import": "Preguntas: Importaciones", "graph_builder.builder_questions.industry": "Preguntas: Sectores", - "graph_builder.builder_questions.landUse": "Preguntas: Usos del suelo", - "graph_builder.builder_questions.land_harvested": "Preguntas: \u00c1rea cosechada", - "graph_builder.builder_questions.land_sown": "Preguntas: \u00c1rea sembrada", - "graph_builder.builder_questions.livestock_num_farms": "Preguntas: N\u00famero de UPAs", - "graph_builder.builder_questions.livestock_num_livestock": "Preguntas: N\u00famero de cabezas de ganado", + "graph_builder.builder_questions.landUse": "Usos del suelo", + "graph_builder.builder_questions.land_harvested": "\u00c1rea cosechada", + "graph_builder.builder_questions.land_sown": "\u00c1rea sembrada", + "graph_builder.builder_questions.livestock_num_farms": "N\u00famero de UPAs", + "graph_builder.builder_questions.livestock_num_livestock": "N\u00famero de cabezas de ganado", "graph_builder.builder_questions.location": "Preguntas: Lugares", - "graph_builder.builder_questions.nonag": "Preguntas: Actividades no agropecuarias", + "graph_builder.builder_questions.nonag": "Actividades no agropecuarias", "graph_builder.builder_questions.occupation": "Preguntas: Ocupaciones", "graph_builder.builder_questions.partner": "Preguntas: Socios Comerciales", "graph_builder.builder_questions.product": "Preguntas: Productos de Exportaci\u00f3n", - "graph_builder.builder_questions.production_tons": "Preguntas: Producci\u00f3n", + "graph_builder.builder_questions.production_tons": "Producci\u00f3n", "graph_builder.builder_questions.rural": "Preguntas: Actividades Rurales", "graph_builder.builder_questions.wage": "N\u00f3mina Salarial", "graph_builder.change_graph.geo_description": "Mapea los datos", @@ -310,7 +310,7 @@ export default { "graph_builder.page_title.industry.departments.wages": "\u00bfQu\u00e9 departamentos en Colombia tienen las mayores n\u00f3minas salariales en este sector?", "graph_builder.page_title.industry.occupations.num_vacancies": "\u00bfQu\u00e9 ocupaciones demanda este sector?", "graph_builder.page_title.landUse.departments.area": "\u00bfQu\u00e9 departamentos tienen este uso del suelo?", - "graph_builder.page_title.landUse.municipalities.area": "\u00bfQu\u00e9 departamentos tienen este uso del suelo?", + "graph_builder.page_title.landUse.municipalities.area": "\u00bfQu\u00e9 municipios tienen este uso del suelo?", "graph_builder.page_title.livestock.departments.num_farms": "\u00bfCu\u00e1ntas UPAs cr\u00edan esta especie pecuaria en cada departamento?", "graph_builder.page_title.livestock.departments.num_livestock": "\u00bfCu\u00e1ntos animales de esta especie pecuaria se cr\u00edan en cada departamento?", "graph_builder.page_title.livestock.municipalities.num_farms": "\u00bfCu\u00e1ntas UPAs cr\u00edan esta especie pecuaria en cada municipio?", @@ -628,10 +628,10 @@ export default { "pageheader.search_link": "Buscar", "pageheader.search_placeholder": "Busque un lugar, sector, producto o actividad rural", "pageheader.search_placeholder.header": "Realice una busqueda por", - "pageheader.search_placeholder.industry": "Sector o por c\u00f3digo CIIU", + "pageheader.search_placeholder.industry": "Busqueda por Nombre o c\u00f3digo CIIU", "pageheader.search_placeholder.location": "Busque un lugar", "pageheader.search_placeholder.product": "Busque un producto", - "pageheader.search_placeholder.rural": "Busque actividades rurales", + "pageheader.search_placeholder.rural": "Busqueda por producto agricola, uso de suelo, actividad agropecuaria o especie pecuaria", "rankings.explanation.body": "", "rankings.explanation.title": "Explicaci\u00f3n", "rankings.intro.p": "Comparaci\u00f3n entre departamentos o ciudades", @@ -669,9 +669,39 @@ export default { "search.message.p1": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.", "search.message.p2": "Haga uso del interrogante para ampliar la información.", "search.modal.title": "CODIGO CIIU", - "search.modal.p1": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", "search.placeholder.select2": "Busqueda por Nombre o Codigo CIIU", "search.modal.close": "Cerrar", + + "search.modal.title.industry": "Codigo CIIU", + "search.modal.p1.industry": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", + "search.modal.link.industry": "https://clasificaciones.dane.gov.co/ciiu4-0/ciiu4_dispone", + + "search.modal.title.rural": "Búsqueda", + "search.modal.p1.rural": "En esta opción puede buscar con nombre un producto agrícola, uso de suelo, actividad no agropecuaria o especie pecuaria.

En caso de no encontrar lo deseado, en la parte inferior puede encontrar cada una de las actividades agropecuarias y seleccionarlas directamente.", + "search.modal.link.rural": "", + + "search.modal.title.location": "Código DANE", + "search.modal.p1.location": "Clasificación numérica que identifica las actividades económicas. En colombia, el DANE determina estas clasificaciones

", + "search.modal.link.location": "https://www.dane.gov.co/files/censo2005/provincias/subregiones.pdf", + + "search.rural.agproduct": "Producto Agrícola", + "search.rural.land-use": "Uso de Suelo", + "search.rural.nonag": "Actividades no Agropecuarias", + "search.rural.livestock": "Especies Pecuarias", + + "search.industry.title": "Realice una busqueda por", + "search.industry.subtitle": "Sector o por codigo CIIU", + "search.industry.body": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.

Haga uso del interrogante para ampliar la información.", + + "search.rural.title": "Búsqueda por", + "search.rural.subtitle": "Una actividad rural", + "search.rural.body": "En el siguiente campo usted podra realizar una búsqueda por producto agrícola, uso del suelo, actividad agropecuaria o especie pecuaria.

Haga uso del interrogante para ampliar la información.", + + + "search.location.title": "Búsqueda por un lugar", + "search.location.subtitle": "", + "search.location.body": "En el siguiente campo usted podrá realizar una búsqueda por un lugar o código DANE.

Haga uso del interrogante para ampliar la información.", + "table.export_data": "Descargar Datos", "thousands_delimiter": ".", "header_nav.search": "REALICE UNA BUSQUEDA POR" diff --git a/app/locales/es-mex/translations.js b/app/locales/es-mex/translations.js index 2b997ed0..1879db1e 100644 --- a/app/locales/es-mex/translations.js +++ b/app/locales/es-mex/translations.js @@ -451,9 +451,10 @@ export default { "pageheader.search_link": "Buscar", "pageheader.search_placeholder": "Busque el lugar, producto o sector", "pageheader.search_placeholder.header": "Realice una busqueda por", - "pageheader.search_placeholder.industry": "Sector o por c\u00f3digo CIIU", + "pageheader.search_placeholder.industry": "Busqueda por Nombre o c\u00f3digo CIIU", "pageheader.search_placeholder.location": "Busque un lugar", "pageheader.search_placeholder.product": "Busque un producto", + "pageheader.search_placeholder.rural": "Busqueda por producto agricola, uso de suelo, actividad agropecuaria o especie pecuaria", "rankings.explanation.body": "", "rankings.explanation.title": "Explicaci\u00f3n", "rankings.intro.p": "Compare entidades y ciudades mexicanas.", @@ -483,9 +484,29 @@ export default { "search.message.p1": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.", "search.message.p2": "Haga uso del interrogante para ampliar la información.", "search.modal.title": "CODIGO CIIU", - "search.modal.p1": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", "search.placeholder.select2": "Busqueda por Nombre o Codigo CIIU", "search.modal.close": "Cerrar", + "search.modal.title.industry": "Codigo CIIU", + "search.modal.p1.industry": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", + "search.modal.link.industry": "https://clasificaciones.dane.gov.co/ciiu4-0/ciiu4_dispone", + + "search.modal.title.rural": "Búsqueda", + "search.modal.p1.rural": "En esta opción puede buscar con nombre un producto agrícola, uso de suelo, actividad no agropecuaria o especie pecuaria.

En caso de no encontrar lo deseado, en la parte inferior puede encontrar cada una de las actividades agropecuarias y seleccionarlas directamente.", + "search.modal.link.rural": "", + + "search.rural.agproduct": "Producto Agrícola", + "search.rural.land-use": "Uso de Suelo", + "search.rural.nonag": "Actividades Agropecuarias", + "search.rural.livestock": "Especies Pecuarias", + + "search.industry.title": "Realice una busqueda por", + "search.industry.subtitle": "Sector o por codigo CIIU", + "search.industry.body": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.

Haga uso del interrogante para ampliar la información.", + + "search.rural.title": "Búsqueda por", + "search.rural.subtitle": "Una actividad rural", + "search.rural.body": "En el siguiente campo usted podra realizar una búsqueda por producto agrícola, uso del suelo, actividad agropecuaria o especie pecuaria.

Haga uso del interrogante para ampliar la información.", + "table.export_data": "Descargar Datos", "thousands_delimiter": ",", "header_nav.search": "REALICE UNA BUSQUEDA POR" diff --git a/app/locales/es-peru/translations.js b/app/locales/es-peru/translations.js index 4c371a1e..19f3d9a4 100644 --- a/app/locales/es-peru/translations.js +++ b/app/locales/es-peru/translations.js @@ -445,9 +445,10 @@ export default { "pageheader.search_link": "Buscar", "pageheader.search_placeholder": "Busque el lugar o producto de exportaci\u00f3n", "pageheader.search_placeholder.header": "Realice una busqueda por", - "pageheader.search_placeholder.industry": "Sector o por c\u00f3digo CIIU", + "pageheader.search_placeholder.industry": "Busqueda por Nombre o c\u00f3digo CIIU", "pageheader.search_placeholder.location": "Busque un lugar", "pageheader.search_placeholder.product": "Busque un producto de exportaci\u00f3n", + "pageheader.search_placeholder.rural": "Busqueda por producto agricola, uso de suelo, actividad agropecuaria o especie pecuaria", "rankings.explanation.body": "", "rankings.explanation.title": "Explicaci\u00f3n", "rankings.intro.p": "Comparaci\u00f3n entre departamentos y provincias de Per\u00fa.", @@ -477,9 +478,29 @@ export default { "search.message.p1": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.", "search.message.p2": "Haga uso del interrogante para ampliar la información.", "search.modal.title": "CODIGO CIIU", - "search.modal.p1": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", "search.placeholder.select2": "Busqueda por Nombre o Codigo CIIU", "search.modal.close": "Cerrar", + "search.modal.title.industry": "Codigo CIIU", + "search.modal.p1.industry": "Clasificacion numerica que identifica las actividades economicas. Aunque pertenece a las naciones unidas, en Colombia, el DANE realiza la ultima clasificacion a 4 digitos.", + "search.modal.link.industry": "https://clasificaciones.dane.gov.co/ciiu4-0/ciiu4_dispone", + + "search.modal.title.rural": "Búsqueda", + "search.modal.p1.rural": "En esta opción puede buscar con nombre un producto agrícola, uso de suelo, actividad no agropecuaria o especie pecuaria.

En caso de no encontrar lo deseado, en la parte inferior puede encontrar cada una de las actividades agropecuarias y seleccionarlas directamente.", + "search.modal.link.rural": "", + + "search.rural.agproduct": "Producto Agrícola", + "search.rural.land-use": "Uso de Suelo", + "search.rural.nonag": "Actividades Agropecuarias", + "search.rural.livestock": "Especies Pecuarias", + + "search.industry.title": "Realice una busqueda por", + "search.industry.subtitle": "Sector o por codigo CIIU", + "search.industry.body": "En el siguiente campo usted podra diligenciar su consulta, tambien usted podra realizar esta misma busqueda por codigo CIIU.

Haga uso del interrogante para ampliar la información.", + + "search.rural.title": "Búsqueda por", + "search.rural.subtitle": "Una actividad rural", + "search.rural.body": "En el siguiente campo usted podra realizar una búsqueda por producto agrícola, uso del suelo, actividad agropecuaria o especie pecuaria.

Haga uso del interrogante para ampliar la información.", + "table.export_data": "Descargar datos", "thousands_delimiter": ",", "header_nav.search": "REALICE UNA BUSQUEDA POR" diff --git a/app/routes/index.js b/app/routes/index.js index a1d613a0..9200a01f 100644 --- a/app/routes/index.js +++ b/app/routes/index.js @@ -9,17 +9,24 @@ export default Ember.Route.extend({ let hash = { locations: this.store.find('location'), products: this.store.find('product', { level: '4digit' }), - industries: this.store.find('industry', { level: 'division' }), - agproducts: this.store.find('agproduct', { level: 'level3' }) + industries: this.store.find('industry', { level: 'division', level: 'class' }), + agproducts: this.store.find('agproduct', { level: 'level3' }), + nonags: this.store.find('nonag', { level: 'level3' }), + livestock: this.store.find('livestock', { level: 'level1' }), + landuses: this.store.find('land-use', { level: 'level2' }) }; return RSVP.hash(hash).then((hash) => { - let {industries, products, locations, agproducts} = hash; + let {industries, products, locations, agproducts, nonags, livestock, landuses} = hash; + return Object.create({ industries: industries, products: products, locations: locations, agproducts: agproducts, + nonags: nonags, + livestock: livestock, + landuses: landuses }); }); }, diff --git a/app/styles/components/_components/_link.scss b/app/styles/components/_components/_link.scss index a8e76bd5..a012e3b7 100755 --- a/app/styles/components/_components/_link.scss +++ b/app/styles/components/_components/_link.scss @@ -29,4 +29,13 @@ a { .link--inactive { color: $colorGrayLighter; pointer-events: none; +} + +a{ + color: $colorWhite; +} + +a:hover{ + color: $colorYellow; + text-decoration: none; } \ No newline at end of file diff --git a/app/styles/components/_modules/_index.scss b/app/styles/components/_modules/_index.scss index 8fb034e9..2543cc2c 100755 --- a/app/styles/components/_modules/_index.scss +++ b/app/styles/components/_modules/_index.scss @@ -462,7 +462,6 @@ .section__card-cian-sophistication_route{ background: $colorSecondary; - height: 100%; padding: 4rem; } diff --git a/app/styles/components/_modules/_results.scss b/app/styles/components/_modules/_results.scss index 481431e5..2ec9fc6b 100755 --- a/app/styles/components/_modules/_results.scss +++ b/app/styles/components/_modules/_results.scss @@ -104,7 +104,7 @@ .results__reference { margin-top: 10rem; padding-top: 4rem; - border-top: 1px solid $colorGrayLight; + border-top: 1px solid $colorWhite; } .results__reference__menu { diff --git a/app/templates/agproduct/-questions.hbs b/app/templates/agproduct/-questions.hbs index fa1d9ac8..6d91af13 100644 --- a/app/templates/agproduct/-questions.hbs +++ b/app/templates/agproduct/-questions.hbs @@ -1,143 +1,85 @@ -
-

{{t 'graph_builder.builder_questions.land_sown'}}

- {{#if (array-contains openPanels 'land_sown') }} -
    -
  • - {{#link-to 'agproduct.visualization' model.id 'departments' 'treemap' 'land_sown' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'departments' 'multiples' 'land_sown' (query-params startDate=firstYear endDate=lastYear search='null') - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'departments' 'geo' 'land_sown' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_geo builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - +
    + +
    +
    +
    +

    Realice una búsqueda por:

    +
    +
    +
    + +
    +

    {{t 'graph_builder.builder_questions.land_sown'}}

    + +
    + {{#link-to 'agproduct.visualization' model.id 'departments' 'geo' 'land_sown' (query-params startDate=lastYear endDate=lastYear search='null') class="builder__questions__question" }} {{t 'graph_builder.page_title.agproduct.departments.land_sown'}} {{/link-to}} - -
    -
  • -
  • - {{#link-to 'agproduct.visualization' model.id 'municipalities' 'treemap' 'land_sown' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'municipalities' 'multiples' 'land_sown' (query-params startDate=firstYear endDate=lastYear search='null') - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - +
    + +
    + {{#link-to 'agproduct.visualization' model.id 'municipalities' 'multiples' 'land_sown' (query-params startDate=firstYear endDate=lastYear search='null') class="builder__questions__question" }} {{t 'graph_builder.page_title.agproduct.municipalities.land_sown'}} {{/link-to}} - +
    +
- - - {{/if}} -

{{t 'graph_builder.builder_questions.land_harvested'}}

- {{#if (array-contains openPanels 'land_harvested') }} -
    -
  • - {{#link-to 'agproduct.visualization' model.id 'departments' 'treemap' 'land_harvested' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'departments' 'multiples' 'land_harvested' (query-params startDate=firstYear endDate=lastYear search='null') - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'departments' 'geo' 'land_harvested' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_geo builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - + +
    +

    {{t 'graph_builder.builder_questions.land_harvested'}}

    + +
    + {{#link-to 'agproduct.visualization' model.id 'departments' 'geo' 'land_harvested' (query-params startDate=lastYear endDate=lastYear search='null') class="builder__questions__question" }} {{t 'graph_builder.page_title.agproduct.departments.land_harvested'}} {{/link-to}} - -
    -
  • -
  • - {{#link-to 'agproduct.visualization' model.id 'municipalities' 'treemap' 'land_harvested' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'municipalities' 'multiples' 'land_harvested' (query-params startDate=firstYear endDate=lastYear search='null') - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - - {{#link-to 'agproduct.visualization' model.id 'municipalities' 'multiples' 'land_harvested' (query-params startDate=firstYear endDate=lastYear search='null') +
    + +
    + + {{#link-to 'agproduct.visualization' model.id 'municipalities' 'multiples' 'land_harvested' (query-params startDate=firstYear endDate=lastYear search='null') class="builder__questions__question" - }} - {{t 'graph_builder.page_title.agproduct.municipalities.land_harvested'}} - {{/link-to}} - + }} + {{t 'graph_builder.page_title.agproduct.municipalities.land_harvested'}} + {{/link-to}} +
    +
- - - {{/if}} -

{{t 'graph_builder.builder_questions.production_tons'}}

- {{#if (array-contains openPanels 'production') }} -
    -
  • - {{#link-to 'agproduct.visualization' model.id 'departments' 'treemap' 'production_tons' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'departments' 'multiples' 'production_tons' (query-params startDate=firstYear endDate=lastYear search='null') - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'departments' 'geo' 'production_tons' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_geo builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - + +
    +

    {{t 'graph_builder.builder_questions.production_tons'}}

    + +
    + {{#link-to 'agproduct.visualization' model.id 'departments' 'geo' 'production_tons' (query-params startDate=lastYear endDate=lastYear search='null') class="builder__questions__question" }} {{t 'graph_builder.page_title.agproduct.departments.production_tons'}} {{/link-to}} - -
    -
  • -
  • - {{#link-to 'agproduct.visualization' model.id 'municipalities' 'treemap' 'production_tons' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'agproduct.visualization' model.id 'municipalities' 'multiples' 'production_tons' (query-params startDate=firstYear endDate=lastYear search='null') - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - - {{#link-to 'agproduct.visualization' model.id 'municipalities' 'multiples' 'production_tons' (query-params startDate=firstYear endDate=lastYear search='null') - class="builder__questions__question" - }} - {{t 'graph_builder.page_title.agproduct.municipalities.production_tons'}} - {{/link-to}} - +
    + +
    + + {{#link-to 'agproduct.visualization' model.id 'municipalities' 'multiples' 'production_tons' (query-params startDate=firstYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.agproduct.municipalities.production_tons'}} + {{/link-to}} +
    +
- - - {{/if}} + + + +
+ + diff --git a/app/templates/components/multiples-graph.hbs b/app/templates/components/multiples-graph.hbs index 438ce6c0..845d7daa 100755 --- a/app/templates/components/multiples-graph.hbs +++ b/app/templates/components/multiples-graph.hbs @@ -1,6 +1,8 @@ -
+
+ +
-
diff --git a/app/templates/components/stream-header.hbs b/app/templates/components/stream-header.hbs index b09b1bda..96a91d83 100755 --- a/app/templates/components/stream-header.hbs +++ b/app/templates/components/stream-header.hbs @@ -60,25 +60,78 @@ {{/if}} {{#if isLandUse}} -

{{model.name}}

+ + + +
+

{{ t 'search.results_rural' }}

+

{{model.name}}

+
+ {{#if isShowingIndex}} {{ partial 'partials/builder-questions-land-use'}} {{/if}} {{/if}} {{#if isAgproduct}} -

{{model.name}}

+ + + +
+

{{ t 'search.rural.agproduct' }}

+

{{model.name}}

+
+ {{#if isShowingIndex}} {{ partial 'partials/builder-questions-agproduct'}} {{/if}} {{/if}} {{#if isNonag}} -

{{model.name}}

+ + + + +
+

{{ t 'search.results_rural' }}

+

{{model.name}}

+
+ {{#if isShowingIndex}} {{ partial 'partials/builder-questions-nonag'}} {{/if}} {{/if}} {{#if isLivestock}} -

{{model.name}}

+ + + +
+

{{ t 'search.results_rural' }}

+

{{model.name}}

+
+ {{#if isShowingIndex}} {{ partial 'partials/builder-questions-livestock'}} {{/if}} diff --git a/app/templates/components/zoomable-treemap.hbs b/app/templates/components/zoomable-treemap.hbs index 889d9eea..4e923c0e 100644 --- a/app/templates/components/zoomable-treemap.hbs +++ b/app/templates/components/zoomable-treemap.hbs @@ -1 +1,9 @@ {{yield}} +
+
+
+ + +
+
+
diff --git a/app/templates/index.hbs b/app/templates/index.hbs index 2e9085d8..ae9998b1 100755 --- a/app/templates/index.hbs +++ b/app/templates/index.hbs @@ -46,9 +46,7 @@
-
- -

{{ t 'index.questions_head_p2' }}

+
{{#if showLocations }}
@@ -84,12 +82,12 @@ {{/if}} {{#if showFarmAndLand }} -
+

{{ t 'index.farmandland_head' }}

- {{autocomplete-input-datlas data_search=agproductsData type='rural' idSelect='agproduct_search'}} + {{autocomplete-input-datlas data_search=ruralData type='rural' idSelect='agproduct_search'}}
{{/if}} @@ -97,13 +95,27 @@
-
-

{{ t 'index.sophistication_route'}}

+ + +
+

{{ t 'search.sophistication_path_place'}}

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc a porta dolor, at vehicula enim. Fusce dignissim massa magna, quis mollis arcu scelerisque fringilla. +

+ + +
+ + +
+

{{ t 'search.sophistication_path_product'}}

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc a porta dolor, at vehicula enim. Fusce dignissim massa magna, quis mollis arcu scelerisque fringilla. Sed semper risus ipsum, tempus pretium leo ullamcorper eget. Donec in erat at elit tempor aliquet vitae quis dolor. Quisque mi erat, luctus sed orci eu, aliquet maximus odio. Quisque tempus scelerisque tortor vel volutpat. Nunc volutpat justo non arcu mollis, a suscipit lacus porttitor. Cras euismod, nunc ac lacinia tristique, ipsum odio tempor metus, at lobortis nibh tellus sed lacus. Quisque mollis cursus sem, nec pellentesque dolor faucibus quis. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc a porta dolor, at vehicula enim. Fusce dignissim massa magna, quis mollis arcu scelerisque fringilla.

+ +
diff --git a/app/templates/industry/show.hbs b/app/templates/industry/show.hbs index f3d20baf..e3f449e5 100755 --- a/app/templates/industry/show.hbs +++ b/app/templates/industry/show.hbs @@ -37,7 +37,7 @@ {{t 'industry.show.employment_growth' yearRange=yearRange}} {{model.displayEmploymentGrowth}} - + {{vistk-dotplot elementId='dotplot--employment-growth' @@ -54,7 +54,7 @@ {{t 'industry.show.avg_wages' year=lastYear}} {{model.lastAvgWage}} - + {{vistk-dotplot elementId='dotplot--avg-wage' @@ -120,6 +120,7 @@ varDependent='employment' elementId='employment-vistk-treemap' class="position-relative" + color='pink' }}
@@ -141,6 +142,7 @@ varDependent='num_vacancies' elementId='occupation-vistk-treemap' class="position-relative" + color='pink' }}
diff --git a/app/templates/land-use/-questions.hbs b/app/templates/land-use/-questions.hbs index b3cfb15f..4767c672 100644 --- a/app/templates/land-use/-questions.hbs +++ b/app/templates/land-use/-questions.hbs @@ -1,41 +1,39 @@ -
-

{{t 'graph_builder.builder_questions.landUse'}}

- {{#if (array-contains openPanels 'area') }} -
    -
  • - {{#link-to 'landUse.visualization' model.id 'departments' 'treemap' 'area' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'landUse.visualization' model.id 'departments' 'geo' 'area' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_geo builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - +
    + +
    +
    +
    +

    Realice una búsqueda por

    +
    +
    +
    + +
    +

    {{t 'graph_builder.builder_questions.landUse'}}

    + +
    + {{#link-to 'landUse.visualization' model.id 'departments' 'geo' 'area' (query-params startDate=lastYear endDate=lastYear search='null') class="builder__questions__question" }} {{t 'graph_builder.page_title.landUse.departments.area'}} {{/link-to}} - -
    -
  • -
  • - {{#link-to 'landUse.visualization' model.id 'municipalities' 'treemap' 'area' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - +
    + +
    + {{#link-to 'landUse.visualization' model.id 'municipalities' 'treemap' 'area' (query-params startDate=lastYear endDate=lastYear search='null') class="builder__questions__question" }} {{t 'graph_builder.page_title.landUse.municipalities.area'}} {{/link-to}} - +
    +
- - - {{/if}} + +
+ + + + diff --git a/app/templates/livestock/-questions.hbs b/app/templates/livestock/-questions.hbs index 1b3acc04..6b564614 100644 --- a/app/templates/livestock/-questions.hbs +++ b/app/templates/livestock/-questions.hbs @@ -1,42 +1,69 @@ -
-

{{t 'graph_builder.builder_questions.livestock_num_farms'}}

- {{#if (array-contains openPanels 'num_farms') }} -
    -
  • - {{#link-to 'livestock.visualization' model.id 'departments' 'treemap' 'num_farms' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} - {{#link-to 'livestock.visualization' model.id 'departments' 'geo' 'num_farms' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_geo builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - +
    + +
    +
    +
    +

    Realice una búsqueda por:

    +
    +
    +
    + +
    +

    {{t 'graph_builder.builder_questions.livestock_num_farms'}}

    + +
    + {{#link-to 'livestock.visualization' model.id 'departments' 'geo' 'num_farms' (query-params startDate=lastYear endDate=lastYear search='null') class="builder__questions__question" }} {{t 'graph_builder.page_title.livestock.departments.num_farms'}} {{/link-to}} - -
    -
  • -
  • - {{#link-to 'livestock.visualization' model.id 'municipalities' 'treemap' 'num_farms' (query-params startDate=lastYear endDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} {{/link-to}} -
    - +
    + +
    + {{#link-to 'livestock.visualization' model.id 'municipalities' 'treemap' 'num_farms' (query-params startDate=lastYear endDate=lastYear search='null') class="builder__questions__question" }} {{t 'graph_builder.page_title.livestock.municipalities.num_farms'}} {{/link-to}} - +
    +
- - + +
+

{{t 'graph_builder.builder_questions.livestock_num_livestock'}}

+ +
+ + {{#link-to 'livestock.visualization' model.id 'departments' 'geo' 'num_livestock' (query-params startDate=lastYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.livestock.departments.num_livestock'}} + {{/link-to}} +
+ +
+ + {{#link-to 'livestock.visualization' model.id 'municipalities' 'treemap' 'num_livestock' (query-params startDate=lastYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.livestock.municipalities.num_livestock'}} + {{/link-to}} +
+ +
+ + + + + + + + diff --git a/app/templates/nonag/-questions.hbs b/app/templates/nonag/-questions.hbs index 47cc90f0..1d158e0d 100644 --- a/app/templates/nonag/-questions.hbs +++ b/app/templates/nonag/-questions.hbs @@ -1,4 +1,44 @@ -
+
+ +
+
+
+

Realice una búsqueda por

+
+
+
+ +
+

{{t 'graph_builder.builder_questions.nonag'}}

+ +
+ + {{#link-to 'nonag.visualization' model.id 'departments' 'geo' 'num_farms' (query-params startDate=lastYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.nonag.departments.num_farms'}} + {{/link-to}} +
+ +
+ + {{#link-to 'nonag.visualization' model.id 'municipalities' 'treemap' 'num_farms' (query-params startDate=lastYear endDate=lastYear search='null') + class="builder__questions__question" + }} + {{t 'graph_builder.page_title.nonag.municipalities.num_farms'}} + {{/link-to}} +
+ +
+ +
+ + + +
+
+ + diff --git a/app/templates/search.hbs b/app/templates/search.hbs index d1ea8166..7b687771 100755 --- a/app/templates/search.hbs +++ b/app/templates/search.hbs @@ -5,8 +5,8 @@
-

{{ t 'pageheader.search_placeholder.header' }}

-

{{t placeHolderText}}

+

{{ t titleText }}

+

{{t subTitleText}}

@@ -14,8 +14,7 @@
-

{{t 'search.message.p1' }}

-

{{t 'search.message.p2' }}

+

{{t bodyText }}

@@ -38,9 +37,9 @@
- -

{{ t 'search.modal.p1' }}

- https://clasificaciones.dane.gov.co/ciiu4-0/ciiu4_dispone + +

{{ t modalContent }}

+ {{ t modalLink }}
@@ -77,6 +76,7 @@ {{#if query}} {{#if filter}} + {{else}} {{#if landuseResults.length}}

{{t 'search.results_landuses'}}

@@ -173,4 +173,34 @@ {{/if}} + + {{#if isRural }} +
+ +
+ {{#each modelCategorizedKeys as |key|}} +
+ {{#if (is-equal key referenceKey)}} + + {{else}} + + {{/if}} +
+ {{/each}} +
+ +
+ + {{#each sortedReferenceBody as |item|}} +
+ {{#link-to (is-concat item.profileName ".show") item.id tagName="a"}}{{item.name}}{{/link-to}} +
+ {{/each}} + +
+ + +
+ {{/if}} +
diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 309fc033..015a0ee1 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -61,28 +61,28 @@
- {{component visualizationComponent - classNames='buildermod__viz' - immutableData=immutableData - modelData=modelData - data=filteredData - dataType=source - varDependent=varDependent - scale=scale - startDate=startDate - dateExtent=dateExtent - endDate=endDate - metadata=metadata - isFiltered=isFiltered - entityType=entityType - entityId=entityId - variable=variable - search=search - graph=graph - elementId=source - }} - - +
+ {{component visualizationComponent + classNames='buildermod__viz' + immutableData=immutableData + modelData=modelData + data=filteredData + dataType=source + varDependent=varDependent + scale=scale + startDate=startDate + dateExtent=dateExtent + endDate=endDate + metadata=metadata + isFiltered=isFiltered + entityType=entityType + entityId=entityId + variable=variable + search=search + graph=graph + elementId=source + }} +
{{#if needsLegend }} {{#unless isGeo }} diff --git a/bower.json b/bower.json index 1d104749..d484485e 100644 --- a/bower.json +++ b/bower.json @@ -22,7 +22,7 @@ "antiscroll": "*", "jquery-mousewheel": "~3.1.4", "jquery-ui": "~1.11.4", - "vis-toolkit": "https://github.com/cid-harvard/vis-toolkit.git#master" + "vis-toolkit": "https://github.com/Dandresfsoto/vis-toolkit.git#master" }, "devDependencies": { "d3": "~3.5.5", diff --git a/public/assets/img/general/illustracion_1.svg b/public/assets/img/general/illustracion_1.svg new file mode 100644 index 00000000..93401417 --- /dev/null +++ b/public/assets/img/general/illustracion_1.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f9dcc324e0a71d29dad26f07fcfe35c7917843b8 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Sun, 1 Aug 2021 16:32:49 -0500 Subject: [PATCH 011/126] Release 0.5 --- app/components/autocomplete-input-datlas.js | 6 +- app/components/category-buttons.js | 112 ++++ app/components/datlas-table.js | 35 +- app/components/geo-map.js | 7 +- app/components/graphbuilder-change-graph.js | 9 +- app/components/vistk-network.js | 15 +- app/components/visualization-legend-geomap.js | 62 ++ app/components/zoomable-treemap.js | 33 +- app/controllers/location/show.js | 1 + app/controllers/visualization.js | 70 ++- app/index.html | 3 +- app/locales/en-col/translations.js | 20 +- app/locales/es-col/translations.js | 20 +- app/routes/industry/visualization.js | 7 + .../components/_components/_datatables.scss | 8 + app/styles/components/_components/_table.scss | 15 + .../components/_components/_tooltip.scss | 13 + .../components/_components/_treemap.scss | 6 +- app/styles/components/_modules/_index.scss | 10 + app/styles/components/_variables.scss | 10 +- .../components/_visualizations/_geo.scss | 18 +- .../components/autocomplete-input-datlas.hbs | 2 +- app/templates/components/category-buttons.hbs | 27 + .../components/graphbuilder-change-graph.hbs | 2 +- .../components/graphbuilder-settings.hbs | 2 +- app/templates/components/stream-header.hbs | 23 +- app/templates/components/table-rank.hbs | 4 +- .../visualization-legend-geomap.hbs | 10 +- app/templates/location/-country-dotplots.hbs | 87 ++- app/templates/location/-country-location.hbs | 19 +- .../location/-department-dotplots.hbs | 120 ++-- .../location/-municipality-dotplots.hbs | 123 ++-- app/templates/location/-questions.hbs | 553 ++++++------------ app/templates/location/-regional-location.hbs | 221 ++++++- .../location/-subregion-dotplots.hbs | 52 +- app/templates/partials/-buildermod-search.hbs | 4 +- app/templates/visualization.hbs | 17 +- .../components/category-buttons-test.js | 27 + 38 files changed, 1120 insertions(+), 653 deletions(-) create mode 100644 app/components/category-buttons.js create mode 100644 app/templates/components/category-buttons.hbs create mode 100644 tests/integration/components/category-buttons-test.js diff --git a/app/components/autocomplete-input-datlas.js b/app/components/autocomplete-input-datlas.js index e5bfb3a8..a0d904b1 100644 --- a/app/components/autocomplete-input-datlas.js +++ b/app/components/autocomplete-input-datlas.js @@ -22,6 +22,8 @@ export default Ember.Component.extend({ var data = this.get('data_search') var placeholder = this.get("placeHolder") + + if(placeholder === null){ placeholder = this.get('i18n').t(`pageheader.search_placeholder.${type}`).string } @@ -47,6 +49,7 @@ export default Ember.Component.extend({ let id = $eventSelect.val(); let text= $(`#${id_select} option:selected`).text(); + let type = self.get('type'); if(id !== ""){ if(type === 'location') { @@ -64,7 +67,7 @@ export default Ember.Component.extend({ self.sendAction(action, id); - } else if (type === 'search') { + } else if (type == 'search') { self.set('search', text); } } @@ -108,6 +111,7 @@ export default Ember.Component.extend({ let id = $eventSelect.val(); let text= $(`#${id_select} option:selected`).text(); + let type = self.get('type'); if(id !== ""){ if(type === 'location') { diff --git a/app/components/category-buttons.js b/app/components/category-buttons.js new file mode 100644 index 00000000..35eb4290 --- /dev/null +++ b/app/components/category-buttons.js @@ -0,0 +1,112 @@ +import Ember from 'ember'; +const {computed, observer, get:get, set} = Ember; + + +function getIcon(name){ + + if(name == "Vegetables, foodstuffs and wood"){ + return { + icon: "fas fa-carrot", + color: "#880E4F" + } + } + else if(name == "Minerals"){ + return { + icon: "fas fa-carrot", + color: "#311B92" + } + } + else if(name == "Chemicals and plastics"){ + return { + icon: "fas fa-atom", + color: "#33691E" + } + } + else if(name == "Textiles and furniture"){ + return { + icon: "fas fa-tshirt", + color: "#F57F17" + } + } + else if(name == "Stone and glass"){ + return { + icon: "fas fa-glass-whiskey", + color: "#9C27B0" + } + } + else if(name == "Metals"){ + return { + icon: "fas fa-industry", + color: "#29B6F6" + } + } + else if(name == "Machinery"){ + return { + icon: "fas fa-industry", + color: "#FFEB3B" + } + } + else if(name == "Electronics"){ + return { + icon: "fas fa-industry", + color: "#CE93D8" + } + } + else if(name == "Transport vehicles"){ + return { + icon: "fas fa-industry", + color: "#1E88E5" + } + } + else{ + return { + icon: "fas fa-industry", + color: "#1E88E5" + } + } +} + +export default Ember.Component.extend({ + i18n: Ember.inject.service(), + categoriesObject: computed('data', 'i18n.locale', function() { + + var categories = this.get('data').map(item => { + return { + name: _.get(item, `parent_name_${this.get('i18n').display}`), + icon_color: getIcon(_.get(item, 'parent_name_en')), + hide: false, + isolate: false + } + }).filter((v,i,a)=>a.findIndex(t=>(t.name === v.name))===i) + + return categories + + }), + didInsertElement: function() { + Ember.run.scheduleOnce('afterRender', this, function() { + + $('.category-button').on("mouseover", function(e) { + + $(this).find("div.tooltip").removeClass("d-none") + + }) + + $('.category-button').on("mouseleave", function(e) { + $(this).find("div.tooltip").addClass("d-none"); + }) + + }); + }, + update: observer('i18n.display', function() { + + }), + actions: { + check(index, attr) { + + this.toggleProperty("checked"); + var temp = this.get('categoriesObject').objectAt(index) + Ember.set(temp, attr, !_.get(temp, attr)); + + } + } +}); diff --git a/app/components/datlas-table.js b/app/components/datlas-table.js index 2900f1a8..f302829c 100644 --- a/app/components/datlas-table.js +++ b/app/components/datlas-table.js @@ -203,29 +203,29 @@ export default Ember.Component.extend(TableMap, { }) }), + getUrl: computed('data.[]', 'tableMap', 'i18n.locale', 'source', 'search', 'startDate', function(){ + if(this.get('i18n').display === 'es'){ + return "https://cdn.datatables.net/plug-ins/1.10.16/i18n/Spanish.json" + } + else{ + return "https://cdn.datatables.net/plug-ins/1.10.16/i18n/English.json" + } + }), renderTable: computed('data.[]', 'id', 'updatedData', 'titles', 'tableMap', 'droppedColumns', 'columns', 'i18n.locale', 'source', 'search', 'startDate', function() { var data = this.get('data'); var id_element = this.get('id'); var updatedData = this.get('updatedData'); - console.log(updatedData) - var columns = this.get('updateTitles'); let source = this.get('source'); let self = this; var export_data_text = this.get('i18n').t('table.export_data').string; + var url = this.get("getUrl") - if(this.get('i18n').display === 'es'){ - var url = "https://cdn.datatables.net/plug-ins/1.10.16/i18n/Spanish.json" - } - else{ - var url = "https://cdn.datatables.net/plug-ins/1.10.16/i18n/English.json" - } - var table = $(id_element).DataTable({ dom: 'Bfrtip', lengthChange: false, @@ -247,6 +247,7 @@ export default Ember.Component.extend(TableMap, { }, }); + $(`${id_element} tbody`).on( 'click', 'tr', function () { if(!$(event.target).attr('class')){ @@ -275,15 +276,27 @@ export default Ember.Component.extend(TableMap, { }); }, update: observer('i18n.display', 'search', 'data.[]', function() { - console.log("update") + var id = this.get('id'); var updatedData = this.get('updatedData'); + var columns = this.get('updateTitles'); + var datatable = new $.fn.dataTable.Api( id ); datatable.clear(); + + columns.forEach((item, index) => { + $(datatable.column(index).header()).text(item.title) + }) + datatable.rows.add(updatedData); datatable.draw(); - }) + }), + willDestroyElement: function() { + this.removeObserver('i18n.locale', this, this.update); + this.removeObserver('search', this, this.update); + this.removeObserver('data.[]', this, this.update); + }, }); diff --git a/app/components/geo-map.js b/app/components/geo-map.js index bda5ff91..e61ccfbb 100644 --- a/app/components/geo-map.js +++ b/app/components/geo-map.js @@ -14,7 +14,7 @@ export default Ember.Component.extend({ let map = new L.mapbox.map(this.get('elementId'), 'gwezerek.22ab4aa8,gwezerek.da867b0d', { accessToken: this.accessToken, center: this.get('featureToggle.geo_center'), - zoom: 5, + zoom: 6, maxZoom: 19, minZoom: 5, zoomControl: false, @@ -74,6 +74,9 @@ export default Ember.Component.extend({ } }; }), + getSecondVar: computed(function(){ + return '' + }), addLabelsPane: function() { let map = this.get('baseMap'); L.mapbox.accessToken = this.accessToken; @@ -92,7 +95,7 @@ export default Ember.Component.extend({ .t(`graph_builder.table.${this.get('varDependent')}`); let textValue = _.get(this.get('valueMap').get(location.cid_id), 'value'); this.set('numberFormat', textValue); - var toolTipText = ` ${location.name}
${textKey} : ${this.get('numberFormat')}`; + var toolTipText = `
${location.name}
${textKey} : ${this.get('numberFormat')} ${this.get('getSecondVar')}
`; marker.bindPopup(toolTipText, {closeButton: false}); marker.on('mouseover', function () { diff --git a/app/components/graphbuilder-change-graph.js b/app/components/graphbuilder-change-graph.js index 41c6d49d..08d9ea0a 100644 --- a/app/components/graphbuilder-change-graph.js +++ b/app/components/graphbuilder-change-graph.js @@ -16,6 +16,13 @@ export default Ember.Component.extend({ }), click: function() { this.sendAction('toggleVisualization', get(this, 'type')); - } + }, + didInsertElement: function() { + Ember.run.scheduleOnce('afterRender',this , function() { + tippy('.tooltip_graph', { + theme: 'datlas', + }); + }); + }, }); diff --git a/app/components/vistk-network.js b/app/components/vistk-network.js index 5d78c41b..10242696 100644 --- a/app/components/vistk-network.js +++ b/app/components/vistk-network.js @@ -7,7 +7,7 @@ export default Ember.Component.extend({ i18n: Ember.inject.service(), tagName: 'div', height: 500, - classNames: ['buildermod__viz--white','buildermod__viz'], + classNames: ['buildermod__viz'], attributeBindings: ['width','height'], varIndependent: ['group', 'code'], id: computed('elementId', function() { @@ -159,6 +159,19 @@ export default Ember.Component.extend({ Ember.run.scheduleOnce('afterRender', this , function() { if(!this.get('width')){ this.set('width', this.$().parent().width()); } d3.select(this.get('id')).call(this.get('network')); + + if(this.get('showMiddle')){ + var svg = d3.select(this.get('id')).select('svg') + var line = svg.append("g").append("line") + + line.attr("x1", parseInt(svg.style("width"), 10)/2) + line.attr("y1", 0) + line.attr("x2", parseInt(svg.style("width"), 10)/2) + line.attr("y2", parseInt(svg.style("height"), 10)) + line.attr("stroke-dasharray", "15") + line.attr("stroke", "#FFCD00") + } + }); }, willDestroyElement: function() { diff --git a/app/components/visualization-legend-geomap.js b/app/components/visualization-legend-geomap.js index 926b6130..ac97cb6e 100644 --- a/app/components/visualization-legend-geomap.js +++ b/app/components/visualization-legend-geomap.js @@ -1,4 +1,66 @@ import Ember from 'ember'; export default Ember.Component.extend({ + actions: { + savePng() { + + var svgElement = $(`.leaflet-zoom-animated`).get(0) + var d = new Date(); + var file_name = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() + + svgElement.setAttribute("width", svgElement.getBoundingClientRect().width); + svgElement.setAttribute("height", svgElement.getBoundingClientRect().height); + svgElement.style.width = null; + svgElement.style.height= null; + + html2canvas($(`.visualizationComponent_div`).get(0), { + allowTaint: true, + onrendered: function(canvas) { + var myImage = canvas.toDataURL("image/png"); + saveAs(myImage, `${file_name}.png`); + } + }); + + }, + savePdf() { + + var svgElement = $(`.leaflet-zoom-animated`).get(0) + var d = new Date(); + var file_name = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() + + svgElement.setAttribute("width", svgElement.getBoundingClientRect().width); + svgElement.setAttribute("height", svgElement.getBoundingClientRect().height); + svgElement.style.width = null; + svgElement.style.height= null; + + var HTML_Width = svgElement.getBoundingClientRect().width; + var HTML_Height = svgElement.getBoundingClientRect().height; + var top_left_margin = 15; + var PDF_Width = HTML_Width + (top_left_margin * 2); + var PDF_Height = (PDF_Width * 1.5) + (top_left_margin * 2); + var canvas_image_width = HTML_Width; + var canvas_image_height = HTML_Height; + + var totalPDFPages = Math.ceil(HTML_Height / PDF_Height) - 1; + + html2canvas($(`.visualizationComponent_div`).get(0), { + onrendered: function(canvas) { + var myImage = canvas.toDataURL("image/jpeg", 1.0); + var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]); + + pdf.addImage(myImage, 'JPG', top_left_margin, top_left_margin, canvas_image_width, canvas_image_height); + + for (var i = 1; i <= totalPDFPages; i++) { + pdf.addPage(PDF_Width, PDF_Height); + pdf.addImage(imgData, 'JPG', top_left_margin, -(PDF_Height*i)+(top_left_margin*4),canvas_image_width,canvas_image_height); + } + + pdf.save(`${file_name}.pdf`); + + saveAs(pdf, `${file_name}.pdf`); + } + }); + + }, + } }); diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js index 4061b120..3afb2782 100644 --- a/app/components/zoomable-treemap.js +++ b/app/components/zoomable-treemap.js @@ -27,12 +27,21 @@ export default Ember.Component.extend({ }), nestedData: computed('updatedData', 'search', function () { var updatedData = this.get('updatedData'); - if(updatedData[0].hasOwnProperty("group")){ - return d3.nest().key(function(d) { return d.group; }).entries(updatedData); - } - else{ - return d3.nest().entries(updatedData); + + if(updatedData[0] !== undefined){ + if(updatedData[0].hasOwnProperty("group")){ + + if(updatedData[0].group == undefined){ + return d3.nest().entries(updatedData); + } + + return d3.nest().key(function(d) { return d.group; }).entries(updatedData); + } + else{ + return d3.nest().entries(updatedData); + } } + }), getColors: computed('updatedData', 'search', 'color', function () { @@ -226,6 +235,11 @@ export default Ember.Component.extend({ .attr("class", "child") .call(rect) + children.append("text") + .attr("class", "ctext") + .text(function(d) { return d.key; }) + .call(text2); + g.append("rect") .attr("class", "parent") .call(rect); @@ -323,7 +337,7 @@ export default Ember.Component.extend({ } function text2(text) { - text.attr("x", function(d) { return x(d.x + d.dx) - this.getComputedTextLength() - 6; }) + text.attr("x", function(d) { return x(d.x) + 6; }) .attr("y", function(d) { return y(d.y + d.dy) - 6; }) .style("opacity", function(d) { @@ -341,7 +355,10 @@ export default Ember.Component.extend({ return 0 } - }); + }) + .style("fill", "white") + //.style("font-size", "1rem") + .style("font-family", "sans-serif"); } function rect(rect) { @@ -433,7 +450,7 @@ export default Ember.Component.extend({ }, }, - update: observer('i18n.display', 'search', function() { + update: observer('i18n.display', 'updatedData', function() { d3.select(this.get('id')).selectAll('svg').remove(); this.get('treemap'); }) diff --git a/app/controllers/location/show.js b/app/controllers/location/show.js index 95176f11..fda2e837 100644 --- a/app/controllers/location/show.js +++ b/app/controllers/location/show.js @@ -22,6 +22,7 @@ export default Ember.Controller.extend({ dotplotData: computed.oneWay('model.dotplotData'), occupationData: computed.oneWay('model.occupations'), productsData: computed.oneWay('model.productsData'), + inmutableProductsData: computed.oneWay('model.productsData'), industriesData: computed.oneWay('model.industriesData'), hasTimeseries: computed.notEmpty('model.timeseries'), diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index 004e5f2b..afddb3b9 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -21,7 +21,48 @@ export default Ember.Controller.extend({ var locations = Object.entries(this.get('model.metaData.locations')) return locations.filter(item => item[1].level === "department").map((item) => { - return {id:item[1].id, text:item[1].name_short_es} + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name} (${item[1].code})`} + }) + }), + + citiesData: computed('model', function(){ + + var cities = Object.entries(this.get('model.metaData.locations')) + + return cities.filter(item => item[1].level === "msa" || item[1].level === "department").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name} (${item[1].code})`} + }) + }), + + municipalitiesData: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.locations')) + + return locations.filter(item => item[1].level === "municipality" || item[1].level === "department").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name} (${item[1].code})`} + }) + }), + + productsData: computed('model', function(){ + + console.log(this.get("model")) + + var locations = Object.entries(this.get('model.metaData.products')) + + return locations.filter(item => item[1].level === "4digit").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name} (${item[1].code})`} }) }), @@ -97,6 +138,29 @@ export default Ember.Controller.extend({ isGeo: computed.equal('visualization','geo'), isScatter: computed.equal('visualization','scatter'), + filterData: computed('source', function(){ + + if(this.get('source') == 'departments'){ + return this.get('locationsData') + } + else if(this.get('source') == 'cities'){ + return this.get('citiesData') + } + else if(this.get('source') == 'municipalities'){ + return this.get('municipalitiesData') + } + else if(this.get('source') == 'products'){ + return this.get('productsData') + } + else{ + return [] + } + }), + + placeHolderText: computed('i18n.locale', 'source', function(){ + return this.get('i18n').t(`visualization.source.${this.get('source')}`).string + }), + isFixedHeight: computed('model.visualization', function() { let vis = this.get('model.visualization'); return _.contains(['geo', 'treemap', 'scatter', 'similarity'], vis) ? true : false; @@ -422,13 +486,17 @@ export default Ember.Controller.extend({ if(entityType === 'industry') { return 'assets/img/hero_images/industry/industry_1.jpg'; } }), searchFilter: function(data) { + let search = _.deburr(this.get('search')); + var regexp = new RegExp(search.replace(/(\S+)/g, function(s) { return "\\b(" + s + ")(.*)"; }) .replace(/\s+/g, ''), "gi"); + return _.filter(data, (d) => { let longName = get(d,`name_${this.get('i18n').display}`); let shortName = get(d,`name_short_${this.get('i18n').display}`); let code = get(d, 'code'); + return _.deburr(`${shortName} ${longName} ${code}`).match(regexp); }); }, diff --git a/app/index.html b/app/index.html index c3ec9d09..03d13dc7 100644 --- a/app/index.html +++ b/app/index.html @@ -52,7 +52,8 @@ - + + diff --git a/app/locales/en-col/translations.js b/app/locales/en-col/translations.js index 7b08e4dd..f9ed4f2b 100644 --- a/app/locales/en-col/translations.js +++ b/app/locales/en-col/translations.js @@ -257,7 +257,7 @@ export default { "graph_builder.explanation.agproduct.municipalities.land_sown": "Shows the composition of locations that sow this agricultural product, by area of land sown. Source: Agronet (2017), Ministerio de Agricultura. Link", "graph_builder.explanation.agproduct.municipalities.production_tons": "Shows the composition of locations that produce this agricultural product, by tons produced. Source: Agronet (2017), Ministerio de Agricultura. Link", "graph_builder.explanation.hide": "Hide", - "graph_builder.explanation.industry.cities.employment": "Shows the composition by department of formal employment in the industry. Source: PILA.", + "graph_builder.explanation.industry.cities.employment": "Shows the composition by city of formal employment in the industry. Source: PILA.", "graph_builder.explanation.industry.cities.wages": "Shows the composition by department of total wages paid by the industry. Source: PILA.", "graph_builder.explanation.industry.departments.employment": "Shows the composition by department of formal employment in the industry. Source: PILA.", "graph_builder.explanation.industry.departments.wages": "Shows the composition by department of total wages paid by the industry. Source: PILA.", @@ -702,5 +702,21 @@ export default { "table.export_data": "Export Data", "thousands_delimiter": ",", - "header_nav.search": "Search by" + "header_nav.search": "Search by", + + "visualization.geo": "Map the data", + "visualization.treemap": "See composition at different levels", + "visualization.multiples": "Compare growth over time", + + "visualization.clear": "Clear", + + "visualization.source.departments": "Insert the department name or CIIU code", + "visualization.source.cities": "Find by department, city or CIIU code", + "visualization.source.municipalities": "Find by department, municipaly or CIIU code", + "visualization.source.products": "Find by prodcut name or tariff heading", + + "visualization.search.departments": "Search by departament or DANE code", + "visualization.search.cities": "Find by department, city or DANE code", + "visualization.search.municipalities": "Find by department, municipaly or DANE code", + "visualization.search.products": "Find by prodcut name or tariff heading", }; diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index 5d12548e..bb6fd3ec 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -257,7 +257,7 @@ export default { "graph_builder.explanation.agproduct.municipalities.land_sown": "Muestra la composici\u00f3n de lugares que siembran este producto agropecuario, por \u00e1rea sembrada. Fuente: Agronet (2017), Ministerio de Agricultura. Link", "graph_builder.explanation.agproduct.municipalities.production_tons": "Muestra la composici\u00f3n de lugares que producen este producto agropecuario, por toneladas producidas. Fuente: Agronet (2017), Ministerio de Agricultura. Link", "graph_builder.explanation.hide": "Oculte", - "graph_builder.explanation.industry.cities.employment": "Muestra la composici\u00f3n por departamentos del empleo formal del sector. Fuente: PILA.", + "graph_builder.explanation.industry.cities.employment": "Muestra la composici\u00f3n por ciudades del empleo formal del sector. Fuente: PILA.", "graph_builder.explanation.industry.cities.wages": "Muestra la composici\u00f3n por departamentos de la n\u00f3mina salarial del sector. Fuente: PILA.", "graph_builder.explanation.industry.departments.employment": "Muestra la composici\u00f3n por departamentos del empleo formal del sector. Fuente: PILA.", "graph_builder.explanation.industry.departments.wages": "Muestra la composici\u00f3n por departamentos de la n\u00f3mina salarial del sector. Fuente: PILA.", @@ -704,5 +704,21 @@ export default { "table.export_data": "Descargar Datos", "thousands_delimiter": ".", - "header_nav.search": "REALICE UNA BUSQUEDA POR" + "header_nav.search": "REALICE UNA BUSQUEDA POR", + + "visualization.geo": "Mapea los datos", + "visualization.treemap": "Muestra la descomposici\u00f3n en varios niveles", + "visualization.multiples": "Muestra la evolución en varios períodos", + + "visualization.clear": "Borrar", + + "visualization.source.departments": "Ingrese el nombre del departamento o código CIIU", + "visualization.source.cities": "Búsqueda por departamento, ciudad o código CIIU", + "visualization.source.municipalities": "Búsque por departamento, municipio o código CIIU", + "visualization.source.products": "Búsque por nombre de producto o partida arancelaría", + + "visualization.search.departments": "Búsque por departamento o código DANE", + "visualization.search.cities": "Búsque por departamento, ciudad o código DANE", + "visualization.search.municipalities": "Búsque por departamento, municipio o código DANE", + "visualization.search.products": "Búsque por nombre de producto o partida arancelaría", }; diff --git a/app/routes/industry/visualization.js b/app/routes/industry/visualization.js index 63f77e27..037060e4 100644 --- a/app/routes/industry/visualization.js +++ b/app/routes/industry/visualization.js @@ -26,6 +26,7 @@ export default Ember.Route.extend({ set(this, 'visualization_type', visualization_type); set(this, 'variable', variable); + return RSVP.hash(this.get(source_type)).then((hash) => { if(source_type === 'departments') { return this.departmentDataMunging(hash); @@ -66,10 +67,15 @@ export default Ember.Route.extend({ cities: $.getJSON(`${apiURL}/data/industry/${id}/participants/?level=msa`) }; }), + departmentDataMunging(hash) { let {model, departments} = hash; let locationsMetadata = this.modelFor('application').locations; + var cities = RSVP.hash(this.get("cities")).then((hash) => { + return this.citiesDataMunging(hash); + }) + let data = _.map(departments.data, (d) => { let industry = locationsMetadata[d.department_id]; d.avg_wage = d.wages/d.employment; @@ -86,6 +92,7 @@ export default Ember.Route.extend({ return Ember.Object.create({ entity: model, data: data, + cities: cities }); }, occupationsDataMunging(hash) { diff --git a/app/styles/components/_components/_datatables.scss b/app/styles/components/_components/_datatables.scss index 0ce52bc9..23d306eb 100644 --- a/app/styles/components/_components/_datatables.scss +++ b/app/styles/components/_components/_datatables.scss @@ -61,3 +61,11 @@ table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before, table.dataT .form-control-sm{ font-size: 1.8rem; } + +.dt-bootstrap4{ + text-align: right; +} + +.dt-buttons{ + margin-bottom: 3rem !important; +} diff --git a/app/styles/components/_components/_table.scss b/app/styles/components/_components/_table.scss index b587b6a8..a31c0078 100755 --- a/app/styles/components/_components/_table.scss +++ b/app/styles/components/_components/_table.scss @@ -76,3 +76,18 @@ .select2-container{ flex: 1 1 auto !important; } + +.table_cell_rank{ + padding: 3px 8px; + border-radius: 1px; + background-color: $colorThree; +} + + +.table_cell_rank.value.top{ + background-color: $colorRed; +} + +.table_cell_rank.value.top:hover{ + background-color: $colorRedDark; +} diff --git a/app/styles/components/_components/_tooltip.scss b/app/styles/components/_components/_tooltip.scss index 78bbdbdc..9a3ecd7c 100755 --- a/app/styles/components/_components/_tooltip.scss +++ b/app/styles/components/_components/_tooltip.scss @@ -38,3 +38,16 @@ margin-left: -10px; } } + +.tooltip-category{ + position: absolute; + top: 5px; + left: 50%; + background: $colorSecondary; + height: auto; + max-width: none; +} + +.tooltip-category:after{ + border-top-color: $colorSecondary; +} diff --git a/app/styles/components/_components/_treemap.scss b/app/styles/components/_components/_treemap.scss index e4fe4e95..1342b989 100644 --- a/app/styles/components/_components/_treemap.scss +++ b/app/styles/components/_components/_treemap.scss @@ -48,7 +48,7 @@ rect.parent { .children rect.parent { fill: #bbb; - fill-opacity: 1; + fill-opacity: 0.5; } .children:hover rect.child { @@ -76,4 +76,8 @@ rect{ .depth rect, .grandparent rect { stroke: $colorBase; +} + +text.ctext{ + font-size: 1rem; } \ No newline at end of file diff --git a/app/styles/components/_modules/_index.scss b/app/styles/components/_modules/_index.scss index 2543cc2c..a5008cd8 100755 --- a/app/styles/components/_modules/_index.scss +++ b/app/styles/components/_modules/_index.scss @@ -505,3 +505,13 @@ .btn-large{ font-size: 3rem; } + +.tippy-box[data-theme~='datlas'] { + background-color: $colorSecondary; + color: $colorBase; + font-size: 2rem; +} + +.tippy-arrow{ + color: $colorSecondary; +} diff --git a/app/styles/components/_variables.scss b/app/styles/components/_variables.scss index 8e058d53..67c3c716 100755 --- a/app/styles/components/_variables.scss +++ b/app/styles/components/_variables.scss @@ -77,11 +77,11 @@ $colorRedQ3-5: rgb(222,45,38); $colorRedQ4-5: rgb(165,15,21); //Map Green Scale -$colorGreenQ0-5: rgb(237,248,233); -$colorGreenQ1-5: rgb(186,228,179); -$colorGreenQ2-5: rgb(116,196,118); -$colorGreenQ3-5: rgb(49,163,84); -$colorGreenQ4-5: rgb(0,109,44); +$colorGreenQ0-5: rgb(255,224,178); +$colorGreenQ1-5: rgb(255,183,77); +$colorGreenQ2-5: rgb(255,152,0); +$colorGreenQ3-5: rgb(245,124,0); +$colorGreenQ4-5: rgb(230,81,0); $colorNavy200: rgb( 204, 204, 214 ); $colorNavy400: rgb( 154, 153, 172 ); diff --git a/app/styles/components/_visualizations/_geo.scss b/app/styles/components/_visualizations/_geo.scss index f3cd7943..292508a4 100755 --- a/app/styles/components/_visualizations/_geo.scss +++ b/app/styles/components/_visualizations/_geo.scss @@ -6,15 +6,16 @@ // Nested here instead of giving ever el a class in the js .geo__wrap { - height: $minBuildermodHeight; + height: 80rem; padding: 0; - border: 1px solid $colorGrayLight; + background: $colorBase; svg { position: relative; } .leaflet-control-attribution { + display: none; padding: 5px 7px; background: $colorWhite; color: $colorGrayLighter; @@ -27,14 +28,14 @@ } .geo__department { - fill: #000; - stroke: $colorGrayLight; - stroke-width: 2px; + fill: $colorWhite; + stroke: $colorWhite; + stroke-width: 1px; } // If the value of the data is exactly 0 .q0 { - fill: $colorWhite; + fill: $colorSecondary; } // The scale if the value is positive @@ -94,7 +95,6 @@ } .leaflet-left .leaflet-control { - box-shadow: -1px 2px 2px $colorGrayLighter; margin: 0 0 $baseSpace*1.5 $baseSpace*1.5; } @@ -107,3 +107,7 @@ font-weight: 300; color: $colorGrayLight; } + +.geo_background{ + background: $colorBase; +} diff --git a/app/templates/components/autocomplete-input-datlas.hbs b/app/templates/components/autocomplete-input-datlas.hbs index 9c0d94bd..8e2a9155 100644 --- a/app/templates/components/autocomplete-input-datlas.hbs +++ b/app/templates/components/autocomplete-input-datlas.hbs @@ -4,7 +4,7 @@
{{#if reset }} - + {{/if}}
diff --git a/app/templates/components/category-buttons.hbs b/app/templates/components/category-buttons.hbs new file mode 100644 index 00000000..24979f32 --- /dev/null +++ b/app/templates/components/category-buttons.hbs @@ -0,0 +1,27 @@ +
+ {{#each category in categoriesObject}} + +
+
+

{{category.name}}

+

{{_view.contentIndex}}

+ +
+ + +
+
+ + +
+ +
+ + + + +
+ + + {{/each}} +
diff --git a/app/templates/components/graphbuilder-change-graph.hbs b/app/templates/components/graphbuilder-change-graph.hbs index 065fe11c..d35f3ad1 100755 --- a/app/templates/components/graphbuilder-change-graph.hbs +++ b/app/templates/components/graphbuilder-change-graph.hbs @@ -1,3 +1,3 @@ -
+
diff --git a/app/templates/components/graphbuilder-settings.hbs b/app/templates/components/graphbuilder-settings.hbs index cd61eeb9..67893424 100755 --- a/app/templates/components/graphbuilder-settings.hbs +++ b/app/templates/components/graphbuilder-settings.hbs @@ -7,7 +7,7 @@
-
+
diff --git a/app/templates/components/stream-header.hbs b/app/templates/components/stream-header.hbs index 96a91d83..fbb450c7 100755 --- a/app/templates/components/stream-header.hbs +++ b/app/templates/components/stream-header.hbs @@ -1,13 +1,15 @@
{{#if isLocation}} -
    - {{#each crumb in breadcrumbs}} - {{#link-to 'location.show' crumb.id tagName='li' class='breadcrumb'}} - {{crumb.name_es}} - {{/link-to}} - {{/each}} -
+ + + {{/if}} {{#if isIndustry}} @@ -24,7 +26,12 @@
{{/if}} {{#if isLocation}} -

{{model.name}}

+ +
+

{{ t 'general.locations' }}

+

{{model.name}} ({{model.code}})

+
+ {{#if isShowingIndex}} {{ partial 'partials/builder-questions-location'}} {{/if}} diff --git a/app/templates/components/table-rank.hbs b/app/templates/components/table-rank.hbs index 52d89828..4faad7f7 100755 --- a/app/templates/components/table-rank.hbs +++ b/app/templates/components/table-rank.hbs @@ -1,11 +1,11 @@ -
+
{{#link-to 'rankings'}} {{#if isEmpty}}
N/A
{{else}} -
+
#{{rank}}
{{/if}} diff --git a/app/templates/components/visualization-legend-geomap.hbs b/app/templates/components/visualization-legend-geomap.hbs index d026a122..4f4eeb4e 100644 --- a/app/templates/components/visualization-legend-geomap.hbs +++ b/app/templates/components/visualization-legend-geomap.hbs @@ -1,8 +1,14 @@ -
+
{{#each key in legend}} -
+
{{key.start}} - {{key.end}}
{{else}} {{/each}} +
+
+ + +
+
diff --git a/app/templates/location/-country-dotplots.hbs b/app/templates/location/-country-dotplots.hbs index b9835242..22db3239 100755 --- a/app/templates/location/-country-dotplots.hbs +++ b/app/templates/location/-country-dotplots.hbs @@ -1,26 +1,21 @@ - +
+ + + - - - - + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + +
- {{t 'country.show.total'}} - - {{t 'country.show.dotplot-column'}} -
{{t 'country.show.total'}}{{t 'country.show.dotplot-column'}}
- {{t 'location.show.gdp_pc'}} ({{model.censusYear}}) - - {{t 'country.show.gdp_per_capita'}} - + {{t 'location.show.gdp_pc'}} ({{model.censusYear}}){{t 'country.show.gdp_per_capita'}} {{vistk-dotplot - elementId='dotplot--gdp-pc' + elementId='dotplot-gdp-pc' data=dotplotData varX='gdp_pc_real' varText='name' @@ -29,14 +24,11 @@ }}
- {{t 'location.show.gdp'}} ({{model.censusYear}}) - - {{t 'country.show.gdp'}} - + {{t 'location.show.gdp'}} ({{model.censusYear}}){{t 'country.show.gdp'}} {{vistk-dotplot elementId='dotplot--gdp' data=dotplotData @@ -46,14 +38,11 @@ }}
- {{t 'location.show.population'}} ({{model.censusYear}}) - - {{t 'country.show.population'}} - + {{t 'location.show.population'}} ({{model.censusYear}}){{t 'country.show.population'}} {{vistk-dotplot elementId='dotplot--population' data=dotplotData @@ -65,14 +54,11 @@ }}
- {{t 'location.show.eci'}} ({{model.lastYear}}) - - {{t 'country.show.eci'}} - + {{t 'location.show.eci'}} ({{model.lastYear}}){{t 'country.show.eci'}} {{vistk-dotplot elementId='dotplot--eci' data=dotplotData @@ -84,14 +70,11 @@ }}
- {{t 'location.show.ag_farmsize'}} - - {{t 'country.show.ag_farmsize'}} - + {{t 'location.show.ag_farmsize'}}{{t 'country.show.ag_farmsize'}} {{vistk-dotplot elementId='dotplot--agfarmsizes' data=model.agFarmsizesData @@ -101,14 +84,11 @@ }}
- {{t 'location.show.nonag_farmsize'}} - - {{t 'country.show.nonag_farmsize'}} - + {{t 'location.show.nonag_farmsize'}}{{t 'country.show.nonag_farmsize'}} {{vistk-dotplot elementId='dotplot--nonagfarmsizes' data=model.nonagFarmsizesData @@ -118,6 +98,7 @@ }}
diff --git a/app/templates/location/-country-location.hbs b/app/templates/location/-country-location.hbs index 8922cf8a..1b82af73 100755 --- a/app/templates/location/-country-location.hbs +++ b/app/templates/location/-country-location.hbs @@ -11,7 +11,19 @@ agcensusFirstYear=agcensusFirstYear agcensusLastYear=agcensusLastYear }} -
+ + +
+
+
+ {{partial 'location/country-dotplots'}} +
+
+
+ + + + + + {{#if hasIndustriesData }} diff --git a/app/templates/location/-department-dotplots.hbs b/app/templates/location/-department-dotplots.hbs index 9567c4bf..c151e185 100755 --- a/app/templates/location/-department-dotplots.hbs +++ b/app/templates/location/-department-dotplots.hbs @@ -1,48 +1,29 @@ -
-
-

{{t 'location.show.overview'}}

-
-
    - {{#if model.gdpGrowth }} -
  • - {{t 'location.show.bullet.gdp_grow_rate' gdpGrowth=model.gdpGrowth yearRange=model.yearRange}} -
  • - {{/if}} -
  • - {{t 'location.show.bullet.gdp_pc' name=model.name lastGdpPerCapita=model.lastGdpPerCapita}} -
  • -
  • - {{t 'location.show.bullet.last_pop' lastPop=model.lastPop}} -
  • -
- +
+ +
+
+ + + - - - - + + + - + + - - + - + - - + - + + - - + - + - - + - + - - + - + - - + - + - - + - + + -
- {{t 'location.show.value'}} -
-
- {{t 'rankings.table-title'}} -
-
-
- {{t 'location.show.all_departments'}} +
+
{{t 'location.show.value'}}
+
{{t 'rankings.table-title'}}
{{t 'location.show.all_departments'}}
- {{t 'location.show.gdp_pc'}} ({{model.censusYear}}) - + {{t 'location.show.gdp_pc'}} ({{model.censusYear}}) {{model.lastGdpPerCapita}} {{table-rank rank=model.gdpPerCapitaRank}} - + {{vistk-dotplot elementId='dotplot--gdp-pc' data=dotplotData @@ -53,15 +34,14 @@ }}
- {{t 'location.show.gdp'}} ({{model.censusYear}}) - + {{t 'location.show.gdp'}} ({{model.censusYear}}) {{model.lastGdp}} {{table-rank rank=model.gdpRank}} - + {{vistk-dotplot elementId='dotplot--gdp' data=dotplotData @@ -72,15 +52,14 @@ }}
- {{t 'location.show.population'}} ({{model.censusYear}}) - + {{t 'location.show.population'}} ({{model.censusYear}}) {{model.lastPop}} {{table-rank rank=model.populationRank}} + {{vistk-dotplot elementId='dotplot--population' data=dotplotData @@ -92,15 +71,14 @@ }}
- {{t 'location.show.eci'}} ({{model.lastYear}}) - + {{t 'location.show.eci'}} ({{model.lastYear}}) {{model.lastEci}} {{table-rank rank=model.eciRank}} + {{vistk-dotplot elementId='dotplot--eci' data=dotplotData @@ -112,15 +90,14 @@ }}
- {{t 'location.show.ag_farmsize'}} - + {{t 'location.show.ag_farmsize'}} {{model.agFarmsize}} {{table-rank rank=model.agFarmsizeRank}} + {{vistk-dotplot elementId='dotplot--agfarmsizes' data=model.agFarmsizesData @@ -131,15 +108,14 @@ }}
- {{t 'location.show.nonag_farmsize'}} - + {{t 'location.show.nonag_farmsize'}} {{model.nonagFarmsize}} {{table-rank rank=model.nonagFarmsizeRank}} + {{vistk-dotplot elementId='dotplot--nonagfarmsizes' data=model.nonagFarmsizesData @@ -150,15 +126,14 @@ }}
- {{t 'location.show.yield_index'}} ({{agproductLastYear}}) - + {{t 'location.show.yield_index'}} ({{agproductLastYear}}) {{model.yieldIndex}} {{table-rank rank=model.yieldIndexRank}} + {{vistk-dotplot elementId='dotplot--yieldindex' data=model.yieldData @@ -170,7 +145,12 @@ }}
-
+ +
+ + +
diff --git a/app/templates/location/-municipality-dotplots.hbs b/app/templates/location/-municipality-dotplots.hbs index 094b78cc..78f596dc 100644 --- a/app/templates/location/-municipality-dotplots.hbs +++ b/app/templates/location/-municipality-dotplots.hbs @@ -1,64 +1,71 @@ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
{{t 'location.show.value'}}
+
{{t 'rankings.table-title'}}
+
{{t 'location.show.all_departments'}}
{{t 'location.show.ag_farmsize'}} + {{model.agFarmsize}} + {{table-rank rank=model.agFarmsizeRank}} + + {{vistk-dotplot + elementId='dotplot--agfarmsizes' + data=model.agFarmsizesData + varX='avg_farmsize' + varId='location_id' + type='decimal' + currentSelection=locationId + }} +
{{t 'location.show.nonag_farmsize'}} + {{model.nonagFarmsize}} + {{table-rank rank=model.nonagFarmsizeRank}} + + {{vistk-dotplot + elementId='dotplot--nonagfarmsizes' + data=model.nonagFarmsizesData + varX='avg_farmsize' + varId='location_id' + type='decimal' + currentSelection=locationId + }} +
+ +
+
+ + +

{{t 'location.show.overview'}}

- - - - - - - - - - - - - - - - - - - - -
- {{t 'location.show.value'}} -
-
- {{t 'rankings.table-title'}} -
-
-
- {{t 'location.show.all_departments'}} -
- {{t 'location.show.ag_farmsize'}} - - {{model.agFarmsize}} - {{table-rank rank=model.agFarmsizeRank}} - - {{vistk-dotplot - elementId='dotplot--agfarmsizes' - data=model.agFarmsizesData - varX='avg_farmsize' - varId='location_id' - type='decimal' - currentSelection=locationId - }} -
- {{t 'location.show.nonag_farmsize'}} - - {{model.nonagFarmsize}} - {{table-rank rank=model.nonagFarmsizeRank}} - - {{vistk-dotplot - elementId='dotplot--nonagfarmsizes' - data=model.nonagFarmsizesData - varX='avg_farmsize' - varId='location_id' - type='decimal' - currentSelection=locationId - }} -
+
diff --git a/app/templates/location/-questions.hbs b/app/templates/location/-questions.hbs index a7b92862..53f52af2 100755 --- a/app/templates/location/-questions.hbs +++ b/app/templates/location/-questions.hbs @@ -1,423 +1,222 @@ -
- {{#if featureToggle.showIndustries }} -

{{t 'graph_builder.builder_questions.industry'}}

- {{#if (array-contains openPanels 'industries') }} -
    -
  • - {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'employment' (query-params endDate=lastYear startDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'industries' 'multiples' 'employment' (query-params endDate=lastYear startDate=firstYear search='null') - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
    - +
    + +
    +
    +
    +

    Realice una búsqueda por

    +
    +
    +
    + +
    +

    {{t 'graph_builder.builder_questions.industry'}}

    + +
    + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'employment' (query-params endDate=lastYear startDate=lastYear search='null') class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.industries.employment.' model.level)}} {{/link-to}} -
    -
  • -
  • - {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params endDate=lastYear startDate=lastYear search='null') - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'industries' 'multiples' 'wages' (query-params endDate=lastYear startDate=firstYear search='null') - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
    - - {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params endDate=lastYear startDate=lastYear search='null') + +
    + + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params endDate=lastYear startDate=lastYear search='null') class="builder__questions__question" }} {{t (is-concat 'graph_builder.page_title.location.industries.wages.' model.level)}} {{/link-to}} -
    -
  • - {{#unless isMunicipality}} -
  • - {{#link-to 'location.visualization' model.id 'industries' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear search='null') - class="icon-cidcon_similarity builder__questions__item__icon" - tagNmae='i' - }} + + {{#unless isMunicipality}} +
    + + {{#link-to 'location.visualization' model.id 'industries' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.industries.similarity.' model.level)}} {{/link-to}} -
    - - {{#link-to 'location.visualization' model.id 'industries' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.industries.similarity.' model.level)}} - {{/link-to}} - -
    -
  • - {{#unless isCountry}} -
  • +
+ + {{#unless isCountry}} + +
+ {{#link-to 'location.visualization' model.id 'industries' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear search='null') - class="icon-cidcon_scatter builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
- - {{#link-to 'location.visualization' model.id 'industries' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear search='null') - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.industries.scatter.' model.level)}} - {{/link-to}} - -
- - {{/unless}} - {{/unless}} - - {{/if}} - {{/if}} -

{{t 'graph_builder.builder_questions.export'}}

- {{#if (array-contains openPanels 'exports') }} -
    -
  • - {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'products' 'multiples' 'export_value' (query-params search='null' startDate=firstYear endDate=lastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
    - - {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear) class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.products.export_value.' model.level)}} + {{t (is-concat 'graph_builder.page_title.location.industries.scatter.' model.level)}} {{/link-to}} - +
    + + {{/unless}} + + {{/unless}} +
- -
  • - {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'partners' 'multiples' 'export_value' (query-params search='null' startDate=firstYear endDate=lastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
    - + +
    + +

    {{t 'graph_builder.builder_questions.export'}}

    + +
    + + + {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.products.export_value.' model.level)}} + {{/link-to}} + +
    + +
    + {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear) class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.partners.export_value.' model.level) }} {{/link-to}} - -
    -
  • - {{#if isDepartment}} -
  • - {{#link-to 'location.visualization-product' model.id 1224 'multiples' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization-product' model.id 1224 'multiples' 'export_value' (query-params search='null' startDate=firstYear endDate=lastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
    - +
    + + {{#if isDepartment}} +
    + {{#link-to 'location.visualization-product' model.id 1224 'multiples' 'export_value' (query-params search='null' startDate=firstYear endDate=lastYear) class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.destination_by_product.export_value.' model.level) }} {{/link-to}} - -
    -
  • - {{/if}} - {{#unless isMunicipality}} -
  • - {{#link-to 'location.visualization' model.id 'products' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear search='null') - class="icon-cidcon_similarity builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
    - +
    + {{/if}} + {{#unless isMunicipality}} +
    + {{#link-to 'location.visualization' model.id 'products' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear search='null') class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.products.similarity.' model.level)}} {{/link-to}} - -
    -
  • -
  • - {{#link-to 'location.visualization' model.id 'products' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear search='null') - class="icon-cidcon_scatter builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
    - +
    +
    + {{#link-to 'location.visualization' model.id 'products' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear search='null') class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.products.scatter.' model.level)}} {{/link-to}} - -
    -
  • - {{/unless}} - - {{/if}} - {{#if featureToggle.showImports }} -

    {{t 'graph_builder.builder_questions.import'}}

    - {{#if (array-contains openPanels 'imports') }} -
      -
    • - {{#link-to 'location.visualization' model.id 'products' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'products' 'multiples' 'import_value' (query-params search='null' startDate=firstYear endDate=lastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'products' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.products.import_value.' model.level)}} - {{/link-to}} - -
      -
    • -
    • - {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'partners' 'multiples' 'import_value' (query-params search='null' startDate=firstYear endDate=lastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.partners.import_value.' model.level)}} - {{/link-to}} - +
      + {{/unless}} + +
    + +
    +

    {{t 'graph_builder.builder_questions.import'}}

    + + +
    + + {{#link-to 'location.visualization' model.id 'products' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.products.import_value.' model.level)}} + {{/link-to}}
    - - {{#if isDepartment}} -
  • - {{#link-to 'location.visualization-product' model.id 1224 'multiples' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization-product' model.id 1224 'multiples' 'import_value' (query-params search='null' startDate=firstYear endDate=lastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
    - - {{#link-to 'location.visualization-product' model.id 1224 'multiples' 'import_value' (query-params search='null' startDate=firstYear endDate=lastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.destination_by_product.import_value.' model.level) }} - {{/link-to}} - + +
    + + {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.partners.import_value.' model.level)}} + {{/link-to}}
    -
  • - {{/if}} - - {{/if}} - {{/if}} - - {{#unless isMsa }} -

    {{t 'graph_builder.builder_questions.rural'}}

    - {{#if (array-contains openPanels 'rural') }} -
      - - -
    • - {{#link-to 'location.visualization' model.id 'landUses' 'treemap' 'area' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'landUses' 'treemap' 'area' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.landUses.area.' model.level)}} - {{/link-to}} - + + {{#if isDepartment}} +
      + {{#link-to 'location.visualization-product' model.id 1224 'multiples' 'import_value' (query-params search='null' startDate=firstYear endDate=lastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.destination_by_product.import_value.' model.level) }} + {{/link-to}}
      -
    • - -
    • - {{#link-to 'location.visualization' model.id 'farmtypes' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'farmtypes' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.farmtypes.num_farms.' model.level)}} - {{/link-to}} - + {{/if}} + +
      + + {{#unless isMsa }} + +
      + +

      {{t 'graph_builder.builder_questions.rural'}}

      + +
      + + {{#link-to 'location.visualization' model.id 'landUses' 'treemap' 'area' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.landUses.area.' model.level)}} + {{/link-to}}
      -
    • - - -
    • - {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'land_sown' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'agproducts' 'multiples' 'land_sown' (query-params search='null' startDate=agproductFirstYear endDate=agproductLastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'land_sown' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.agproducts.land_sown.' model.level)}} - {{/link-to}} - + + +
      + + {{#link-to 'location.visualization' model.id 'farmtypes' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.farmtypes.num_farms.' model.level)}} + {{/link-to}}
      -
    • - -
    • - {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'land_harvested' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'agproducts' 'multiples' 'land_harvested' (query-params search='null' startDate=agproductFirstYear endDate=agproductLastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'land_harvested' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.agproducts.land_harvested.' model.level)}} - {{/link-to}} - + +
      + + {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'land_sown' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.agproducts.land_sown.' model.level)}} + {{/link-to}}
      -
    • - -
    • - {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'production_tons' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} - {{#link-to 'location.visualization' model.id 'agproducts' 'multiples' 'production_tons' (query-params search='null' startDate=agproductFirstYear endDate=agproductLastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'production_tons' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.agproducts.production_tons.' model.level)}} - {{/link-to}} - + +
      + + {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'land_harvested' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.agproducts.land_harvested.' model.level)}} + {{/link-to}}
      -
    • - -
    • - {{#link-to 'location.visualization' model.id 'agproducts' 'multiples' 'yield_ratio' (query-params search='null' startDate=agproductFirstYear endDate=agproductLastYear) - class="icon-cidcon_multiples builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'agproducts' 'multiples' 'yield_ratio' (query-params search='null' startDate=agproductFirstYear endDate=agproductLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.agproducts.yield_ratio.' model.level)}} - {{/link-to}} - + +
      + + {{#link-to 'location.visualization' model.id 'agproducts' 'treemap' 'production_tons' (query-params search='null' startDate=agproductLastYear endDate=agproductLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.agproducts.production_tons.' model.level)}} + {{/link-to}}
      -
    • - -
    • - {{#link-to 'location.visualization' model.id 'nonags' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'nonags' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.nonags.num_farms.' model.level)}} - {{/link-to}} - + +
      + + {{#link-to 'location.visualization' model.id 'agproducts' 'multiples' 'yield_ratio' (query-params search='null' startDate=agproductFirstYear endDate=agproductLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.agproducts.yield_ratio.' model.level)}} + {{/link-to}}
      -
    • +
      + + {{#link-to 'location.visualization' model.id 'nonags' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.nonags.num_farms.' model.level)}} + {{/link-to}} +
      -
    • - {{#link-to 'location.visualization' model.id 'livestock' 'treemap' 'num_livestock' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'livestock' 'treemap' 'num_livestock' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.livestock.num_livestock.' model.level)}} - {{/link-to}} - +
      + + {{#link-to 'location.visualization' model.id 'livestock' 'treemap' 'num_livestock' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.livestock.num_livestock.' model.level)}} + {{/link-to}}
      -
    • - -
    • - {{#link-to 'location.visualization' model.id 'livestock' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="icon-cidcon_treemap builder__questions__item__icon" - tagNmae='i' - }} - {{/link-to}} -
      - - {{#link-to 'location.visualization' model.id 'livestock' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) - class="builder__questions__question"}} - {{t (is-concat 'graph_builder.page_title.location.livestock.num_farms.' model.level)}} - {{/link-to}} - + +
      + + {{#link-to 'location.visualization' model.id 'livestock' 'treemap' 'num_farms' (query-params search='null' startDate=agcensusLastYear endDate=agcensusLastYear) + class="builder__questions__question"}} + {{t (is-concat 'graph_builder.page_title.location.livestock.num_farms.' model.level)}} + {{/link-to}}
      -
    • +
    + + {{/unless}} - - {{/if}} - {{/unless}} +
    +
    + diff --git a/app/templates/location/-regional-location.hbs b/app/templates/location/-regional-location.hbs index 3bd6d754..71c9f835 100755 --- a/app/templates/location/-regional-location.hbs +++ b/app/templates/location/-regional-location.hbs @@ -11,9 +11,13 @@ agcensusLastYear=agcensusLastYear }} {{#if description }} -

    - {{description}} -

    + +
    +
    + {{description}} +
    +
    + {{/if}} {{#if isDepartment }} @@ -24,6 +28,197 @@ {{partial 'location/municipality-dotplots'}} {{/if}} + +
    + + + +
    + +
    +
    + {{ + zoomable-treemap + data=productsData + varDependent='export_value' + elementId='zoomable-export-value-treemap' + class="position-relative" + color='pink' + }} +
    +
    + {{ + category-buttons + data=productsData + immutableData=inmutableProductsData + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=productsData + varDependent='import_value' + elementId='zoomable-import-value-treemap' + class="position-relative" + color='green' + }} +
    +
    + {{ + category-buttons + data=productsData + immutableData=inmutableProductsData + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=lastIndustryData + varDependent='employment' + elementId='zoomable-employment-treemap' + class="position-relative" + color='pink' + }} +
    +
    + {{ + category-buttons + data=lastIndustryData + immutableData=lastIndustryData + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=industriesData + varDependent='wages' + elementId='zoomable-wages-treemap' + class="position-relative" + color='green' + }} +
    +
    + {{ + category-buttons + data=industriesData + immutableData=industriesData + }} +
    +
    + +
    +
    + +
    +
    +

    ALTO NIVEL DE COMPLEJIDAD

    +
    +
    +

    BAJO NIVEL DE COMPLEJIDAD

    +
    +
    + + +
    + {{vistk-network + data=productsData + immutableData=productsData + elementId='product-space' + dataType='products' + metadata=model.metaData + varDependent='export_value' + graph=productSpace + height=600 + delay=3500 + showMiddle=true + }} +
    + +
    + {{ + category-buttons + data=productsData + immutableData=productsData + }} +
    + +
    + +
    + +
    +
    + {{vistk-network + data=lastIndustryData + immutableData=lastIndustryData + elementId='industry-space' + dataType='industries' + graph=industrySpace + height=600 + delay=2000 + }} +
    +
    + {{ + category-buttons + data=lastIndustryData + immutableData=lastIndustryData + }} +
    +
    + +
    + +
    + + diff --git a/app/templates/location/-subregion-dotplots.hbs b/app/templates/location/-subregion-dotplots.hbs index 4f5f868b..a971c00f 100755 --- a/app/templates/location/-subregion-dotplots.hbs +++ b/app/templates/location/-subregion-dotplots.hbs @@ -1,4 +1,52 @@ -
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    {{t 'location.show.value'}}
    +
    {{t 'rankings.table-title'}}
    +
    {{t 'location.show.all_regions'}}
    {{t 'location.show.eci'}} ({{model.lastYear}}) + {{model.lastEci}} + {{table-rank rank=model.eciRank}} + + {{vistk-dotplot + elementId='dotplot--eci' + data=dotplotData + varX='eci' + varText='name' + varId='location_id' + type='eci' + currentSelection=locationId + }} +
    + +
    +
    + + + + + + diff --git a/app/templates/partials/-buildermod-search.hbs b/app/templates/partials/-buildermod-search.hbs index a3178e57..58020ee5 100755 --- a/app/templates/partials/-buildermod-search.hbs +++ b/app/templates/partials/-buildermod-search.hbs @@ -28,10 +28,10 @@
    - BÚSQUE POR DEPARTAMENTO O CÓDIGO DANE + {{ t (is-concat 'visualization.search.' source) }}
    - {{autocomplete-input-datlas data_search=locationsData type='search' idSelect='searchSelect' placeHolder="Búsqueda por departamento o código CIIU" search=search reset="reset" className="d-flex justify-content-center"}} + {{autocomplete-input-datlas data_search=filterData type='search' idSelect='searchSelect' placeHolder=placeHolderText search=search reset="reset"}}
    diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 015a0ee1..7c303430 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -54,14 +54,11 @@
    - {{#unless isGeo }} - {{partial "partials/buildermod-search"}} - {{/unless}} + {{partial "partials/buildermod-search"}}
    -
    - -
    +
    +
    {{component visualizationComponent classNames='buildermod__viz' immutableData=immutableData @@ -82,21 +79,21 @@ graph=graph elementId=source }} -
    +
    {{#if needsLegend }} {{#unless isGeo }} {{component 'visualization-legend' legend=legend }} {{else}} - {{component 'visualization-legend-geomap' legend=geoLegend }} + {{component 'visualization-legend-geomap' legend=geoLegend classNames='col-md-4 d-flex flex-column justify-content-around' }} {{/unless}} {{/if}}
    - -
    + +
    {{component 'visualization-explanation' text=visualizationExplanation}}
    diff --git a/tests/integration/components/category-buttons-test.js b/tests/integration/components/category-buttons-test.js new file mode 100644 index 00000000..f3f3fa76 --- /dev/null +++ b/tests/integration/components/category-buttons-test.js @@ -0,0 +1,27 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + + +moduleForComponent('category-buttons', 'Integration | Component | category buttons', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{category-buttons}}`); + + assert.equal(this.$().text(), ''); + + // Template block usage: + this.render(hbs` + {{#category-buttons}} + template block text + {{/category-buttons}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); From 6ac1fcf6d2490f5083bffab4cd51d2e129e054c8 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Tue, 3 Aug 2021 15:55:35 -0500 Subject: [PATCH 012/126] Release 0.5 --- app/controllers/location/show.js | 44 ++- app/locales/en-col/translations.js | 2 + app/locales/es-col/translations.js | 2 + app/routes/location/show.js | 38 ++- app/styles/components/_components/_form.scss | 4 + .../location/-department-dotplots.hbs | 29 ++ app/templates/location/-questions.hbs | 6 +- app/templates/location/-regional-location.hbs | 284 +++++++++++++++++- 8 files changed, 391 insertions(+), 18 deletions(-) diff --git a/app/controllers/location/show.js b/app/controllers/location/show.js index fda2e837..0cef634f 100644 --- a/app/controllers/location/show.js +++ b/app/controllers/location/show.js @@ -7,6 +7,9 @@ export default Ember.Controller.extend({ featureToggle: Ember.inject.service(), queryParams: ['year'], + startDate: null, + endDate: null, + firstYear: computed.alias('featureToggle.first_year'), lastYear: computed.alias('featureToggle.last_year'), censusYear: computed.alias('featureToggle.census_year'), @@ -25,6 +28,32 @@ export default Ember.Controller.extend({ inmutableProductsData: computed.oneWay('model.productsData'), industriesData: computed.oneWay('model.industriesData'), + rangeYears: computed('firstYear', 'lastYear', function(){ + + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + + var min = this.get("firstYear") + var max = this.get("lastYear") + return [...Array(max - min + 1).keys()].map(i => i + min); + }), + + filteredProductsData: computed('model', 'startDate', 'endDate', function (){ + + var products = this.get("model.allProducts") + + return products.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + }), + + filteredPartnersData: computed('model', 'startDate', 'endDate', function (){ + + var partners = this.get("model.allPartners") + + console.log(this.get("model")) + + return partners.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + }), + hasTimeseries: computed.notEmpty('model.timeseries'), hasOccupationData: computed.notEmpty('model.occupations'), hasProductsData: computed.notEmpty('model.productsData'), @@ -37,6 +66,7 @@ export default Ember.Controller.extend({ isDepartment: computed.equal('model.level','department'), isMsa: computed.equal('model.level','msa'), isMunicipality: computed.equal('model.level','municipality'), + showExports: false, productSpace: computed.alias('model.metaData.productSpace'), industrySpace: computed.alias('model.metaData.industrySpace'), @@ -68,6 +98,18 @@ export default Ember.Controller.extend({ }), description: computed('model.name', 'i18n.locale', function() { return this.get(`model.description_${this.get('i18n.display')}`); - }) + }), + actions: { + showExports(value) { + this.set('showExports', value); + }, + setStartYear(){ + + var year = parseInt($("#selectYear").val()) + + this.set('startDate', year) + this.set('endDate', year) + } + } }); diff --git a/app/locales/en-col/translations.js b/app/locales/en-col/translations.js index f9ed4f2b..c70be7e3 100644 --- a/app/locales/en-col/translations.js +++ b/app/locales/en-col/translations.js @@ -604,6 +604,8 @@ export default { "location.show.export_possiblities.footer": "Some exports make not be viable due to local factors not considered by the technological similarity approach.", "location.show.export_possiblities.intro": "We\u2019ve found that countries which export complex products grow faster than those which export simple products. Using the product space presented above, we\u2019ve highlighted \u00a0high potential products for {{name}}, ranked by which have the highest combination of opportunity and complexity.", "location.show.exports": "Exports ({{year}})", + "location.show.exports_filtered": "Exports by product ({{year}})", + "location.show.exports_country_filtered": "Exports by destination country product ({{year}})", "location.show.exports_and_imports": "Exports and imports", "location.show.gdp": "GDP", "location.show.gdp_pc": "GDP per Capita", diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index bb6fd3ec..f31d9417 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -604,6 +604,8 @@ export default { "location.show.export_possiblities.footer": "Los productos indicados pueden no ser viables debido a condiciones del lugar que no se consideran en el an\u00e1lisis de similitud tecnol\u00f3gica.", "location.show.export_possiblities.intro": "Hemos encontrado que los pa\u00edses que exportan productos m\u00e1s complejos crecen m\u00e1s r\u00e1pido. Usando el \"mapa del producto\" presentado arriba, estamos destacando productos de alto potencial para {{name}}, ordenados por las mejores combinaciones de complejidad actual y valor estrat\u00e9gico.", "location.show.exports": "Exportaciones ({{year}})", + "location.show.exports_filtered": "Exportaciones por producto ({{year}})", + "location.show.exports_country_filtered": "Exportaciones por pais de destino ({{year}})", "location.show.exports_and_imports": "Exportaciones e importaciones", "location.show.gdp": "PIB", "location.show.gdp_pc": "PIB per c\u00e1pita", diff --git a/app/routes/location/show.js b/app/routes/location/show.js index 04b08f96..c13bea57 100644 --- a/app/routes/location/show.js +++ b/app/routes/location/show.js @@ -3,7 +3,7 @@ import ENV from '../../config/environment'; import numeral from 'numeral'; const {apiURL} = ENV; -const {RSVP, computed, getWithDefault, get} = Ember; +const {RSVP, computed, getWithDefault, get, copy} = Ember; export default Ember.Route.extend({ // `this.store.find` makes an api call for `params.location_id` and returns a promise @@ -43,7 +43,9 @@ export default Ember.Route.extend({ var ag_farmsizes = Ember.$.getJSON(`${apiURL}/data/farmsize/1/locations/?level=${level}`); var nonag_farmsizes = Ember.$.getJSON(`${apiURL}/data/farmsize/2/locations/?level=${level}`); - return RSVP.allSettled([products, dotplot, industries, subregions_trade, occupations, agproducts, landuses, ag_farmsizes, nonag_farmsizes]).then((array) => { + var partners = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/partners/?level=country`) + + return RSVP.allSettled([products, dotplot, industries, subregions_trade, occupations, agproducts, landuses, ag_farmsizes, nonag_farmsizes, partners]).then((array) => { var productsData = getWithDefault(array[0], 'value.data', []); var dotplotData = getWithDefault(array[1], 'value.data', []);//dotplots @@ -60,6 +62,8 @@ export default Ember.Route.extend({ var agFarmsizesData = getWithDefault(array[7], 'value.data', []); var nonagFarmsizesData = getWithDefault(array[8], 'value.data', []); + var partnersData = getWithDefault(array[9], 'value.data', []); + var productsDataIndex = _.indexBy(productsData, 'product_id'); var industriesDataIndex = _.indexBy(industriesData, 'industry_data'); @@ -69,6 +73,8 @@ export default Ember.Route.extend({ let occupationsMetadata = this.modelFor('application').occupations; let agproductsMetadata = this.modelFor('application').agproducts; let landusesMetadata = this.modelFor('application').landUses; + let partnersMetadata = this.modelFor('application').partnerCountries; + //get products data for the department let products = _.reduce(productsData, (memo, d) => { @@ -80,6 +86,32 @@ export default Ember.Route.extend({ return memo; }, []); + + //get products data for the department + let allProducts = _.reduce(productsData, (memo, d) => { + let product = productsMetadata[d.product_id]; + let productData = productsDataIndex[d.product_id]; + + product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); + memo.push(_.merge(d, productData, {year: d.year}, product)); + return memo; + }, []); + + + let allPartners = _.map(partnersData, (d) => { + + let country = partnersMetadata[d.country_id]; + let parent = partnersMetadata[country.parent_id]; + d.parent_name_en = parent.name_en; + d.parent_name_es = parent.name_es; + d.group = parent.id; + + return _.merge(copy(d), country); + }); + + console.log(allPartners) + + //get agproducts data for the department let agproducts = _.reduce(agproductsData, (memo, d) => { if(d.year != this.get('agproductLastYear')) { return memo; } @@ -260,6 +292,8 @@ export default Ember.Route.extend({ model.set('timeseries', dotplotTimeSeries); model.set('metaData', this.modelFor('application')); model.set('subregions', subregions); + model.set('allPartners', allPartners) + model.set('allProducts', allProducts) return model; }); diff --git a/app/styles/components/_components/_form.scss b/app/styles/components/_components/_form.scss index 87b56ce8..18340179 100755 --- a/app/styles/components/_components/_form.scss +++ b/app/styles/components/_components/_form.scss @@ -13,3 +13,7 @@ fieldset { label { display: block; } + +.form-filter{ + font-size: $fontBase !important; +} diff --git a/app/templates/location/-department-dotplots.hbs b/app/templates/location/-department-dotplots.hbs index c151e185..cac00edf 100755 --- a/app/templates/location/-department-dotplots.hbs +++ b/app/templates/location/-department-dotplots.hbs @@ -1,3 +1,32 @@ +
    +
    +
    +
    +

    La estructura económica es

    +
    +
    + +
    +
    + +
    + + {{t 'location.show.bullet.gdp_pc' name=model.name lastGdpPerCapita=model.lastGdpPerCapita}} +
    + +
    + + {{t 'location.show.bullet.last_pop' lastPop=model.lastPop}} +
    + + +
    +
    + +
    +
    + +
    diff --git a/app/templates/location/-questions.hbs b/app/templates/location/-questions.hbs index 53f52af2..0daa8fea 100755 --- a/app/templates/location/-questions.hbs +++ b/app/templates/location/-questions.hbs @@ -1,4 +1,6 @@ -
    + + + diff --git a/app/templates/location/-regional-location.hbs b/app/templates/location/-regional-location.hbs index 71c9f835..845a210f 100755 --- a/app/templates/location/-regional-location.hbs +++ b/app/templates/location/-regional-location.hbs @@ -10,26 +10,284 @@ agcensusFirstYear=agcensusFirstYear agcensusLastYear=agcensusLastYear }} -{{#if description }} -
    -
    - {{description}} + +{{#if showExports}} + +
    +
    + +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    + + +
    + +
    + +
    +
    + +
    +
    +
    + + + +
    + +
    +
    + +
    +
    + {{ + zoomable-treemap + data=filteredProductsData + varDependent='export_value' + elementId='zoomable-export-value-treemap' + class="position-relative" + color='pink' + }} +
    + + {{#if needsLegend }} + {{#unless isGeo }} + {{component 'visualization-legend' legend=legend }} + {{else}} + {{component 'visualization-legend-geomap' legend=geoLegend classNames='col-md-4 d-flex flex-column justify-content-around' }} + {{/unless}} + {{/if}} + +
    + +
    +
    + {{ + category-buttons + data=productsData + immutableData=inmutableProductsData + }} +
    +
    +
    + {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + VER MAS + {{/link-to}} +
    +
    +
    + +
    +
    + +
    +
    + {{ + zoomable-treemap + data=filteredPartnersData + varDependent='export_value' + elementId='zoomable-export-value-treemap-partner' + class="position-relative" + color='pink' + }} +
    + + {{#if needsLegend }} + {{#unless isGeo }} + {{component 'visualization-legend' legend=legend }} + {{else}} + {{component 'visualization-legend-geomap' legend=geoLegend classNames='col-md-4 d-flex flex-column justify-content-around' }} + {{/unless}} + {{/if}} + +
    + +
    +
    + {{ + category-buttons + data=productsData + immutableData=inmutableProductsData + }} +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + VER MAS + {{/link-to}} +
    +
    + +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    +

    Productos que más exporta el departamento

    +
    + +
    + {{ + datlas-table + data=filteredProductsData + source='products' + entityType='' + search=search + startDate=startDate + endDate=endDate + elementId="productssourceTable" + }} +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + VER MAS + {{/link-to}} +
    +
    + +
    + + +
    +
    +

    Paises donde más exporta el departamento

    +
    + +
    + {{ + datlas-table + data=filteredPartnersData + source='partners' + entityType='' + search=search + startDate=startDate + endDate=endDate + elementId="partnerssourceTable" + }} +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + VER MAS + {{/link-to}} +
    +
    + +
    + + +
    + + +
    + +
    + +
    +
    -{{/if}} +
    +
    + {{#link-to 'location.visualization' model.id 'products' 'scatter' 'opportunity' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    -{{#if isDepartment }} - {{partial 'location/department-dotplots'}} -{{else if isMsa}} - {{partial 'location/subregion-dotplots'}} -{{else if isMunicipality}} - {{partial 'location/municipality-dotplots'}} -{{/if}} +{{else }} + {{#if isDepartment }} + {{partial 'location/department-dotplots'}} + {{else if isMsa}} + {{partial 'location/subregion-dotplots'}} + {{else if isMunicipality}} + {{partial 'location/municipality-dotplots'}} + {{/if}} -
    +
    +
    + +
    +
    + +{{/if}} + + + +
    + +
    +
    +
    + +
    + + + diff --git a/app/templates/components/visualization-legend-geomap.hbs b/app/templates/components/visualization-legend-geomap.hbs index c1734a32..ede8b53c 100644 --- a/app/templates/components/visualization-legend-geomap.hbs +++ b/app/templates/components/visualization-legend-geomap.hbs @@ -2,12 +2,21 @@

    {{t varDependent}}

    - {{#each key in legend}} -
    - {{key.start}} - {{key.end}} -
    - {{else}} - {{/each}} +
    + {{#each key in staticLegend}} + {{#if (is-equal key.class activeLegend)}} +
    + {{key.start}} - {{key.end}} +
    + {{else}} +
    + {{key.start}} - {{key.end}} +
    + {{/if}} + + {{/each}} +
    +
    diff --git a/app/templates/components/zoomable-treemap.hbs b/app/templates/components/zoomable-treemap.hbs index fdbc1301..17dd0c1b 100644 --- a/app/templates/components/zoomable-treemap.hbs +++ b/app/templates/components/zoomable-treemap.hbs @@ -6,6 +6,7 @@
    +
    diff --git a/app/templates/index.hbs b/app/templates/index.hbs index ae9998b1..82822264 100755 --- a/app/templates/index.hbs +++ b/app/templates/index.hbs @@ -35,11 +35,11 @@
    -

    {{ t 'index.questions_head_p1' }}

    -
    +

    {{ t 'index.questions_head_p1' }}

    +
    - +
    @@ -100,19 +100,19 @@

    {{ t 'search.sophistication_path_place'}}

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc a porta dolor, at vehicula enim. Fusce dignissim massa magna, quis mollis arcu scelerisque fringilla. + ¿Quiere conocer más acerca de la sofisticación y diversificación de un lugar?

    - +

    {{ t 'search.sophistication_path_product'}}

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc a porta dolor, at vehicula enim. Fusce dignissim massa magna, quis mollis arcu scelerisque fringilla. + ¿Quiere conocer más acerca de la sofisticación y diversificación de un producto?

    - +
    @@ -209,6 +209,6 @@
    - +
    diff --git a/app/templates/industry/-questions.hbs b/app/templates/industry/-questions.hbs index 0ee637ac..d90e14ee 100755 --- a/app/templates/industry/-questions.hbs +++ b/app/templates/industry/-questions.hbs @@ -13,7 +13,7 @@
    - {{#link-to 'industry.visualization' model.id 'departments' 'multiples' 'employment' (query-params startDate=firstYear endDate=lastYear toolTips="rca") + {{#link-to 'industry.visualization' model.id 'departments' 'geo' 'employment' (query-params startDate=lastYear endDate=lastYear toolTips="rca") class="builder__questions__question" }} {{t 'graph_builder.page_title.industry.departments.employment'}} @@ -36,7 +36,7 @@
    - {{#link-to 'industry.visualization' model.id 'departments' 'multiples' 'wages' (query-params startDate=firstYear endDate=lastYear toolTips="employment,rca") + {{#link-to 'industry.visualization' model.id 'departments' 'geo' 'wages' (query-params startDate=lastYear endDate=lastYear toolTips="employment,rca") class="builder__questions__question" }} {{t 'graph_builder.page_title.industry.departments.wages'}} diff --git a/app/templates/partials/-buildermod-search.hbs b/app/templates/partials/-buildermod-search.hbs index 58020ee5..9f1c82fb 100755 --- a/app/templates/partials/-buildermod-search.hbs +++ b/app/templates/partials/-buildermod-search.hbs @@ -1,11 +1,13 @@
    - - - + + + - + + +
    @@ -30,12 +32,103 @@ {{ t (is-concat 'visualization.search.' source) }}
    - {{autocomplete-input-datlas data_search=filterData type='search' idSelect='searchSelect' placeHolder=placeHolderText search=search reset="reset"}}
    + +
    diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 8200a2dd..709a520e 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -55,8 +55,24 @@

    {{years}}

    -
    + + +
    + {{ + component 'buildermod-search' + source=source + filterData=filterData + placeHolderText=placeHolderText + visualization=visualization + startDate=startDate + endDate=endDate + dateExtent=dateExtent + canYearToggle=canYearToggle + isScatter=isScatter + rcaFilter=rcaFilter + }}
    @@ -81,6 +97,7 @@ graph=graph elementId=source toolTips=toolTips + range=range }}
    @@ -105,7 +122,7 @@ {{ datlas-table - data=filteredData + data=filteredDataTable source=source entityType=entityType search=search diff --git a/tests/integration/components/buildermod-search-test.js b/tests/integration/components/buildermod-search-test.js new file mode 100644 index 00000000..3279fd6e --- /dev/null +++ b/tests/integration/components/buildermod-search-test.js @@ -0,0 +1,27 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + + +moduleForComponent('buildermod-search', 'Integration | Component | buildermod search', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{buildermod-search}}`); + + assert.equal(this.$().text(), ''); + + // Template block usage: + this.render(hbs` + {{#buildermod-search}} + template block text + {{/buildermod-search}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); diff --git a/tests/unit/services/buildermod-search-service-test.js b/tests/unit/services/buildermod-search-service-test.js new file mode 100644 index 00000000..8a27d958 --- /dev/null +++ b/tests/unit/services/buildermod-search-service-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('service:buildermod-search-service', 'Unit | Service | buildermod search service', { + // Specify the other units that are required for this test. + // needs: ['service:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + var service = this.subject(); + assert.ok(service); +}); diff --git a/tests/unit/services/map-service-test.js b/tests/unit/services/map-service-test.js new file mode 100644 index 00000000..d53fb8c6 --- /dev/null +++ b/tests/unit/services/map-service-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('service:map-service', 'Unit | Service | map service', { + // Specify the other units that are required for this test. + // needs: ['service:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + var service = this.subject(); + assert.ok(service); +}); diff --git a/tests/unit/services/treemap-service-test.js b/tests/unit/services/treemap-service-test.js new file mode 100644 index 00000000..691bd79c --- /dev/null +++ b/tests/unit/services/treemap-service-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('service:treemap-service', 'Unit | Service | treemap service', { + // Specify the other units that are required for this test. + // needs: ['service:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + var service = this.subject(); + assert.ok(service); +}); From 6fbe7a99bf247f4e9c94d3bcc3e6791c954aa2e2 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Sun, 5 Sep 2021 20:21:36 -0500 Subject: [PATCH 020/126] Release 0.8 --- app/components/autocomplete-input-datlas.js | 9 +- app/components/datlas-table.js | 7 +- app/components/zoomable-treemap.js | 271 +++++++++++++++++- app/controllers/location/show.js | 1 - app/controllers/product/show.js | 32 +++ app/controllers/visualization.js | 19 +- app/locales/en-col/translations.js | 3 + app/locales/es-col/translations.js | 7 +- app/mixins/table-map.js | 90 ++++++ app/routes/application.js | 14 +- app/routes/product/show.js | 72 ++++- app/routes/product/visualization.js | 20 +- .../components/_components/_tooltip.scss | 4 + app/templates/components/stream-header.hbs | 9 +- app/templates/components/zoomable-treemap.hbs | 29 ++ app/templates/location/-questions.hbs | 4 +- app/templates/location/-regional-location.hbs | 50 +--- app/templates/product/-questions.hbs | 12 +- app/templates/product/show.hbs | 213 +++++++++++++- app/templates/visualization.hbs | 9 + .../col-industry_section_colors.json | 45 +-- .../product_section_colors.json | 45 +-- 22 files changed, 861 insertions(+), 104 deletions(-) diff --git a/app/components/autocomplete-input-datlas.js b/app/components/autocomplete-input-datlas.js index a26af82b..60d0d863 100644 --- a/app/components/autocomplete-input-datlas.js +++ b/app/components/autocomplete-input-datlas.js @@ -20,7 +20,7 @@ export default Ember.Component.extend({ let id_select = this.get('idSelect'); var $eventSelect = $(`#${id_select}`); let type = this.get('type'); - let self = this + let self = this; var data = this.get('data_search') var placeholder = this.get("placeHolder") @@ -73,7 +73,7 @@ export default Ember.Component.extend({ self.sendAction(action, id); - } else if (type == 'search') { + } else if (type === 'search') { self.set('search', text); self.set("buildermodSearchService.search", text); } @@ -96,9 +96,10 @@ export default Ember.Component.extend({ let id_select = this.get('idSelect'); var buildermodSearchService = this.get("buildermodSearchService.search"); var $eventSelect = $(`#${id_select}`); - var placeholder = this.get("placeHolder") + var placeholder = this.get("placeHolder"); let type = this.get('type'); - var data = this.get('data_search') + var data = this.get('data_search'); + var self = this; if(placeholder === null){ placeholder = this.get('i18n').t(`pageheader.search_placeholder.${type}`).string diff --git a/app/components/datlas-table.js b/app/components/datlas-table.js index d8f91f27..6c494246 100644 --- a/app/components/datlas-table.js +++ b/app/components/datlas-table.js @@ -19,6 +19,7 @@ export default Ember.Component.extend(TableMap, { let source = this.get('source'); let map = this.get(`${source}Map`); + if (entityType === "landUse"){ map = this.get("landUseLocationsMap"); } else if (entityType === "agproduct"){ @@ -158,7 +159,11 @@ export default Ember.Component.extend(TableMap, { } }, updatedData: computed('data.[]', 'tableMap', 'i18n.locale', 'source', 'search', 'startDate', function() { - var data = this.get("data") + var data = this.get("data"); + + if(data === undefined){ + data = []; + } var columns = this.get('tableMap').map((column) => { return column.key }) diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js index f59e4f27..c875c2d3 100644 --- a/app/components/zoomable-treemap.js +++ b/app/components/zoomable-treemap.js @@ -1,5 +1,5 @@ import Ember from 'ember'; -const {computed, observer, get:get} = Ember; +const {computed, observer, get:get, set:set} = Ember; import numeral from 'numeral'; export default Ember.Component.extend({ @@ -7,6 +7,7 @@ export default Ember.Component.extend({ buildermodSearchService: Ember.inject.service(), treemapService: Ember.inject.service(), varDependentTooltip: null, + inmutableData: null, id: computed('elementId', function() { return `#${this.get('elementId')} section`; }), @@ -27,14 +28,23 @@ export default Ember.Component.extend({ updatedData: computed('data.[]', 'varDependent', 'varText', 'i18n.locale', 'search', 'toolTips', function() { var key = this.get('varText'); + var data = this.get('data'); var dependent = this.get('varDependent'); var toolTipsData = this.get('toolTipsData'); var self = this; - return this.get('data').map(item => { + if(data.length === 0){ + data = [] + } + + console.log(data) + + return data.map(item => { if(_.get(item, `parent_name_${this.get('i18n').display}`) === _.get(item, `name_${this.get('i18n').display}`)){ return { key:_.get(item, key), + color: _.get(item, "color"), + icon: _.get(item, "icon"), value: _.get(item, dependent), tooltips: toolTipsData.map(varDependent => { return { @@ -47,6 +57,8 @@ export default Ember.Component.extend({ else{ return { key: _.get(item, key), + color: _.get(item, "color"), + icon: _.get(item, "icon"), value: _.get(item, dependent), group: _.get(item, `parent_name_${this.get('i18n').display}`), parent_code: _.get(item, `parent_code`), @@ -61,6 +73,70 @@ export default Ember.Component.extend({ }); }), + inmutableNestedData: computed('data.[]', 'varDependent', 'varText', 'i18n.locale', 'search', 'toolTips', function () { + var key = this.get('varText'); + var data = this.get('data'); + + if(data.length === 0){ + data = [] + } + + var dependent = this.get('varDependent'); + var toolTipsData = this.get('toolTipsData'); + var self = this; + var updatedData = data.map(item => { + + if(_.get(item, `parent_name_${this.get('i18n').display}`) === _.get(item, `name_${this.get('i18n').display}`)){ + return { + key:_.get(item, key), + color: _.get(item, "color"), + icon: _.get(item, "icon"), + value: _.get(item, dependent), + tooltips: toolTipsData.map(varDependent => { + return { + "name": self.get('i18n').t(`graph_builder.table.${varDependent}`).string, + "value": self.formatNumber(_.get(item, varDependent), varDependent, self.get('i18n')) + }; + }) + }; + } + else{ + return { + key: _.get(item, key), + color: _.get(item, "color"), + icon: _.get(item, "icon"), + value: _.get(item, dependent), + group: _.get(item, `parent_name_${this.get('i18n').display}`), + parent_code: _.get(item, `parent_code`), + tooltips: toolTipsData.map(varDependent => { + return { + "name": self.get('i18n').t(`graph_builder.table.${varDependent}`).string, + "value": self.formatNumber(_.get(item, varDependent), varDependent, self.get('i18n')) + }; + }) + }; + } + + }); + + this.set("inmutableData", updatedData); + + if(updatedData[0] !== undefined){ + if(updatedData[0].hasOwnProperty("group")){ + if(updatedData[0].group == undefined){ + return d3.nest().entries(updatedData); + } + return d3.nest().key(function(d) { return d.group; }).entries(updatedData); + } + else{ + return d3.nest().entries(updatedData); + } + } + else{ + return [] + } + + }), nestedData: computed('updatedData', 'search', function () { var updatedData = this.get('updatedData'); @@ -75,6 +151,9 @@ export default Ember.Component.extend({ return d3.nest().entries(updatedData); } } + else{ + return [] + } }), getColors: computed('updatedData', 'search', 'color', function () { @@ -152,6 +231,10 @@ export default Ember.Component.extend({ return number; } }, + getColor: (color, area) => { + var color_dynamic = d3.scale.linear().domain([100, 0]).interpolate(d3.interpolateHcl).range([color, color]); + return color_dynamic(area); + }, treemap: computed('data.[]', 'id', 'updatedData', 'nestedData', 'varDependent', 'i18n.locale', 'varText', 'search', function () { var elementId = this.get('id'); @@ -384,7 +467,23 @@ export default Ember.Component.extend({ g.selectAll("rect") .style("fill", function(d) { - return color(d.area*100); + if(d.hasOwnProperty("color")){ + if(d.color !== undefined){ + //didi + return self.getColor(d.color, d.area*100); + } + return color(d.area*100); + } + else{ + if(d.hasOwnProperty("values")){ + if(d.values.length > 0){ + return self.getColor(d.values[0].color, d.area*100); + } + return color(d.area*100); + } + return color(d.area*100); + } + }) .style("stroke", "#292A48") @@ -517,16 +616,177 @@ export default Ember.Component.extend({ } }), + categoriesObject: computed('inmutableNestedData', 'i18n.locale', function() { + var categories = this.get('inmutableNestedData').map(item => { + + var color = "#33691e"; + var icon = "fas fa-atom"; + + if(item.hasOwnProperty("color")){ + color = item.color; + } + else{ + if(item.hasOwnProperty("values")){ + if(item.values.length > 0){ + if(item.values[0].hasOwnProperty("color")){ + color = item.values[0].color; + } + } + } + } + + + + if(item.hasOwnProperty("icon")){ + icon = item.icon; + } + else{ + if(item.hasOwnProperty("values")){ + if(item.values.length > 0){ + if(item.values[0].hasOwnProperty("icon")){ + icon = item.values[0].icon; + } + } + } + } + + + return { + name: item.key, + color: color, + icon: icon, + hide: false, + isolate: false + } + }) + + return categories; + + }), + updateCategoriesObject: function (index, attr) { + + var temp = this.get('categoriesObject').objectAt(index); + let newValue = !_.get(temp, attr); + + if(attr === "hide"){ + + if(newValue === true){ + this.get('categoriesObject').map((item, index_item) =>{ + + var temp = this.get('categoriesObject').objectAt(index_item); + + if(index_item === index){ + set(temp, "hide", true); + set(temp, "isolate", false); + } + else{ + set(temp, "isolate", false); + } + + }); + + } + else{ + this.get('categoriesObject').map((item, index_item) =>{ + + var temp = this.get('categoriesObject').objectAt(index_item); + + set(temp, "hide", false); + set(temp, "isolate", false); + + }); + } + + + } + else if(attr === "isolate"){ + + if(newValue === true){ + + + this.get('categoriesObject').map((item, index_item) =>{ + + var temp = this.get('categoriesObject').objectAt(index_item); + + if(index_item !== index){ + set(temp, "isolate", false); + set(temp, "hide", true); + } + else{ + set(temp, "isolate", true); + set(temp, "hide", false); + } + }); + + + + } + else{ + + this.get('categoriesObject').map((item, index_item) =>{ + + var temp = this.get('categoriesObject').objectAt(index_item); + + set(temp, "isolate", false); + set(temp, "hide", false); + + }); + + } + + + + } + + + var updatedData = []; + + for(let category of this.get('categoriesObject')) { + var isolate = category.isolate; + var hide = category.hide; + + if(isolate === true){ + updatedData = this.get("inmutableData").filter(item => { + return item.group === category.name; + }); + break; + } + + if(hide === false){ + var toAddupdatedData = this.get("inmutableData").filter(item => { + return item.group === category.name; + }) + updatedData = updatedData.concat(toAddupdatedData); + } + + } + + this.set("updatedData", updatedData); + + //var temp = this.get('categoriesObject').objectAt(index) + //set(temp, attr, !_.get(temp, attr)) + + }, didInsertElement: function() { Ember.run.scheduleOnce('afterRender',this , function() { - console.log(this.get('data')) + this.get('categoriesObject'); + var id = this.get('id'); + d3.select(id).selectAll('svg').remove(); this.get('treemap'); + $('.category-button').on("mouseover", function(e) { + + $(this).find("div.tooltip").removeClass("d-none") + }) + + $('.category-button').on("mouseleave", function(e) { + $(this).find("div.tooltip").addClass("d-none"); + }) }); }, @@ -592,6 +852,9 @@ export default Ember.Component.extend({ }); }, + check(index, attr) { + this.updateCategoriesObject(index, attr) + } }, update: observer('i18n.display', 'updatedData', function() { d3.select(this.get('id')).selectAll('svg').remove(); diff --git a/app/controllers/location/show.js b/app/controllers/location/show.js index 1744ed5c..10653793 100644 --- a/app/controllers/location/show.js +++ b/app/controllers/location/show.js @@ -39,7 +39,6 @@ export default Ember.Controller.extend({ }), filteredProductsData: computed('model', 'startDate', 'endDate', function (){ - var products = this.get("model.allProducts") return products.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) diff --git a/app/controllers/product/show.js b/app/controllers/product/show.js index 1f9bc37c..47c28737 100644 --- a/app/controllers/product/show.js +++ b/app/controllers/product/show.js @@ -5,11 +5,43 @@ export default Ember.Controller.extend({ featureToggle: Ember.inject.service(), queryParams: ['year'], + startDate: null, + endDate: null, + rangeYears: computed('firstYear', 'lastYear', function(){ + + this.set('startDate', this.get("lastYear")); + this.set('endDate', this.get("lastYear")); + + var min = this.get("firstYear"); + var max = this.get("lastYear"); + return [...Array(max - min + 1).keys()].map(i => i + min); + }), + entityType: "product", + source: "products", firstYear: computed.alias('featureToggle.first_year'), lastYear: computed.alias('featureToggle.last_year'), occupationsData: computed.alias('model.occupationsData'), + modelData: computed.alias('model.entity'), + exportDataLocations: computed('model.data', 'startDate', function (){ + return this.get("model.locationsData").filter(item => item.year === this.get("startDate")); + }), + exportDataCities: computed('model.data', 'startDate', function (){ + return this.get("model.citiesData").filter(item => item.year === this.get("startDate")); + }), + exportDataPartners: computed('model.data', 'startDate', function (){ + return this.get("model.partnersData").filter(item => item.year === this.get("startDate")); + }), + actions: { + setStartYear(){ + + var year = parseInt($("#selectYear").val()); + + this.set('startDate', year); + this.set('endDate', year); + } + } }); diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index dd8afb43..f3199551 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -71,6 +71,20 @@ export default Ember.Controller.extend({ }) }), + partnersData: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.partnerCountries')) + + console.log(locations) + + return locations.filter(item => item[1].level === "country").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name} (${item[1].code})`} + }) + }), + firstYear: computed('model', 'entityType', 'source', 'featureToggle', function(){ // Handle the situation where we're not looking at a location profile but // at a thing-profile like livestock profile. In that case since we're only @@ -157,6 +171,10 @@ export default Ember.Controller.extend({ else if(this.get('source') == 'products'){ return this.get('productsData') } + else if(this.get('source') == 'partners'){ + console.log(this.get('partnersData')) + return this.get('partnersData') + } else{ return [] } @@ -459,7 +477,6 @@ export default Ember.Controller.extend({ //console.log("filteredData") let data = this.get('immutableData'); - console.log(data) this.set('search', this.get('buildermodSearchService.search')); diff --git a/app/locales/en-col/translations.js b/app/locales/en-col/translations.js index de3fe975..6444a779 100644 --- a/app/locales/en-col/translations.js +++ b/app/locales/en-col/translations.js @@ -217,6 +217,7 @@ export default { "graph_builder.download.employment_growth": "Employment growth rate ({{yearRange}})", "graph_builder.download.export": "Export", "graph_builder.download.export_num_plants": "Firm number", + "graph_builder.download.import_num_plants": "Firm number", "graph_builder.download.export_rca": "Revealed comparative advantage", "graph_builder.download.export_value": "Exports, USD", "graph_builder.download.farmtype": "Type of UPA", @@ -734,6 +735,8 @@ export default { "area": "Area (ha)", "num_farms": "Number of production units", "num_livestock": "Number of livestock", + "export_value": "Exports (In millions of dollars FOB)", + "import_value": "Imports (In millions of dollars FOB)", "modal.geo.visualization.title": "Component help", "modal.geo.visualization.p1": "In the year selector use the buttons ", diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index 0860e532..6c0be87b 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -180,8 +180,8 @@ export default { "graph_builder.builder_questions.city": "Preguntas: Ciudades", "graph_builder.builder_questions.department": "Preguntas: Departamentos", "graph_builder.builder_questions.employment": "Empleo", - "graph_builder.builder_questions.export": "Preguntas: Exportaciones", - "graph_builder.builder_questions.import": "Preguntas: Importaciones", + "graph_builder.builder_questions.export": "Exportaciones", + "graph_builder.builder_questions.import": "Importaciones", "graph_builder.builder_questions.industry": "Preguntas: Sectores", "graph_builder.builder_questions.landUse": "Usos del suelo", "graph_builder.builder_questions.land_harvested": "\u00c1rea cosechada", @@ -440,6 +440,7 @@ export default { "graph_builder.table.employment_growth": "Tasa de crecimiento del empleo ({{yearRange}})", "graph_builder.table.export": "Exportaci\u00f3n", "graph_builder.table.export_num_plants": "N\u00famero de empresas", + "graph_builder.table.import_num_plants": "N\u00famero de empresas", "graph_builder.table.export_rca": "Ventaja comparativa revelada", "graph_builder.table.export_value": "Exportaciones, USD", "graph_builder.table.farmtype": "Tipo de UPA", @@ -741,6 +742,8 @@ export default { "area": "Área (ha)", "num_farms": "Número de Unidades de Producción", "num_livestock": "Número de animales", + "export_value": "Exportaciones (En millones de dólares FOB)", + "import_value": "Importaciones (En millones de dólares FOB)", "modal.geo.visualization.title": "Ayuda del componente", "modal.geo.visualization.p1": "En el selector de año haga uso de los botones ", diff --git a/app/mixins/table-map.js b/app/mixins/table-map.js index 9b7237ae..e0636eda 100644 --- a/app/mixins/table-map.js +++ b/app/mixins/table-map.js @@ -154,6 +154,74 @@ export default Ember.Mixin.create({ ); } + return columns; + + }), + exportsDepartmentsMap: computed('featureToggle.showImports', 'featureToggle.showIndustries', function() { + let columns = [ + { key: 'code' }, + { key: 'name', copy: 'location' }, + { key: 'year' }, + { key: 'export_value' }, + { key: 'export_rca' }, + { key: 'export_num_plants' }, + { key: 'distance' } + ]; + return columns; + + }), + importsDepartmentsMap: computed('featureToggle.showImports', 'featureToggle.showIndustries', function() { + let columns = [ + { key: 'code' }, + { key: 'name', copy: 'location' }, + { key: 'year' }, + { key: 'import_value' }, + { key: 'import_rca' }, + { key: 'import_num_plants' }, + { key: 'distance' }, + + // + //{ key: 'rca' }, + + //{ key: 'cog' } + ]; + + + + return columns; + + }), + exportsCitiesMap: computed('featureToggle.showImports', 'featureToggle.showIndustries', function() { + let columns = [ + { key: 'code' }, + { key: 'name', copy: 'location' }, + { key: 'parent_name', copy: 'parent.location' }, + { key: 'year' }, + { key: 'export_value' }, + { key: 'export_rca' }, + { key: 'export_num_plants' }, + { key: 'distance' }, + ]; + + + + return columns; + + }), + importsCitiesMap: computed('featureToggle.showImports', 'featureToggle.showIndustries', function() { + let columns = [ + { key: 'code' }, + { key: 'name', copy: 'location' }, + { key: 'parent_name', copy: 'parent.location' }, + { key: 'year' }, + { key: 'import_value' }, + { key: 'import_rca' }, + { key: 'import_num_plants' }, + { key: 'distance' }, + ]; + + + return columns; }), @@ -270,6 +338,28 @@ export default Ember.Mixin.create({ return columns; } }), + exportPartnersMap: computed('featureToggle.showImports', function() { + let columns = [ + { key: 'code' }, + { key: 'name', copy: 'country' }, + { key: 'parent', copy: 'parent.country' }, + { key: 'year' }, + { key: 'export_value' } + ]; + + return columns; + }), + importPartnersMap: computed('featureToggle.showImports', function() { + let columns = [ + { key: 'code' }, + { key: 'name', copy: 'country' }, + { key: 'parent', copy: 'parent.country' }, + { key: 'year' }, + { key: 'import_value' } + ]; + + return columns; + }), departmentRankingsMap: computed('featureToggle.showIndustries', function() { let columns = [ { key: 'name' }, diff --git a/app/routes/application.js b/app/routes/application.js index 99b28cb9..d42812d2 100644 --- a/app/routes/application.js +++ b/app/routes/application.js @@ -105,7 +105,7 @@ export default Ember.Route.extend({ industryPCI= _.groupBy(industryPCI, 'industry_id'); _.forEach(locationsMetadata, (d) => { - let color = '#d7cbf2'; + let color = '#880e4f'; d.group = d.id; d.color = color; @@ -115,10 +115,13 @@ export default Ember.Route.extend({ _.forEach(productsMetadata, (d) => { let sectionId = productsHierarchy[d.id]; let color = _.isUndefined(sectionId) ? '#fff' : get(productSectionColor, `${sectionId}.color`); + let icon = _.isUndefined(sectionId) ? 'fas fa-arrow-alt-circle-up' : get(productSectionColor, `${sectionId}.icon`); d.color = color; + d.icon = icon; set(productSectionMap, `${sectionId}.color`, color); + set(productSectionMap, `${sectionId}.icon`, icon); d.pci_data = get(productPCI, `${d.id}`); d.parent_name_en = get(productSectionMap, `${sectionId}.name_en`); @@ -180,6 +183,7 @@ export default Ember.Route.extend({ _.forEach(industriesMetadata, (d) => { let sectionId = industriesHierarchy[d.id]; let color = _.isUndefined(sectionId) ? '#fff' :get(industrySectionColor, `${sectionId}.color`); + let icon = _.isUndefined(sectionId) ? 'fas fa-arrow-alt-circle-up' : get(industrySectionColor, `${sectionId}.icon`); d.pci_data = get(industryPCI, `${d.id}`); /* @@ -189,15 +193,21 @@ export default Ember.Route.extend({ set(industrySectionMap, `${sectionId}.color`, color); } + if(!_.isUndefined(sectionId)) { + set(industrySectionMap, `${sectionId}.icon`, icon); + } + + d.group = get(industrySectionMap, `${sectionId}.code`); d.parent_name_en = get(industrySectionMap, `${sectionId}.name_en`); d.parent_name_es = get(industrySectionMap, `${sectionId}.name_es`); d.color = color; + d.icon = icon; d.model = 'industry'; }); _.forEach(partnerCountries, (d) => { - let color = '#d7cbf2'; + let color = '#880e4f'; d.name_short_en = d.name_en; d.name_short_es = d.name_es; d.color = color; diff --git a/app/routes/product/show.js b/app/routes/product/show.js index cf64e851..1c01d790 100644 --- a/app/routes/product/show.js +++ b/app/routes/product/show.js @@ -1,8 +1,78 @@ import Ember from 'ember'; +import ENV from '../../config/environment'; + +const {apiURL} = ENV; + +const {RSVP, computed, copy, get, $, set} = Ember; export default Ember.Route.extend({ + + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + product_id: null, + model(params) { - return this.store.find('product', params.product_id); + let {product_id} = params; + set(this, 'product_id', product_id); + + let hash = { + model: this.store.find('product', product_id), + locations: $.getJSON(`${apiURL}/data/product/${product_id}/exporters?level=department`), + cities: $.getJSON(`${apiURL}/data/product/${product_id}/exporters?level=msa`), + partners: $.getJSON(`${apiURL}/data/product/${product_id}/partners?level=country`) + } + + return RSVP.hash(hash).then((hash) => { + return this.departmentsDataMunging(hash); + }); + + //return this.store.find('product', params.product_id); + }, + departmentsDataMunging(hash) { + let {model, locations, cities, partners} = hash; + let locationsMetadata = this.modelFor('application').locations; + let partnersMetadata = this.modelFor('application').partnerCountries; + + let locationsData = _.map(locations.data, (d) => { + let location = locationsMetadata[d.department_id]; + let department = copy(d); + return _.merge(department, location, {model: 'location'}); + }); + + let citiesData = _.map(cities.data, (d) => { + let location = locationsMetadata[d.msa_id]; + let city = copy(d); + let result = _.merge( + city, location, + { + model: 'location', + parent_name_en: locationsMetadata[location.parent_id].name_short_en, + parent_name_es: locationsMetadata[location.parent_id].name_short_es, + } + ); + return result; + }); + + let partnersData = _.map(partners.data, (d) => { + let country = partnersMetadata[d.country_id]; + let parent = partnersMetadata[country.parent_id]; + let partner = copy(d); + partner.parent_name_en = parent.name_en; + partner.parent_name_es = parent.name_es; + partner.group = parent.id; + d.model = null; + return _.merge(partner, parent, country); + }); + + return Ember.Object.create({ + entity: model, + locationsData: locationsData, + citiesData: citiesData, + partnersData: partnersData + }); }, setupController(controller, model) { this._super(controller, model); diff --git a/app/routes/product/visualization.js b/app/routes/product/visualization.js index e05ca752..ff73398f 100644 --- a/app/routes/product/visualization.js +++ b/app/routes/product/visualization.js @@ -51,7 +51,8 @@ export default Ember.Route.extend({ let id = get(this, 'product_id'); return { model: this.store.find('product', id), - locations: $.getJSON(`${apiURL}/data/product/${id}/exporters?level=department`) + locations: $.getJSON(`${apiURL}/data/product/${id}/exporters?level=department`), + cities: $.getJSON(`${apiURL}/data/product/${id}/exporters?level=msa`) }; }), partners: computed('product_id', function() { @@ -69,7 +70,7 @@ export default Ember.Route.extend({ }; }), departmentsDataMunging(hash) { - let {model,locations} = hash; + let {model,locations, cities} = hash; let locationsMetadata = this.modelFor('application').locations; let data = _.map(locations.data, (d) => { @@ -78,9 +79,24 @@ export default Ember.Route.extend({ return _.merge(department, location, {model: 'location'}); }); + let datas = _.map(cities.data, (d) => { + let location = locationsMetadata[d.msa_id]; + let city = copy(d); + let result = _.merge( + city, location, + { + model: 'location', + parent_name_en: locationsMetadata[location.parent_id].name_short_en, + parent_name_es: locationsMetadata[location.parent_id].name_short_es, + } + ); + return result; + }); + return Ember.Object.create({ entity: model, data: data, + cities: datas }); }, citiesDataMunging(hash) { diff --git a/app/styles/components/_components/_tooltip.scss b/app/styles/components/_components/_tooltip.scss index 9a3ecd7c..2771aead 100755 --- a/app/styles/components/_components/_tooltip.scss +++ b/app/styles/components/_components/_tooltip.scss @@ -51,3 +51,7 @@ .tooltip-category:after{ border-top-color: $colorSecondary; } + +.text-principal{ + color: $colorBase; +} diff --git a/app/templates/components/stream-header.hbs b/app/templates/components/stream-header.hbs index ddda6cfb..0f2975d7 100755 --- a/app/templates/components/stream-header.hbs +++ b/app/templates/components/stream-header.hbs @@ -47,7 +47,14 @@ diff --git a/app/templates/components/zoomable-treemap.hbs b/app/templates/components/zoomable-treemap.hbs index 17dd0c1b..c5dd0111 100644 --- a/app/templates/components/zoomable-treemap.hbs +++ b/app/templates/components/zoomable-treemap.hbs @@ -12,3 +12,32 @@
    +{{#if filterCategory }} +
    + {{#each category in categoriesObject}} + +
    +
    +

    {{category.name}}

    + +
    + + + + + +
    + +
    + + + + +
    + + + {{/each}} +
    +
    +{{/if}} + diff --git a/app/templates/location/-questions.hbs b/app/templates/location/-questions.hbs index 0daa8fea..5258a009 100755 --- a/app/templates/location/-questions.hbs +++ b/app/templates/location/-questions.hbs @@ -1,6 +1,6 @@ - + diff --git a/app/templates/location/-regional-location.hbs b/app/templates/location/-regional-location.hbs index 845a210f..850d9914 100755 --- a/app/templates/location/-regional-location.hbs +++ b/app/templates/location/-regional-location.hbs @@ -87,7 +87,7 @@
    - +
    {{ @@ -131,7 +131,7 @@
    - +
    {{ @@ -249,7 +249,7 @@
    - +
    @@ -287,7 +287,7 @@ {{/if}} -
    @@ -38,6 +44,6 @@ {{/each}}
    -
    +
    {{/if}} diff --git a/app/templates/location/-department-dotplots.hbs b/app/templates/location/-department-dotplots.hbs index cac00edf..b5df3f74 100755 --- a/app/templates/location/-department-dotplots.hbs +++ b/app/templates/location/-department-dotplots.hbs @@ -1,4 +1,4 @@ -
    +
    +
    +
    + {{#if description }} +

    {{description}}

    + {{/if}} +
    +
    @@ -179,7 +186,9 @@
    - +
    +

    DEPARMENT

    + diff --git a/app/templates/location/-municipality-dotplots.hbs b/app/templates/location/-municipality-dotplots.hbs index 78f596dc..530cea0e 100644 --- a/app/templates/location/-municipality-dotplots.hbs +++ b/app/templates/location/-municipality-dotplots.hbs @@ -1,4 +1,13 @@ +
    +
    +
    + {{#if description }} +

    {{description}}

    + {{/if}} +
    + +
    @@ -60,6 +69,8 @@ +

    MUNICIPALITY

    +
    diff --git a/app/templates/location/-questions.hbs b/app/templates/location/-questions.hbs index 5258a009..9640a7bd 100755 --- a/app/templates/location/-questions.hbs +++ b/app/templates/location/-questions.hbs @@ -135,6 +135,7 @@ + diff --git a/app/templates/location/-regional-location.hbs b/app/templates/location/-regional-location.hbs index 850d9914..e402ef69 100755 --- a/app/templates/location/-regional-location.hbs +++ b/app/templates/location/-regional-location.hbs @@ -11,7 +11,15 @@ agcensusLastYear=agcensusLastYear }} +{{#if isDepartment }} + {{partial 'location/department-dotplots'}} +{{else if isMsa}} + {{partial 'location/subregion-dotplots'}} +{{else if isMunicipality}} + {{partial 'location/municipality-dotplots'}} +{{/if}} + -
    - - - -
    - -
    -
    - {{ - zoomable-treemap - data=productsData - varDependent='export_value' - elementId='zoomable-export-value-treemap' - class="position-relative" - filterCategory=true - }} -
    -
    - -
    -
    - {{ - zoomable-treemap - data=productsData - varDependent='import_value' - elementId='zoomable-import-value-treemap' - class="position-relative" - filterCategory=true - }} -
    -
    - -
    -
    - {{ - zoomable-treemap - data=lastIndustryData - varDependent='employment' - elementId='zoomable-employment-treemap' - class="position-relative" - filterCategory=true - }} -
    -
    - -
    -
    - {{ - zoomable-treemap - data=industriesData - varDependent='wages' - elementId='zoomable-wages-treemap' - class="position-relative" - filterCategory=true - }} -
    -
    - -
    -
    - -
    -
    -

    ALTO NIVEL DE COMPLEJIDAD

    -
    -
    -

    BAJO NIVEL DE COMPLEJIDAD

    -
    -
    - - -
    - {{vistk-network - data=productsData - immutableData=productsData - elementId='product-space' - dataType='products' - metadata=model.metaData - varDependent='export_value' - graph=productSpace - height=600 - delay=3500 - showMiddle=true - }} -
    - -
    - {{ - category-buttons - data=productsData - immutableData=productsData - }} -
    - -
    - -
    - -
    -
    - {{vistk-network - data=lastIndustryData - immutableData=lastIndustryData - elementId='industry-space' - dataType='industries' - graph=industrySpace - height=600 - delay=2000 - }} -
    -
    - {{ - category-buttons - data=lastIndustryData - immutableData=lastIndustryData - }} -
    -
    - -
    - -
    + + + + {{/each}} + +
    +{{/if}} \ No newline at end of file diff --git a/app/templates/location/-department-dotplots.hbs b/app/templates/location/-department-dotplots.hbs index b5df3f74..4d001aac 100755 --- a/app/templates/location/-department-dotplots.hbs +++ b/app/templates/location/-department-dotplots.hbs @@ -190,5 +190,163 @@ -

    DEPARMENT

    +
    + + + +
    + +
    +
    + {{ + zoomable-treemap + data=lastProductsData + inmutableData=lastProductsData + varDependent='export_value' + elementId='zoomable-export-value-treemap' + class="position-relative" + filterCategory=true + toolTips="rca,complexity" + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=lastProductsData + inmutableData=lastProductsData + varDependent='import_value' + elementId='zoomable-import-value-treemap' + class="position-relative" + filterCategory=true + toolTips="rca,complexity" + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=lastIndustryData + inmutableData=lastIndustryData + varDependent='employment' + elementId='zoomable-employment-treemap' + class="position-relative" + filterCategory=true + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=lastIndustryData + inmutableData=lastIndustryData + varDependent='wages' + elementId='zoomable-wages-treemap' + class="position-relative" + filterCategory=true + }} +
    +
    + +
    +
    + +
    +
    +

    ALTO NIVEL DE COMPLEJIDAD

    +
    +
    +

    BAJO NIVEL DE COMPLEJIDAD

    +
    +
    + + +
    + {{vistk-network + data=lastProductsData + immutableData=lastProductsData + elementId='product-space' + dataType='products' + metadata=model.metaData + varDependent='export_value' + graph=productSpace + height=600 + delay=3500 + showMiddle=true + filterCategory=true + title="SECTORES DE" + subtitle="LOS PRODUCTOS" + }} +
    + +
    + +
    + +
    +
    + {{vistk-network + data=lastIndustryData + immutableData=lastIndustryData + elementId='industry-space' + dataType='industries' + metadata=model.metaData + varDependent='wages' + graph=industrySpace + height=600 + delay=2000 + filterCategory=true + title="SECTORES" + subtitle="LOS PRODUCTOS" + }} +
    +
    + +
    + +
    diff --git a/app/templates/location/-municipality-dotplots.hbs b/app/templates/location/-municipality-dotplots.hbs index 530cea0e..c3d1a0e4 100644 --- a/app/templates/location/-municipality-dotplots.hbs +++ b/app/templates/location/-municipality-dotplots.hbs @@ -69,14 +69,165 @@ -

    MUNICIPALITY

    +
    + + +
    + +
    +
    + {{ + zoomable-treemap + data=lastProductsData + inmutableData=lastProductsData + varDependent='export_value' + elementId='zoomable-export-value-treemap' + class="position-relative" + filterCategory=true + toolTips="rca,complexity" + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=lastProductsData + inmutableData=lastProductsData + varDependent='import_value' + elementId='zoomable-import-value-treemap' + class="position-relative" + filterCategory=true + toolTips="rca,complexity" + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=lastIndustryData + inmutableData=lastIndustryData + varDependent='employment' + elementId='zoomable-employment-treemap' + class="position-relative" + filterCategory=true + }} +
    +
    + +
    +
    + {{ + zoomable-treemap + data=lastIndustryData + inmutableData=lastIndustryData + varDependent='wages' + elementId='zoomable-wages-treemap' + class="position-relative" + filterCategory=true + }} +
    +
    + +
    +
    + +
    +
    +

    ALTO NIVEL DE COMPLEJIDAD

    +
    +
    +

    BAJO NIVEL DE COMPLEJIDAD

    +
    +
    + + +
    + {{vistk-network + data=lastProductsData + immutableData=lastProductsData + elementId='product-space' + dataType='products' + metadata=model.metaData + varDependent='export_value' + graph=productSpace + height=600 + delay=3500 + showMiddle=true + filterCategory=true + title="SECTORES DE" + subtitle="LOS PRODUCTOS" + type="productSpace" + }} +
    + +
    + +
    + +
    +
    + {{vistk-network + data=lastIndustryData + immutableData=lastIndustryData + elementId='industry-space' + dataType='industries' + metadata=model.metaData + varDependent='export_value' + graph=industrySpace + height=600 + delay=2000 + filterCategory=true + title="SECTORES" + subtitle="LOS PRODUCTOS" + type="industrySpace" + }} +
    +
    + +
    + +
    diff --git a/app/templates/location/-questions.hbs b/app/templates/location/-questions.hbs index 9640a7bd..4cecbc9a 100755 --- a/app/templates/location/-questions.hbs +++ b/app/templates/location/-questions.hbs @@ -15,7 +15,7 @@
    - {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'employment' (query-params endDate=lastYear startDate=lastYear search='null') + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'employment' (query-params endDate=lastYear startDate=lastYear search=null) class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.industries.employment.' model.level)}} {{/link-to}} @@ -23,7 +23,7 @@
    - {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params endDate=lastYear startDate=lastYear search='null') + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params endDate=lastYear startDate=lastYear search=null) class="builder__questions__question" }} {{t (is-concat 'graph_builder.page_title.location.industries.wages.' model.level)}} {{/link-to}} diff --git a/app/templates/location/-subregion-dotplots.hbs b/app/templates/location/-subregion-dotplots.hbs index c3ed0228..a23ee783 100755 --- a/app/templates/location/-subregion-dotplots.hbs +++ b/app/templates/location/-subregion-dotplots.hbs @@ -100,8 +100,8 @@
    {{ zoomable-treemap - data=productsData - inmutableData=productsData + data=lastProductsData + inmutableData=lastProductsData varDependent='export_value' elementId='zoomable-export-value-treemap' class="position-relative" @@ -115,8 +115,8 @@
    {{ zoomable-treemap - data=productsData - inmutableData=productsData + data=lastProductsData + inmutableData=lastProductsData varDependent='import_value' elementId='zoomable-import-value-treemap' class="position-relative" @@ -144,8 +144,8 @@
    {{ zoomable-treemap - data=industriesData - inmutableData=industriesData + data=lastIndustryData + inmutableData=lastIndustryData varDependent='wages' elementId='zoomable-wages-treemap' class="position-relative" @@ -169,8 +169,8 @@
    {{vistk-network - data=productsData - immutableData=productsData + data=lastProductsData + immutableData=lastProductsData elementId='product-space' dataType='products' metadata=model.metaData @@ -179,6 +179,10 @@ height=600 delay=3500 showMiddle=true + filterCategory=true + title="SECTORES DE" + subtitle="LOS PRODUCTOS" + type="productSpace" }}
    @@ -193,9 +197,15 @@ immutableData=lastIndustryData elementId='industry-space' dataType='industries' + metadata=model.metaData + varDependent='export_value' graph=industrySpace height=600 delay=2000 + filterCategory=true + title="SECTORES" + subtitle="LOS PRODUCTOS" + type="industrySpace" }}
    @@ -204,8 +214,6 @@
    -

    SUBREGION

    - {{/if}} diff --git a/app/templates/components/vistk-network.hbs b/app/templates/components/vistk-network.hbs index 37630619..648d80d9 100644 --- a/app/templates/components/vistk-network.hbs +++ b/app/templates/components/vistk-network.hbs @@ -34,4 +34,11 @@ {{/each}}
    +{{/if}} + +{{#if canFilterVcr }} +
    + + +
    {{/if}} \ No newline at end of file diff --git a/app/templates/components/vistk-scatterplot.hbs b/app/templates/components/vistk-scatterplot.hbs new file mode 100644 index 00000000..648d80d9 --- /dev/null +++ b/app/templates/components/vistk-scatterplot.hbs @@ -0,0 +1,44 @@ +
    + +
    +{{#if filterCategory }} +
    + +
    +

    {{title}}

    +

    {{subtitle}}

    +
    + + {{#each category in categoriesObject}} + +
    +
    +

    {{category.name}}

    + +
    + + + + + +
    + +
    + + + + +
    + + + {{/each}} +
    +
    +{{/if}} + +{{#if canFilterVcr }} +
    + + +
    +{{/if}} \ No newline at end of file diff --git a/app/templates/location/-department-dotplots-abstract.hbs b/app/templates/location/-department-dotplots-abstract.hbs new file mode 100644 index 00000000..8c75bb65 --- /dev/null +++ b/app/templates/location/-department-dotplots-abstract.hbs @@ -0,0 +1,202 @@ +
    + +
    +
    +
    +

    {{t 'location.show.overview'}}

    +
    +
    +
    + +
    + +
    + + {{t 'location.show.bullet.gdp_pc' name=model.name lastGdpPerCapita=model.lastGdpPerCapita}} +
    + +
    + + {{t 'location.show.bullet.last_pop' lastPop=model.lastPop}} +
    + +
    + +
    +
    + +
    + +
    +
    +
    + {{#if description }} +

    {{description}}

    + {{/if}} +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    {{t 'location.show.value'}}
    +
    {{t 'rankings.table-title'}}
    +
    {{t 'location.show.all_departments'}}
    {{t 'location.show.gdp_pc'}} ({{model.censusYear}}) + {{model.lastGdpPerCapita}} + {{table-rank rank=model.gdpPerCapitaRank}} + + {{vistk-dotplot + elementId='dotplot--gdp-pc' + data=dotplotData + varX='gdp_pc_real' + varText='name' + varId='department_id' + currentSelection=locationId + }} +
    {{t 'location.show.gdp'}} ({{model.censusYear}}) + {{model.lastGdp}} + {{table-rank rank=model.gdpRank}} + + {{vistk-dotplot + elementId='dotplot--gdp' + data=dotplotData + varX='gdp_real' + varText='name' + varId='department_id' + currentSelection=locationId + }} +
    {{t 'location.show.population'}} ({{model.censusYear}}) + {{model.lastPop}} + {{table-rank rank=model.populationRank}} + + {{vistk-dotplot + elementId='dotplot--population' + data=dotplotData + varX='population' + varText='name' + varId='department_id' + type='population' + currentSelection=locationId + }} +
    {{t 'location.show.eci'}} ({{model.lastYear}}) + {{model.lastEci}} + {{table-rank rank=model.eciRank}} + + {{vistk-dotplot + elementId='dotplot--eci' + data=dotplotData + varX='eci' + varText='name' + varId='department_id' + type='eci' + currentSelection=locationId + }} +
    {{t 'location.show.ag_farmsize'}} + {{model.agFarmsize}} + {{table-rank rank=model.agFarmsizeRank}} + + {{vistk-dotplot + elementId='dotplot--agfarmsizes' + data=model.agFarmsizesData + varX='avg_farmsize' + varId='location_id' + type='farmsize' + currentSelection=locationId + }} +
    {{t 'location.show.nonag_farmsize'}} + {{model.nonagFarmsize}} + {{table-rank rank=model.nonagFarmsizeRank}} + + {{vistk-dotplot + elementId='dotplot--nonagfarmsizes' + data=model.nonagFarmsizesData + varX='avg_farmsize' + varId='location_id' + type='farmsize' + currentSelection=locationId + }} +
    {{t 'location.show.yield_index'}} ({{agproductLastYear}}) + {{model.yieldIndex}} + {{table-rank rank=model.yieldIndexRank}} + + {{vistk-dotplot + elementId='dotplot--yieldindex' + data=model.yieldData + varX='yield_index' + varText='name' + varId='department_id' + type='decimal' + currentSelection=locationId + }} +
    +
    + + +
    + + +
    +
    + {{#link-to 'location.route' model.id + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    diff --git a/app/templates/location/-municipality-dotplots-abstract.hbs b/app/templates/location/-municipality-dotplots-abstract.hbs new file mode 100644 index 00000000..64183f44 --- /dev/null +++ b/app/templates/location/-municipality-dotplots-abstract.hbs @@ -0,0 +1,80 @@ + +
    +
    +
    + {{#if description }} +

    {{description}}

    + {{/if}} +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    {{t 'location.show.value'}}
    +
    {{t 'rankings.table-title'}}
    +
    {{t 'location.show.all_departments'}}
    {{t 'location.show.ag_farmsize'}} + {{model.agFarmsize}} + {{table-rank rank=model.agFarmsizeRank}} + + {{vistk-dotplot + elementId='dotplot--agfarmsizes' + data=model.agFarmsizesData + varX='avg_farmsize' + varId='location_id' + type='decimal' + currentSelection=locationId + }} +
    {{t 'location.show.nonag_farmsize'}} + {{model.nonagFarmsize}} + {{table-rank rank=model.nonagFarmsizeRank}} + + {{vistk-dotplot + elementId='dotplot--nonagfarmsizes' + data=model.nonagFarmsizesData + varX='avg_farmsize' + varId='location_id' + type='decimal' + currentSelection=locationId + }} +
    + +
    +
    + +
    +
    + {{#link-to 'location.route' model.id + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    \ No newline at end of file diff --git a/app/templates/location/-regional-location-abstract.hbs b/app/templates/location/-regional-location-abstract.hbs new file mode 100644 index 00000000..c4286c1f --- /dev/null +++ b/app/templates/location/-regional-location-abstract.hbs @@ -0,0 +1,7 @@ +{{#if isDepartment }} + {{partial 'location/department-dotplots-abstract'}} +{{else if isMsa}} + {{partial 'location/subregion-dotplots-abstract'}} +{{else if isMunicipality}} + {{partial 'location/municipality-dotplots-abstract'}} +{{/if}} \ No newline at end of file diff --git a/app/templates/location/-regional-location-imports.hbs b/app/templates/location/-regional-location-imports.hbs new file mode 100644 index 00000000..6c5c42b0 --- /dev/null +++ b/app/templates/location/-regional-location-imports.hbs @@ -0,0 +1,247 @@ +
    +
    + +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    + + +
    + +
    + +
    +

    Importaciones

    +
    + +
    +
    + +
    +
    +
    + + + +
    + +
    +
    + +
    +
    + {{ + zoomable-treemap + data=filteredProductsData + immutableData=filteredProductsData + varDependent='import_value' + elementId='zoomable-export-value-treemap' + class="position-relative" + color='pink' + filterCategory=true + toolTips="rca" + }} +
    + +
    + +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'products' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    +
    + +
    +
    + +
    +
    + {{ + zoomable-treemap + data=filteredPartnersData + immutableData=filteredPartnersData + varDependent='import_value' + elementId='zoomable-export-value-treemap-partner' + class="position-relative" + color='pink' + filterCategory=true + }} +
    + +
    + +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    +

    Productos que más importa {{model.name}}

    +
    + +
    + {{ + datlas-table + data=filteredProductsDataTop5Import + source='productsImports' + entityType='' + search=search + startDate=startDate + endDate=endDate + elementId="productssourceTable" + order=filteredProductsDataTop5ImportOrder + }} +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'products' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    + + +
    +
    +

    Paises de donde más importa {{model.name}}

    +
    + +
    + {{ + datlas-table + data=filteredPartnersDataTop5Import + source='partnersExports' + entityType='' + search=search + startDate=startDate + endDate=endDate + elementId="partnerssourceTable" + order=filteredPartnersDataTop5ImportOrder + }} +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    + + +
    + + +
    + +
    +
    + + +
    +
    + +
    +
    + {{#link-to 'location.productmap' model.id + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    +
    + {{#link-to 'location.locationwages' model.id + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    \ No newline at end of file diff --git a/app/templates/location/-regional-location-route.hbs b/app/templates/location/-regional-location-route.hbs index 6ea7fb3c..7b6da591 100644 --- a/app/templates/location/-regional-location-route.hbs +++ b/app/templates/location/-regional-location-route.hbs @@ -44,6 +44,10 @@
    +
    +

    Exportaciones

    +
    +
    @@ -96,7 +100,8 @@ {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null') class="btn btn-outline-secondary" }} - VER MAS + + VER MAS {{/link-to}}
    @@ -128,7 +133,8 @@ {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null') class="btn btn-outline-secondary" }} - VER MAS + + VER MAS {{/link-to}}
    @@ -153,13 +159,14 @@
    {{ datlas-table - data=filteredProductsData - source='products' + data=filteredProductsDataTop5Export + source='productsExports' entityType='' search=search startDate=startDate endDate=endDate elementId="productssourceTable" + order=filteredProductsDataTop5ExportOrder }}
    @@ -168,7 +175,8 @@ {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null') class="btn btn-outline-secondary" }} - VER MAS + + VER MAS {{/link-to}}
    @@ -178,19 +186,20 @@
    -

    Paises donde más exporta {{model.name}}

    +

    Paises a donde más exporta {{model.name}}

    {{ datlas-table - data=filteredPartnersData - source='partners' + data=filteredPartnersDataTop5Export + source='partnersExports' entityType='' search=search startDate=startDate endDate=endDate elementId="partnerssourceTable" + order=filteredPartnersDataTop5ExportOrder }}
    @@ -199,7 +208,8 @@ {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null') class="btn btn-outline-secondary" }} - VER MAS + + VER MAS {{/link-to}}
    @@ -221,7 +231,7 @@
    - {{#link-to 'location.visualization' model.id 'products' 'scatter' 'opportunity' (query-params startDate=startDate endDate=startDate search='null') + {{#link-to 'location.productmap' model.id class="btn btn-outline-secondary" }} SIGUIENTE diff --git a/app/templates/location/-regional-location-wages.hbs b/app/templates/location/-regional-location-wages.hbs new file mode 100644 index 00000000..2b98a064 --- /dev/null +++ b/app/templates/location/-regional-location-wages.hbs @@ -0,0 +1,247 @@ +
    +
    + +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    + + +
    + +
    + +
    +

    Empleo formal y salarios

    +
    + +
    +
    + +
    +
    +
    + + + +
    + +
    +
    + +
    +
    + {{ + zoomable-treemap + data=filteredIndustriesData + immutableData=filteredIndustriesData + varDependent='employment' + elementId='zoomable-export-value-treemap' + class="position-relative" + color='pink' + filterCategory=true + toolTips="rca" + }} +
    + +
    + +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'employment' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    +
    + +
    +
    + +
    +
    + {{ + zoomable-treemap + data=filteredIndustriesData + immutableData=filteredIndustriesData + varDependent='wages' + elementId='zoomable-export-value-treemap-partner' + class="position-relative" + color='pink' + filterCategory=true + }} +
    + +
    + +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    +

    Top 5 Sectores que más generan empleo en {{model.name}}

    +
    + +
    + {{ + datlas-table + data=filteredIndustriesDataTop5Employment + source='industriesTop' + entityType='' + search=search + startDate=startDate + endDate=endDate + elementId="productssourceTable" + order=filteredIndustriesDataTop5EmploymentOrder + }} +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'employment' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    + + +
    +
    +

    Top 5 Sectores con mayores nominas salariales en {{model.name}}

    +
    + +
    + {{ + datlas-table + data=filteredIndustriesDataTop5Wages + source='industriesTop' + entityType='' + search=search + startDate=startDate + endDate=endDate + elementId="partnerssourceTable" + order=filteredIndustriesDataTop5WagesOrder + }} +
    + +
    +
    + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    + + +
    + + +
    + +
    +
    + + +
    +
    + +
    +
    + {{#link-to 'location.productmap' model.id + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    +
    + {{#link-to 'location.locationwages' model.id + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    \ No newline at end of file diff --git a/app/templates/location/-subregion-dotplots-abstract.hbs b/app/templates/location/-subregion-dotplots-abstract.hbs new file mode 100644 index 00000000..cea74f05 --- /dev/null +++ b/app/templates/location/-subregion-dotplots-abstract.hbs @@ -0,0 +1,63 @@ +
    + +
    +
    + {{#if description }} +

    {{description}}

    + {{/if}} +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    {{t 'location.show.value'}}
    +
    {{t 'rankings.table-title'}}
    +
    {{t 'location.show.all_regions'}}
    {{t 'location.show.eci'}} ({{model.lastYear}}) + {{model.lastEci}} + {{table-rank rank=model.eciRank}} + + {{vistk-dotplot + elementId='dotplot--eci' + data=dotplotData + varX='eci' + varText='name' + varId='location_id' + type='eci' + currentSelection=locationId + }} +
    + +
    + +
    + +
    +
    + {{#link-to 'location.route' model.id + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    \ No newline at end of file diff --git a/app/templates/location/abstract.hbs b/app/templates/location/abstract.hbs new file mode 100644 index 00000000..e0cdee72 --- /dev/null +++ b/app/templates/location/abstract.hbs @@ -0,0 +1,16 @@ +{{component "stream-header" + model=model + type="location" + metaData=model.metaData + firstYear=firstYear + lastYear=lastYear + agproductFirstYear=agproductFirstYear + agproductLastYear=agproductLastYear + agcensusFirstYear=agcensusFirstYear + agcensusLastYear=agcensusLastYear +}} +{{#if isCountry }} + {{partial 'location/country-location-abstract'}} +{{else}} + {{partial 'location/regional-location-abstract'}} +{{/if}} diff --git a/app/templates/location/locationimports.hbs b/app/templates/location/locationimports.hbs new file mode 100644 index 00000000..74be8541 --- /dev/null +++ b/app/templates/location/locationimports.hbs @@ -0,0 +1,17 @@ +{{component "stream-header" + model=model + type="location" + extra_type="location_route" + metaData=model.metaData + firstYear=firstYear + lastYear=lastYear + agproductFirstYear=agproductFirstYear + agproductLastYear=agproductLastYear + agcensusFirstYear=agcensusFirstYear + agcensusLastYear=agcensusLastYear +}} +{{#if isCountry }} + {{partial 'location/country-location-route'}} +{{else}} + {{partial 'location/regional-location-imports'}} +{{/if}} \ No newline at end of file diff --git a/app/templates/location/locationwages.hbs b/app/templates/location/locationwages.hbs new file mode 100644 index 00000000..c41a0206 --- /dev/null +++ b/app/templates/location/locationwages.hbs @@ -0,0 +1,17 @@ +{{component "stream-header" + model=model + type="location" + extra_type="location_route" + metaData=model.metaData + firstYear=firstYear + lastYear=lastYear + agproductFirstYear=agproductFirstYear + agproductLastYear=agproductLastYear + agcensusFirstYear=agcensusFirstYear + agcensusLastYear=agcensusLastYear +}} +{{#if isCountry }} + {{partial 'location/country-location-route'}} +{{else}} + {{partial 'location/regional-location-wages'}} +{{/if}} \ No newline at end of file diff --git a/app/templates/location/productmap.hbs b/app/templates/location/productmap.hbs new file mode 100644 index 00000000..6768d92c --- /dev/null +++ b/app/templates/location/productmap.hbs @@ -0,0 +1,20 @@ +
    +

    CASO 22

    +
    + +
    +
    + {{#link-to 'location.route' model.id + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    +
    + {{#link-to 'location.locationimports' model.id + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    \ No newline at end of file diff --git a/app/templates/location/productmapdecentralized.hbs b/app/templates/location/productmapdecentralized.hbs new file mode 100644 index 00000000..00c82f8a --- /dev/null +++ b/app/templates/location/productmapdecentralized.hbs @@ -0,0 +1,11 @@ +

    CASO 23

    + +
    +
    + {{#link-to 'location.productmap' model.id + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    +
    \ No newline at end of file diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 0f978e64..2ba9b360 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -102,6 +102,7 @@ canUpdateBuildermodSearchService=canUpdateBuildermodSearchService filterCategory=canFilterCategory resetFilter=resetFilter + canFilterVcr=canFilterVcr }}
    @@ -151,13 +152,47 @@ {{/if}} {{#if (is-equal entityType "location")}} -
    -
    - {{#link-to 'location.route' model.entity.id class="btn btn-outline-secondary"}} - ANTERIOR - {{/link-to}} + + {{#if (is-equal variable "export_value")}} +
    +
    + {{#link-to 'location.route' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    -
    + {{/if}} + + {{#if (is-equal variable "import_value")}} +
    +
    + {{#link-to 'location.locationimports' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + + {{#if (is-equal variable "employment")}} +
    +
    + {{#link-to 'location.locationwages' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + + {{#if (is-equal variable "wages")}} +
    +
    + {{#link-to 'location.locationwages' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + {{/if}}
    diff --git a/public/assets/img/graphicons/ico_scatter.svg b/public/assets/img/graphicons/ico_scatter.svg new file mode 100644 index 00000000..6fb256d2 --- /dev/null +++ b/public/assets/img/graphicons/ico_scatter.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/img/graphicons/ico_similarity.svg b/public/assets/img/graphicons/ico_similarity.svg new file mode 100644 index 00000000..d9bbfd3b --- /dev/null +++ b/public/assets/img/graphicons/ico_similarity.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + From 377e4738ea7f8100d95b92230375ced429ca41e1 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Sat, 11 Sep 2021 11:59:23 -0500 Subject: [PATCH 025/126] Release 0.10 --- app/components/autocomplete-input-datlas.js | 11 +- app/controllers/index.js | 6 + app/controllers/product/abstract.js | 112 ++++++++++ app/controllers/search.js | 5 +- app/locales/es-col/translations.js | 8 + app/router.js | 2 + app/routes/product/abstract.js | 81 +++++++ app/templates/index.hbs | 4 +- app/templates/product/abstract.hbs | 221 ++++++++++++++++++++ app/templates/product/show.hbs | 209 ------------------ app/templates/visualization.hbs | 28 ++- 11 files changed, 465 insertions(+), 222 deletions(-) create mode 100644 app/controllers/product/abstract.js create mode 100644 app/routes/product/abstract.js create mode 100644 app/templates/product/abstract.hbs diff --git a/app/components/autocomplete-input-datlas.js b/app/components/autocomplete-input-datlas.js index f273f0f4..858fdc20 100644 --- a/app/components/autocomplete-input-datlas.js +++ b/app/components/autocomplete-input-datlas.js @@ -12,6 +12,7 @@ export default Ember.Component.extend({ transitionLocationRoute: 'transitionLocationRoute', transitionIndustry: 'transitionIndustry', transitionLocationProducts: 'transitionLocationProducts', + transitionProductsRoute: 'transitionProductsRoute', transitionAgproduct: 'transitionAgproduct', transitionLivestock: 'transitionLivestock', transitionNonag: 'transitionNonag', @@ -25,6 +26,8 @@ export default Ember.Component.extend({ var data = this.get('data_search') var placeholder = this.get("placeHolder") + console.log(type) + if(placeholder === null){ @@ -67,8 +70,8 @@ export default Ember.Component.extend({ self.sendAction('transitionLocationRoute', id); } else if (type === 'industry') { self.sendAction('transitionIndustry', id); - } else if (type === 'location-product') { - self.sendAction('transitionLocationProducts', id); + } else if (type === 'products_route') { + self.sendAction('transitionProductsRoute', id); } else if (type === 'rural') { var key = $(`#${id_select}`).find(':selected').data("key").replace('-', '') @@ -147,8 +150,8 @@ export default Ember.Component.extend({ self.sendAction('transitionLocationRoute', id); } else if (type === 'industry') { self.sendAction('transitionIndustry', id); - } else if (type === 'location-product') { - self.sendAction('transitionLocationProducts', id); + } else if (type === 'products_route') { + self.sendAction('transitionProductsRoute', id); } else if (type === 'rural') { var key = $(`#${id_select}`).find(':selected').data("key").replace('-', '') diff --git a/app/controllers/index.js b/app/controllers/index.js index 7acc7904..20092ecc 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -162,12 +162,18 @@ export default Ember.Controller.extend({ transitionLocationSearch() { this.transitionToRoute('search', {queryParams: { filter: 'location' }}); }, + transitionLocationRouteSearch() { + this.transitionToRoute('search', {queryParams: { filter: 'locations_route' }}); + }, transitionProduct(id) { this.transitionToRoute('product.show', id); }, transitionProductSearch() { this.transitionToRoute('search',{queryParams: { filter: 'product' }}); }, + transitionProductRouteSearch() { + this.transitionToRoute('search',{queryParams: { filter: 'products_route' }}); + }, transitionIndustry(id) { this.transitionToRoute('industry.show', id); }, diff --git a/app/controllers/product/abstract.js b/app/controllers/product/abstract.js new file mode 100644 index 00000000..96fe5e28 --- /dev/null +++ b/app/controllers/product/abstract.js @@ -0,0 +1,112 @@ +import Ember from 'ember'; +const {computed} = Ember; + +export default Ember.Controller.extend({ + featureToggle: Ember.inject.service(), + queryParams: ['year'], + + startDate: null, + endDate: null, + rangeYears: computed('firstYear', 'lastYear', function(){ + + this.set('startDate', this.get("lastYear")); + this.set('endDate', this.get("lastYear")); + + var min = this.get("firstYear"); + var max = this.get("lastYear"); + return [...Array(max - min + 1).keys()].map(i => i + min); + }), + + entityType: "product", + source: "products", + + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + occupationsData: computed.alias('model.occupationsData'), + modelData: computed.alias('model.entity'), + exportDataLocations: computed('model.data', 'startDate', function (){ + return this.get("model.locationsData").filter(item => item.year === this.get("startDate")); + }), + + filteredDataLocationsTop5Export: computed('model', 'startDate', function (){ + var products = this.get("model.locationsData") + var filtered = products.filter(item => item.year === this.get("startDate")) + var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.export_value;}), 0, 5); + return sorted; + }), + filteredDataLocationsTop5ExportOrder: computed('model', 'startDate', 'endDate', function (){ + return [[ 3, "desc" ]]; + }), + + filteredDataLocationsTop5Import: computed('model', 'startDate', function (){ + var products = this.get("model.locationsData") + var filtered = products.filter(item => item.year === this.get("startDate")) + var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.import_value;}), 0, 5); + return sorted; + }), + filteredDataLocationsTop5ImportOrder: computed('model', 'startDate', 'endDate', function (){ + return [[ 3, "desc" ]]; + }), + + exportDataCities: computed('model.data', 'startDate', function (){ + return this.get("model.citiesData").filter(item => item.year === this.get("startDate")); + }), + + + filteredDataCitiesTop5Export: computed('model.data', 'startDate', function (){ + var products = this.get("model.citiesData") + var filtered = products.filter(item => item.year === this.get("startDate")) + var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.export_value;}), 0, 5); + return sorted; + }), + filteredDataCitiesTop5ExportOrder: computed('model', 'startDate', 'endDate', function (){ + return [[ 4, "desc" ]]; + }), + + filteredDataCitiesTop5Import: computed('model.data', 'startDate', function (){ + var products = this.get("model.citiesData") + var filtered = products.filter(item => item.year === this.get("startDate")) + var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.import_value;}), 0, 5); + return sorted; + }), + filteredDataCitiesTop5ImportOrder: computed('model', 'startDate', 'endDate', function (){ + return [[ 4, "desc" ]]; + }), + + + exportDataPartners: computed('model.data', 'startDate', function (){ + return this.get("model.partnersData").filter(item => item.year === this.get("startDate")); + }), + + filteredDataPartnersTop5Export: computed('model.data', 'startDate', function (){ + var products = this.get("model.partnersData") + var filtered = products.filter(item => item.year === this.get("startDate")) + var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.export_value;}), 0, 5); + return sorted; + }), + filteredDataPartnersTop5ExportOrder: computed('model', 'startDate', 'endDate', function (){ + return [[ 4, "desc" ]]; + }), + + filteredDataPartnersTop5Import: computed('model.data', 'startDate', function (){ + var products = this.get("model.partnersData") + var filtered = products.filter(item => item.year === this.get("startDate")) + var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.import_value;}), 0, 5); + return sorted; + }), + filteredDataPartnersTop5ImportOrder: computed('model', 'startDate', 'endDate', function (){ + return [[ 4, "desc" ]]; + }), + + actions: { + setStartYear(){ + + var year = parseInt($("#selectYear").val()); + + this.set('startDate', year); + this.set('endDate', year); + } + } +}); + + diff --git a/app/controllers/search.js b/app/controllers/search.js index dd2f025e..5893e80f 100644 --- a/app/controllers/search.js +++ b/app/controllers/search.js @@ -21,7 +21,7 @@ export default Ember.Controller.extend({ model = {"location": model.location} } - if(filter === "product_route"){ + if(filter === "products_route"){ model = {"product": model.product} } @@ -189,6 +189,9 @@ export default Ember.Controller.extend({ transitionLocationRoute(id) { this.transitionToRoute('location.abstract', id); }, + transitionProductsRoute(id) { + this.transitionToRoute('product.abstract', id); + }, transitionIndustry(id) { this.transitionToRoute('industry.show', id); }, diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index f943a7e4..a1207629 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -705,6 +705,10 @@ export default { "search.modal.p1.product": "Partida arancelaria: Clasificación numérica internacional que identifica las mercancias dentro del Sistema Armonizado en Colombia, la DIAN determina estas clasificaciones.

    ", "search.modal.link.product": "https://muisca.dian.gov.co/WebArancel/DefConsultaEstructuraArancelaria.faces#", + "search.modal.title.products_route": "Búsqueda", + "search.modal.p1.products_route": "Partida arancelaria: Clasificación numérica internacional que identifica las mercancias dentro del Sistema Armonizado en Colombia, la DIAN determina estas clasificaciones.

    ", + "search.modal.link.products_route": "https://muisca.dian.gov.co/WebArancel/DefConsultaEstructuraArancelaria.faces#", + "search.rural.agproduct": "Producto Agrícola", "search.rural.land-use": "Uso de Suelo", "search.rural.nonag": "Actividades no Agropecuarias", @@ -731,6 +735,10 @@ export default { "search.product.subtitle": "Nombre de producto o partida arancelaria", "search.product.body": "En el siguiente campo usted podra realizar una búsqueda por nombre de producto o codigo de partida arancelaria.

    Haga uso del interrogante para ampliar la información.", + "search.products_route.title": "Búsqueda por", + "search.products_route.subtitle": "Nombre de producto o partida arancelaria", + "search.products_route.body": "En el siguiente campo usted podra realizar una búsqueda por nombre de producto o codigo de partida arancelaria.

    Haga uso del interrogante para ampliar la información.", + "table.export_data": "Descargar Datos", "thousands_delimiter": ".", diff --git a/app/router.js b/app/router.js index 23d1660b..4f36d67d 100644 --- a/app/router.js +++ b/app/router.js @@ -24,6 +24,8 @@ export default Router.map(function() { // Profiles this.resource('product', { path: 'product'}, function() { this.route('show', { path: ':product_id'}); + this.route('abstract', { path: ':product_id/abstract/'}); + this.route('visualization', { path: ':product_id/source/:source_type/visualization/:visualization_type/:variable'}); }); this.resource('location', { path: 'location'}, function() { diff --git a/app/routes/product/abstract.js b/app/routes/product/abstract.js new file mode 100644 index 00000000..1c01d790 --- /dev/null +++ b/app/routes/product/abstract.js @@ -0,0 +1,81 @@ +import Ember from 'ember'; +import ENV from '../../config/environment'; + +const {apiURL} = ENV; + +const {RSVP, computed, copy, get, $, set} = Ember; + +export default Ember.Route.extend({ + + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + product_id: null, + + model(params) { + let {product_id} = params; + set(this, 'product_id', product_id); + + let hash = { + model: this.store.find('product', product_id), + locations: $.getJSON(`${apiURL}/data/product/${product_id}/exporters?level=department`), + cities: $.getJSON(`${apiURL}/data/product/${product_id}/exporters?level=msa`), + partners: $.getJSON(`${apiURL}/data/product/${product_id}/partners?level=country`) + } + + return RSVP.hash(hash).then((hash) => { + return this.departmentsDataMunging(hash); + }); + + //return this.store.find('product', params.product_id); + }, + departmentsDataMunging(hash) { + let {model, locations, cities, partners} = hash; + let locationsMetadata = this.modelFor('application').locations; + let partnersMetadata = this.modelFor('application').partnerCountries; + + let locationsData = _.map(locations.data, (d) => { + let location = locationsMetadata[d.department_id]; + let department = copy(d); + return _.merge(department, location, {model: 'location'}); + }); + + let citiesData = _.map(cities.data, (d) => { + let location = locationsMetadata[d.msa_id]; + let city = copy(d); + let result = _.merge( + city, location, + { + model: 'location', + parent_name_en: locationsMetadata[location.parent_id].name_short_en, + parent_name_es: locationsMetadata[location.parent_id].name_short_es, + } + ); + return result; + }); + + let partnersData = _.map(partners.data, (d) => { + let country = partnersMetadata[d.country_id]; + let parent = partnersMetadata[country.parent_id]; + let partner = copy(d); + partner.parent_name_en = parent.name_en; + partner.parent_name_es = parent.name_es; + partner.group = parent.id; + d.model = null; + return _.merge(partner, parent, country); + }); + + return Ember.Object.create({ + entity: model, + locationsData: locationsData, + citiesData: citiesData, + partnersData: partnersData + }); + }, + setupController(controller, model) { + this._super(controller, model); + window.scrollTo(0, 0); + }, +}); diff --git a/app/templates/index.hbs b/app/templates/index.hbs index 82822264..1a2e652b 100755 --- a/app/templates/index.hbs +++ b/app/templates/index.hbs @@ -102,7 +102,7 @@

    ¿Quiere conocer más acerca de la sofisticación y diversificación de un lugar?

    - +
    @@ -112,7 +112,7 @@

    ¿Quiere conocer más acerca de la sofisticación y diversificación de un producto?

    - + diff --git a/app/templates/product/abstract.hbs b/app/templates/product/abstract.hbs new file mode 100644 index 00000000..3d2458d4 --- /dev/null +++ b/app/templates/product/abstract.hbs @@ -0,0 +1,221 @@ +{{component "stream-header" model=modelData type='product' firstYear=firstYear lastYear=lastYear}} + +
    +
    + +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    + +
    + +
    + + +
    + +
    +
    +

    EXPORTACIONES PARA EL AÑO {{startDate}}

    +
    + + +
    +

    Departamentos en Colombia que más exportan el producto {{startDate}}

    +
    + +
    + {{ + datlas-table + data=filteredDataLocationsTop5Export + source="exportsDepartments" + entityType=entityType + search='' + startDate=startDate + endDate=endDate + elementId="productssourceTable" + order=filteredDataLocationsTop5ExportOrder + }} +
    +
    +
    + {{#link-to 'product.visualization' modelData.id 'departments' 'geo' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    +

    Ciudades en Colombia que más exportan el producto {{startDate}}

    +
    + +
    + {{ + datlas-table + data=filteredDataCitiesTop5Export + source="exportsCities" + entityType=entityType + search='' + startDate=startDate + endDate=endDate + elementId="productssourceTable2" + order=filteredDataCitiesTop5ExportOrder + }} +
    + +
    +
    + {{#link-to 'product.visualization' modelData.id 'cities' 'multiples' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + + +
    +

    Países a donde más se exporta el producto {{startDate}}

    +
    + +
    + {{ + datlas-table + data=filteredDataPartnersTop5Export + source="exportPartners" + entityType=entityType + search='' + startDate=startDate + endDate=endDate + elementId="productssourceTable21" + order=filteredDataPartnersTop5ExportOrder + }} +
    +
    +
    + {{#link-to 'product.visualization' modelData.id 'partners' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    +

    IMPORTACIONES PARA EL AÑO {{startDate}}

    +
    + +
    +

    Departamentos en Colombia que más importan el producto {{startDate}}

    +
    + +
    + {{ + datlas-table + data=filteredDataLocationsTop5Import + source="importsDepartments" + entityType=entityType + search='' + startDate=startDate + endDate=endDate + elementId="productssourceTable3" + order=filteredDataLocationsTop5ImportOrder + }} +
    + +
    +
    + {{#link-to 'product.visualization' modelData.id 'departments' 'geo' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    +

    Ciudades en Colombia que más importan el producto {{startDate}}

    +
    + +
    + {{ + datlas-table + data=filteredDataCitiesTop5Import + source="importsCities" + entityType=entityType + search='' + startDate=startDate + endDate=endDate + elementId="productssourceTable4" + order=filteredDataCitiesTop5ImportOrder + }} +
    + +
    +
    + {{#link-to 'product.visualization' modelData.id 'cities' 'multiples' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    +

    Países de donde más se importa el producto {{startDate}}

    +
    + +
    + {{ + datlas-table + data=filteredDataPartnersTop5Import + source="importPartners" + entityType=entityType + search='' + startDate=startDate + endDate=endDate + elementId="productssourceTable212" + order=filteredDataPartnersTop5ImportOrder + }} +
    + +
    +
    + {{#link-to 'product.visualization' modelData.id 'partners' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    +
    + +
    + +
    diff --git a/app/templates/product/show.hbs b/app/templates/product/show.hbs index e500533d..3ea20957 100755 --- a/app/templates/product/show.hbs +++ b/app/templates/product/show.hbs @@ -9,212 +9,3 @@ lastYear=lastYear }} - - -
    -
    - -
    -

    Filtrar por Año

    -
    - -
    - -
    -
    -
    - -
    -
    - -
    - -
    - -
    - -
    - - -
    - -
    -
    -

    EXPORTACIONES PARA EL AÑO {{startDate}}

    -
    - - -
    -

    Departamentos en Colombia que más exportan el producto {{startDate}}

    -
    - -
    - {{ - datlas-table - data=exportDataLocations - source="exportsDepartments" - entityType=entityType - search='' - startDate=startDate - endDate=endDate - elementId="productssourceTable" - }} -
    -
    -
    - {{#link-to 'product.visualization' modelData.id 'departments' 'geo' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") - class="btn btn-outline-secondary" - }} - VER MAS - {{/link-to}} -
    -
    - -
    -

    Ciudades en Colombia que más exportan el producto {{startDate}}

    -
    - -
    - {{ - datlas-table - data=exportDataCities - source="exportsCities" - entityType=entityType - search='' - startDate=startDate - endDate=endDate - elementId="productssourceTable2" - }} -
    - -
    -
    - {{#link-to 'product.visualization' modelData.id 'cities' 'multiples' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") - class="btn btn-outline-secondary" - }} - VER MAS - {{/link-to}} -
    -
    - - -
    -

    Países a donde más se exporta el producto {{startDate}}

    -
    - -
    - {{ - datlas-table - data=exportDataPartners - source="exportPartners" - entityType=entityType - search='' - startDate=startDate - endDate=endDate - elementId="productssourceTable21" - }} -
    -
    -
    - {{#link-to 'product.visualization' modelData.id 'partners' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") - class="btn btn-outline-secondary" - }} - VER MAS - {{/link-to}} -
    -
    - -
    -

    IMPORTACIONES PARA EL AÑO {{startDate}}

    -
    - -
    -

    Departamentos en Colombia que más importan el producto {{startDate}}

    -
    - -
    - {{ - datlas-table - data=exportDataLocations - source="importsDepartments" - entityType=entityType - search='' - startDate=startDate - endDate=endDate - elementId="productssourceTable3" - }} -
    - -
    -
    - {{#link-to 'product.visualization' modelData.id 'departments' 'geo' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") - class="btn btn-outline-secondary" - }} - VER MAS - {{/link-to}} -
    -
    - -
    -

    Ciudades en Colombia que más importan el producto {{startDate}}

    -
    - -
    - {{ - datlas-table - data=exportDataCities - source="importsCities" - entityType=entityType - search='' - startDate=startDate - endDate=endDate - elementId="productssourceTable4" - }} -
    - -
    -
    - {{#link-to 'product.visualization' modelData.id 'cities' 'multiples' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") - class="btn btn-outline-secondary" - }} - VER MAS - {{/link-to}} -
    -
    - -
    -

    Países de donde más se importa el producto {{startDate}}

    -
    - -
    - {{ - datlas-table - data=exportDataPartners - source="importPartners" - entityType=entityType - search='' - startDate=startDate - endDate=endDate - elementId="productssourceTable212" - }} -
    - -
    -
    - {{#link-to 'product.visualization' modelData.id 'partners' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") - class="btn btn-outline-secondary" - }} - VER MAS - {{/link-to}} -
    -
    - -
    - -
    diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 2ba9b360..860bbe8f 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -142,13 +142,29 @@ {{#if (is-equal entityType "product")}} -
    -
    - {{#link-to 'product.show' model.entity.id class="btn btn-outline-secondary"}} - ANTERIOR - {{/link-to}} + + + {{#if (is-equal variable "export_value")}} +
    +
    + {{#link-to 'product.abstract' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    -
    + {{/if}} + + {{#if (is-equal variable "import_value")}} +
    +
    + {{#link-to 'product.abstract' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + + {{/if}} {{#if (is-equal entityType "location")}} From 85065b41c99efb65ee5983eef0c228b3ff9c8d23 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Sun, 12 Sep 2021 08:09:01 -0500 Subject: [PATCH 026/126] Release 0.11 --- Brocfile.js | 2 + .../autocomplete-chained-input-datlas.js | 1 - app/components/autocomplete-input-datlas.js | 2 - app/components/zoomable-treemap.js | 4 +- app/controllers/location/ruralactivities.js | 241 +++++++++++++ app/controllers/visualization.js | 99 +++++- app/locales/es-col/translations.js | 6 + app/router.js | 6 +- app/routes/application.js | 45 ++- app/routes/location/ruralactivities.js | 327 ++++++++++++++++++ app/routes/location/visualization.js | 7 + .../location/-regional-location-rural.hbs | 140 ++++++++ .../location/-regional-location-wages.hbs | 2 +- app/templates/location/complexsectors.hbs | 20 ++ app/templates/location/ruralactivities.hbs | 35 ++ app/templates/visualization.hbs | 32 ++ .../agproducts_section_colors.json | 50 +++ .../farmtypes_section_colors.json | 10 + 18 files changed, 1015 insertions(+), 14 deletions(-) create mode 100644 app/controllers/location/ruralactivities.js create mode 100644 app/routes/location/ruralactivities.js create mode 100644 app/templates/location/-regional-location-rural.hbs create mode 100644 app/templates/location/complexsectors.hbs create mode 100644 app/templates/location/ruralactivities.hbs create mode 100644 vendor/color_mappings/agproducts_section_colors.json create mode 100644 vendor/color_mappings/farmtypes_section_colors.json diff --git a/Brocfile.js b/Brocfile.js index 27adfc69..4cc67662 100644 --- a/Brocfile.js +++ b/Brocfile.js @@ -73,6 +73,8 @@ app.import('vendor/networks/mex-industry_space.json', { destDir: 'assets/network app.import('vendor/color_mappings/product_section_colors.json', { destDir: 'assets/color_mappings' }); app.import('vendor/color_mappings/partners_section_colors.json', { destDir: 'assets/color_mappings' }); +app.import('vendor/color_mappings/farmtypes_section_colors.json', { destDir: 'assets/color_mappings' }); +app.import('vendor/color_mappings/agproducts_section_colors.json', { destDir: 'assets/color_mappings' }); app.import('vendor/color_mappings/col-industry_section_colors.json', { destDir: 'assets/color_mappings' }); app.import('vendor/color_mappings/mex-industry_section_colors.json', { destDir: 'assets/color_mappings' }); diff --git a/app/components/autocomplete-chained-input-datlas.js b/app/components/autocomplete-chained-input-datlas.js index f9fd5401..c7bec4fa 100644 --- a/app/components/autocomplete-chained-input-datlas.js +++ b/app/components/autocomplete-chained-input-datlas.js @@ -99,7 +99,6 @@ export default Ember.Component.extend({ } data.unshift({ id: "", text: ""}) - console.log(placeholder) $eventSelect2.select2({ placeholder: placeholder, diff --git a/app/components/autocomplete-input-datlas.js b/app/components/autocomplete-input-datlas.js index 858fdc20..8e51dfbc 100644 --- a/app/components/autocomplete-input-datlas.js +++ b/app/components/autocomplete-input-datlas.js @@ -26,8 +26,6 @@ export default Ember.Component.extend({ var data = this.get('data_search') var placeholder = this.get("placeHolder") - console.log(type) - if(placeholder === null){ diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js index 7c5a1cd1..29ab76fc 100644 --- a/app/components/zoomable-treemap.js +++ b/app/components/zoomable-treemap.js @@ -42,7 +42,7 @@ export default Ember.Component.extend({ } return data.map(item => { - if(_.get(item, `parent_name_${this.get('i18n').display}`) === _.get(item, `name_${this.get('i18n').display}`)){ + if(_.get(item, `parent_name_${this.get('i18n').display}`) === _.get(item, `name_${this.get('i18n').display}`) && _.get(item, `same_parent`) === undefined){ return { key:_.get(item, key), color: _.get(item, "color"), @@ -92,7 +92,7 @@ export default Ember.Component.extend({ var self = this; var updatedData = data.map(item => { - if(_.get(item, `parent_name_${this.get('i18n').display}`) === _.get(item, `name_${this.get('i18n').display}`)){ + if(_.get(item, `parent_name_${this.get('i18n').display}`) === _.get(item, `name_${this.get('i18n').display}`) && _.get(item, `same_parent`) === undefined){ return { key:_.get(item, key), color: _.get(item, "color"), diff --git a/app/controllers/location/ruralactivities.js b/app/controllers/location/ruralactivities.js new file mode 100644 index 00000000..a4189967 --- /dev/null +++ b/app/controllers/location/ruralactivities.js @@ -0,0 +1,241 @@ +import Ember from 'ember'; +import numeral from 'numeral'; +const {computed, get:get} = Ember; + +export default Ember.Controller.extend({ + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + queryParams: ['year'], + + startDate: null, + showGrap: true, + canFilterCategory: false, + endDate: null, + source: "landUses", + variable: "area", + vizualization: "treemap", + Title: "Área total", + + firstYear: computed('featureToggle.census_year', function () { + return this.get("featureToggle.year_ranges.agcensus.first_year"); + }), + lastYear: computed('featureToggle.census_year', function () { + return this.get("featureToggle.year_ranges.agcensus.last_year"); + }), + censusYear: computed.alias('featureToggle.census_year'), + agproductFirstYear: computed.alias('featureToggle.year_ranges.agproduct.first_year'), + agproductLastYear: computed.alias('featureToggle.year_ranges.agproduct.last_year'), + agcensusFirstYear: computed.alias('featureToggle.year_ranges.agcensus.first_year'), + agcensusLastYear: computed.alias('featureToggle.year_ranges.agcensus.last_year'), + occupationLastYear: computed.alias('featureToggle.year_ranges.occupation.last_year'), + + entityType: "location", + + validTimeseries: computed.alias('model.timeseries'), + dotplotData: computed.oneWay('model.dotplotData'), + occupationData: computed.oneWay('model.occupations'), + productsData: computed.oneWay('model.productsData'), + inmutableProductsData: computed.oneWay('model.productsData'), + industriesData: computed.oneWay('model.industriesData'), + filteredData: computed('model.[]', 'startDate', 'source', function(){ + + var source = this.get("source") + var data = [] + + console.log(this.get("model")) + + if(source === "landUses"){ + data = this.get("model.landusesData"); + } else if(source === "farmtypes"){ + data = this.get("model.farmtypesData"); + } else if(source === "agproducts"){ + data = this.get("model.agproductsData"); + } + return data.filter(item => item.year === this.get("startDate")); + }), + + headerValue: computed('filteredData', 'variable', 'i18n.locale', function() { + let allowedVariables = ['export_value', 'import_value', 'wages', + 'employment', 'land_sown', 'land_harvested', 'production_tons', 'area', + 'num_farms', 'num_livestock']; + let usdVariables = ['export_value', 'import_value']; + let currencyVariables = ['wages']; + let areaVariables = ['area']; + let variable = this.get('variable'); + let data = this.get('filteredData'); + let visualization = this.get('visualization'); + + if(! _.contains(allowedVariables, variable)){ return ''; } + if(visualization === 'multiples') { return ''; } + + var sum = _.sum(data, variable); + if(_.contains(currencyVariables, variable)) { + return numeral(sum).format('$ 0,0'); + } + if(_.contains(usdVariables, variable)) { + return '$' + numeral(sum).format('0,0') + ' USD'; + } + if(_.contains(areaVariables, variable)) { + return numeral(sum).format('0,0') + ' ha'; + } + return numeral(sum).format('0,00'); + }), + + rangeYears: computed('firstYear', 'lastYear', function(){ + + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + + var min = this.get("firstYear") + var max = this.get("lastYear") + return [...Array(max - min + 1).keys()].map(i => i + min); + }), + + filteredProductsData: computed('model', 'startDate', 'endDate', function (){ + var products = this.get("model.allProducts") + + return products.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + }), + + filteredIndustriesData: computed('model', 'startDate', 'endDate', function (){ + var products = this.get("model.industriesData") + + return products.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + }), + filteredIndustriesDataTop5Employment: computed('model', 'startDate', 'endDate', function (){ + var products = this.get("model.industriesData") + var filtered = products.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.employment;}), 0, 5); + return sorted; + }), + filteredIndustriesDataTop5EmploymentOrder: computed('model', 'startDate', 'endDate', function (){ + return [[ 3, "desc" ]]; + }), + filteredIndustriesDataTop5Wages: computed('model', 'startDate', 'endDate', function (){ + var products = this.get("model.industriesData") + var filtered = products.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.wages;}), 0, 5); + return sorted; + }), + filteredIndustriesDataTop5WagesOrder: computed('model', 'startDate', 'endDate', function (){ + return [[ 4, "desc" ]]; + }), + + filteredPartnersData: computed('model', 'startDate', 'endDate', function (){ + + var partners = this.get("model.allPartners") + return partners.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + }), + + hasTimeseries: computed.notEmpty('model.timeseries'), + hasOccupationData: computed.notEmpty('model.occupations'), + hasProductsData: computed.notEmpty('model.productsData'), + hasIndustriesData: computed.notEmpty('model.industriesData'), + + hasAgproductsData: computed.notEmpty('model.agproductsData'), + hasLanduseData: computed.notEmpty('model.landusesData'), + + isCountry: computed.equal('model.level', 'country'), + isDepartment: computed.equal('model.level','department'), + isMsa: computed.equal('model.level','msa'), + isMunicipality: computed.equal('model.level','municipality'), + showExports: false, + + productSpace: computed.alias('model.metaData.productSpace'), + industrySpace: computed.alias('model.metaData.industrySpace'), + + locationId: computed('model.id','model.level', function() { + return this.get('model.id'); + }), + imageCode: computed('model.level', 'model.code', function() { + if(this.get('isDepartment') || this.get('isCountry')) { + return this.get('model.code'); + } else { + return (this.get('model.code')).substring(0,2); + } + }), + productsSortedByExports: computed('productsData', function() { + return _.slice(_.sortBy(this.get('productsData'), function(d) { return -d.export_value;}), 0, 50); + }), + exportTotal: computed('productsData', function() { + var total = _.reduce(this.get('productsData'), function(memo, data) { + return memo + data.export_value; + }, 0); + return '$' + numeral(total).format('0.0a') + ' USD'; + }), + lastIndustryData: computed.filter('industriesData', function(datum) { + return parseInt(get(datum, 'year')) === this.get('lastYear'); + }), + graphbuilderLink: computed('model.id', function() { + return `location-${this.get('model.id')}`; + }), + description: computed('model.name', 'i18n.locale', function() { + return this.get(`model.description_${this.get('i18n.display')}`); + }), + actions: { + showExports(value) { + this.set('showExports', value); + }, + setStartYear(){ + + var year = parseInt($("#selectYear").val()) + + this.set('startDate', year) + this.set('endDate', year) + }, + selectSource(){ + var value = $("#selectType").val(); + + if(value === "1"){ + this.set("source", "landUses"); + this.set("variable", "area"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("startDate", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "Área total"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", false); + } else if(value === "2"){ + this.set("source", "farmtypes"); + this.set("variable", "num_farms"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("startDate", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "UPAS y UPNAS"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", true); + } else if(value === "3"){ + this.set("source", "agproducts"); + this.set("variable", "land_sown"); + this.set("firstYear", this.get("featureToggle.first_year")); + this.set("lastYear", this.get("featureToggle.last_year")); + this.set("startDate", this.get("featureToggle.last_year")); + this.set("Title", "Área sembrada (hectáreas)"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", true); + } else if(value === "4"){ + this.set("source", "agproducts"); + this.set("variable", "land_harvested"); + this.set("firstYear", this.get("featureToggle.first_year")); + this.set("lastYear", this.get("featureToggle.last_year")); + this.set("startDate", this.get("featureToggle.last_year")); + this.set("Title", "Área cosechada (hectáreas)"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", true); + } else if(value === "5"){ + this.set("source", "agproducts"); + this.set("variable", "production_tons"); + this.set("firstYear", this.get("featureToggle.first_year")); + this.set("lastYear", this.get("featureToggle.last_year")); + this.set("startDate", this.get("featureToggle.last_year")); + this.set("Title", "Producción (toneladas)"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", true); + } + + $("#selectYear").val(this.get("startDate")); + + } + } +}); + diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index 1430ed51..5b4d852a 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -74,6 +74,42 @@ export default Ember.Controller.extend({ }) }), + landUsesData: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.landUses')) + + return locations.filter(item => item[1].level === "level2").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name}`} + }) + }), + + farmtypesData: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.farmtypes')) + + return locations.filter(item => item[1].level === "level2").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name}`} + }) + }), + + agproductsData: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.agproducts')) + + return locations.filter(item => item[1].level === "level3").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name}`} + }) + }), + partnersData: computed('model', function(){ var locations = Object.entries(this.get('model.metaData.partnerCountries')) @@ -194,6 +230,8 @@ export default Ember.Controller.extend({ filterData: computed('source', function(){ + console.log(this.get("model")) + if(this.get('source') == 'departments'){ return this.get('locationsData') } @@ -212,6 +250,15 @@ export default Ember.Controller.extend({ else if(this.get('source') == 'industries'){ return this.get('industriesData') } + else if(this.get('source') == 'landUses'){ + return this.get('landUsesData') + } + else if(this.get('source') == 'farmtypes'){ + return this.get('farmtypesData') + } + else if(this.get('source') == 'agproducts'){ + return this.get('agproductsData') + } else{ return [] } @@ -527,6 +574,12 @@ export default Ember.Controller.extend({ else if(this.get('source') === "products"){ return true; } + else if(this.get('source') === "farmtypes"){ + return true; + } + else if(this.get('source') === "agproducts"){ + return true; + } return false; }), canFilterVcr: computed('source', 'visualization', function(){ @@ -745,8 +798,52 @@ export default Ember.Controller.extend({ return _.deburr(`${parentName} ${code}`).match(regexp); }); } + else if(this.get('source') == 'landUses'){ + return _.filter(data, (d) => { + let parentName = get(d,`parent_name_${this.get('i18n').display}`); + let longName = get(d,`name_${this.get('i18n').display}`); + let shortName = get(d,`name_short_${this.get('i18n').display}`); + let code = get(d, 'code'); + + var result_city = _.deburr(`${shortName} ${longName} ${code}`).match(regexp) + + if(result_city !== null){ + return result_city; + } + return _.deburr(`${parentName} ${code}`).match(regexp); + }); + } + else if(this.get('source') == 'farmtypes'){ + return _.filter(data, (d) => { + let parentName = get(d,`parent_name_${this.get('i18n').display}`); + let longName = get(d,`name_${this.get('i18n').display}`); + let shortName = get(d,`name_short_${this.get('i18n').display}`); + let code = get(d, 'code'); + + var result_city = _.deburr(`${shortName} ${longName} ${code}`).match(regexp) + + if(result_city !== null){ + return result_city; + } + return _.deburr(`${parentName} ${code}`).match(regexp); + }); + } + else if(this.get('source') == 'agproducts'){ + return _.filter(data, (d) => { + let parentName = get(d,`parent_name_${this.get('i18n').display}`); + let longName = get(d,`name_${this.get('i18n').display}`); + let shortName = get(d,`name_short_${this.get('i18n').display}`); + let code = get(d, 'code'); + + var result_city = _.deburr(`${shortName} ${longName} ${code}`).match(regexp) + + if(result_city !== null){ + return result_city; + } + return _.deburr(`${parentName} ${code}`).match(regexp); + }); + } else if(this.get('source') == 'partners'){ - console.log(data) var data_result = _.filter(data, (d) => { let parentName = get(d,`parent_name_${this.get('i18n').display}`); let longName = get(d,`name_${this.get('i18n').display}`); diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index a1207629..6adc3b63 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -757,6 +757,9 @@ export default { "visualization.source.products": "Búsque por nombre de producto o partida arancelaría", "visualization.source.industries": "Ingrese el nombre del sector o código CIUU", "visualization.source.partners": "Busque por nombre de país", + "visualization.source.landUses": "Busque el uso de suelo de su interes", + "visualization.source.farmtypes": "Ingrese un tipo de producción rural", + "visualization.source.agproducts": "Busque su producto agropecuario de interes", "visualization.search.departments": "Búsque por departamento o código DANE", "visualization.search.cities": "Búsque por departamento, ciudad o código DANE", @@ -764,6 +767,9 @@ export default { "visualization.search.products": "Búsque por nombre de producto o partida arancelaría", "visualization.search.industries": "Búsque por sector o código CIIU", "visualization.search.partners": "Búsque socios comerciales", + "visualization.search.landUses": "Búsque por uso de suelo", + "visualization.search.farmtypes": "Búsque por producción rural", + "visualization.search.agproducts": "Búsque por producto agropecuario", "visualization.search.first.partners": "REGIÓN", "visualization.search.second.partners": "PAÍS", diff --git a/app/router.js b/app/router.js index 4f36d67d..ae8a768d 100644 --- a/app/router.js +++ b/app/router.js @@ -31,14 +31,14 @@ export default Router.map(function() { this.resource('location', { path: 'location'}, function() { this.route('show', {path: ':location_id'}); this.route('abstract', {path: ':location_id/abstract/'}); - this.route('route', {path: ':location_id/route/'}); this.route('productmap', {path: ':location_id/route/product_map/'}); - this.route('locationimports', {path: ':location_id/route/imports/'}); - this.route('locationwages', {path: ':location_id/route/wages/'}); + this.route('complexsectors', {path: ':location_id/route/complex_sectors/'}); + this.route('ruralactivities', {path: ':location_id/route/rural_activities/'}); + //this.route('productmapdecentralized', {path: ':location_id/route/product_map/decentralized/'}); diff --git a/app/routes/application.js b/app/routes/application.js index e9053ff0..a8e24406 100644 --- a/app/routes/application.js +++ b/app/routes/application.js @@ -43,6 +43,8 @@ export default Ember.Route.extend({ var productSectionColor = $.getJSON('assets/color_mappings/product_section_colors.json'); var partnersSectionColor = $.getJSON('assets/color_mappings/partners_section_colors.json'); + var farmtypesSectionColor = $.getJSON('assets/color_mappings/farmtypes_section_colors.json'); + var agproductsSectionColor = $.getJSON('assets/color_mappings/agproducts_section_colors.json'); var industrySectionColor = $.getJSON(`assets/color_mappings/${this.get('i18n.country')}-industry_section_colors.json`); var industrySpace = $.getJSON(`assets/networks/${this.get('i18n.country')}-industry_space.json`); var productSpace = $.getJSON('assets/networks/product_space.json'); @@ -69,7 +71,9 @@ export default Ember.Route.extend({ industryPCI, productSpace, industrySpace, - partnersSectionColor + partnersSectionColor, + farmtypesSectionColor, + agproductsSectionColor ]; return RSVP.allSettled(promises).then((array) => { @@ -95,6 +99,8 @@ export default Ember.Route.extend({ let productSpace = array[19].value; let industrySpace = array[20].value; let partnersSectionColor = array[21].value; + let farmtypesSectionColor = array[22].value; + let agproductsSectionColor = array[23].value; // Finds the entity with the `1st digit` that matches // sets `group` to the `1st digit code` @@ -151,9 +157,27 @@ export default Ember.Route.extend({ }); _.forEach(agproductsMetadata, (d) => { + + let parent = agproductsMetadata[d.parent_id]; + let color = '#880e4f'; + let icon = 'fas fa-globe'; + + if(parent !== undefined){ + + if(d.level === "level3"){ + let grandparent = agproductsMetadata[parent.parent_id]; + if(agproductsSectionColor[grandparent.id] !== undefined){ + color = agproductsSectionColor[grandparent.id].color; + icon = agproductsSectionColor[grandparent.id].icon; + } + } + + } + d.name_short_en = d.name_en; d.name_short_es = d.name_es; - d.color = '#ccafaf'; + d.color = color; + d.icon = icon; d.model = 'agproduct'; }); @@ -167,14 +191,27 @@ export default Ember.Route.extend({ _.forEach(landUsesMetadata, (d) => { d.name_short_en = d.name_en; d.name_short_es = d.name_es; - d.color = '#ccafaf'; + d.color = '#880e4f'; d.model = 'landUse'; }); _.forEach(farmtypesMetadata, (d) => { + + let color = '#880e4f'; + let icon = 'fas fa-globe'; + + if(farmtypesSectionColor[d.parent_id] !== undefined){ + color = farmtypesSectionColor[d.parent_id].color; + } + + if(farmtypesSectionColor[d.parent_id] !== undefined){ + icon = farmtypesSectionColor[d.parent_id].icon; + } + d.name_short_en = d.name_en; d.name_short_es = d.name_es; - d.color = '#ccafaf'; + d.color = color; + d.icon = icon; }); _.forEach(farmsizesMetadata, (d) => { diff --git a/app/routes/location/ruralactivities.js b/app/routes/location/ruralactivities.js new file mode 100644 index 00000000..d6ae56dd --- /dev/null +++ b/app/routes/location/ruralactivities.js @@ -0,0 +1,327 @@ +import Ember from 'ember'; +import ENV from '../../config/environment'; +import numeral from 'numeral'; + +const {apiURL} = ENV; +const {RSVP, computed, getWithDefault, get, copy} = Ember; + +export default Ember.Route.extend({ +// `this.store.find` makes an api call for `params.location_id` and returns a promise +// in the `then` function call, another API call is made to get the topExports data + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + censusYear: computed.alias('featureToggle.census_year'), + agproductFirstYear: computed.alias('featureToggle.year_ranges.agproduct.first_year'), + agproductLastYear: computed.alias('featureToggle.year_ranges.agproduct.last_year'), + agcensusFirstYear: computed.alias('featureToggle.year_ranges.agcensus.first_year'), + agcensusLastYear: computed.alias('featureToggle.year_ranges.agcensus.last_year'), + + model: function(params) { + return this.store.find('location', params.location_id); + }, + afterModel: function(model) { + let level = model.get('level'); + level = level === 'country' ? 'department' : level; + + let subregion = get(this, `featureToggle.subregions.${model.get('level')}`); + + // TODO: maybe use ember data instead of ajax calls to decorate JSON objects with model functionality? + // extract year out later + var products = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/products?level=4digit`); + var industries = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/industries?level=class`); + + // one of these should be removed in the future because the points should be merged in + var dotplot = Ember.$.getJSON(`${apiURL}/data/location?level=${level}`); //dotplots + + var subregions_trade = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/subregions_trade/?level=${subregion}`); + + var occupations = Ember.$.getJSON(`${apiURL}/data/occupation/?level=minor_group`); + + var agproducts = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/agproducts/?level=level3`); + var landuses = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/land_uses/?level=level2`); + + var ag_farmsizes = Ember.$.getJSON(`${apiURL}/data/farmsize/1/locations/?level=${level}`); + var nonag_farmsizes = Ember.$.getJSON(`${apiURL}/data/farmsize/2/locations/?level=${level}`); + + var partners = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/partners/?level=country`); + + var farmtypes = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/farmtypes/?level=level2`); + + return RSVP.allSettled([products, dotplot, industries, subregions_trade, occupations, agproducts, landuses, ag_farmsizes, nonag_farmsizes, partners, farmtypes]).then((array) => { + var productsData = getWithDefault(array[0], 'value.data', []); + + var dotplotData = getWithDefault(array[1], 'value.data', []);//dotplots + + var industriesData = getWithDefault(array[2], 'value.data', []); + + var subregionsTradeData = _.filter(getWithDefault(array[3], 'value.data', []), { 'year': this.get('lastYear')}); + + var occupationsData = getWithDefault(array[4], 'value.data', []); + + var agproductsData = getWithDefault(array[5], 'value.data', []); + var landusesData = getWithDefault(array[6], 'value.data', []); + + var agFarmsizesData = getWithDefault(array[7], 'value.data', []); + var nonagFarmsizesData = getWithDefault(array[8], 'value.data', []); + + var partnersData = getWithDefault(array[9], 'value.data', []); + var farmtypesDataValues = getWithDefault(array[10], 'value.data', []); + + var productsDataIndex = _.indexBy(productsData, 'product_id'); + var industriesDataIndex = _.indexBy(industriesData, 'industry_data'); + + let productsMetadata = this.modelFor('application').products; + let locationsMetadata = this.modelFor('application').locations; + let industriesMetadata = this.modelFor('application').industries; + let occupationsMetadata = this.modelFor('application').occupations; + let agproductsMetadata = this.modelFor('application').agproducts; + let landusesMetadata = this.modelFor('application').landUses; + let partnersMetadata = this.modelFor('application').partnerCountries; + let farmtypesMetadata = this.modelFor('application').farmtypes; + + + //get products data for the department + let products = _.reduce(productsData, (memo, d) => { + if(d.year != this.get('lastYear')) { return memo; } + let product = productsMetadata[d.product_id]; + let productData = productsDataIndex[d.product_id]; + product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); + memo.push(_.merge(d, product, productData)); + return memo; + }, []); + + + //get products data for the department + let allProducts = _.reduce(productsData, (memo, d) => { + let product = productsMetadata[d.product_id]; + let productData = productsDataIndex[d.product_id]; + + product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); + memo.push(_.merge(d, productData, {year: d.year}, product)); + return memo; + }, []); + + + let allPartners = _.map(partnersData, (d) => { + + let country = partnersMetadata[d.country_id]; + let parent = partnersMetadata[country.parent_id]; + d.parent_name_en = parent.name_en; + d.parent_name_es = parent.name_es; + d.group = parent.id; + + return _.merge(copy(d), country); + }); + + + //get agproducts data for the department + + let agproducts = _.map(agproductsData, (d) => { + let merged = _.merge(copy(d), agproductsMetadata[d.agproduct_id]); + + let parent = agproductsMetadata[merged.parent_id]; + let grandparent = agproductsMetadata[parent.parent_id]; + merged.parent_name_en = grandparent.name_short_en; + merged.parent_name_es = grandparent.name_short_es; + merged.group = grandparent.id; + + return merged; + }); + + //get agproducts data for the department + + let landuses = _.map(landusesData, (d) => { + let merged = _.merge(copy(d), landusesMetadata[d.land_use_id]); + merged.year = this.get('agcensusLastYear'); + merged.group = merged.code; + return merged; + }); + + //get industry data for department + let industries = _.reduce(industriesData, (memo, d) => { + if(d.year != this.get('lastYear')) { return memo; } + let industry = industriesMetadata[d.industry_id]; + if(model.id === '0') { d.rca = 1; } + let industryData = industriesDataIndex[d.industry_id]; + industry.complexity = _.result(_.find(industry.pci_data, { year: d.year}), 'complexity'); + memo.push(_.merge(d, industry, industryData)); + return memo; + }, []); + + let occupationVacanciesSum = 0; + let occupations = _.map(occupationsData, (d) => { + occupationVacanciesSum += d.num_vacancies; + let occupation = occupationsMetadata[d.occupation_id]; + return _.merge(d, occupation); + }); + + occupations.forEach((d) => { + d.share = d.num_vacancies/occupationVacanciesSum; + }); + + //dotplots and dotplotTimeSeries power the dotplots, rankings and etc + var dotplot = []; + var dotplotTimeSeries= []; + + _.each(dotplotData, (d) => { + let id = _.get(d, 'department_id') || _.get(d, 'location_id'); + if(id == model.id) { + dotplotTimeSeries.push(d); + } + if(d.year === this.get('censusYear')) { + let id = _.get(d, 'department_id') || _.get(d, 'location_id'); + + let location = _.get(locationsMetadata, id); + + let extra = { + name: location.name_en, + group: d.code, + parent_name_en: location.name_en, + parent_name_es: location.name_es, + }; + + let datum = _.merge(d, location, extra ); + dotplot.push(datum); + } + }); + + let subregions = []; + _.each(subregionsTradeData, (d) => { + let id = _.get(d, 'department_id') || _.get(d, 'location_id'); + + let location = _.get(locationsMetadata, id); + let extra = { + name: location.name_en, + group: d.code, + parent_name_en: location.name_en, + parent_name_es: location.name_es, + }; + + let datum = _.merge(d, location, extra ); + subregions.push(datum); + }); + + var eciRank = 1; + var populationRank = 1; + var gdpRank = 1; + var gdpPerCapitaRank = 1; + + // "Datum" contains the hash of data for the year to be displayed. + let datum = _.chain(dotplotTimeSeries) + .select({ year: this.get('censusYear')}) + .first() + .value(); + + if(datum) { + _.each(dotplot, (d) => { + if(d.eci != null && d.eci > datum.eci) { eciRank ++; } + if(d.gdp_real != null && d.gdp_real > datum.gdp_real) { gdpRank ++; } + if(d.population != null && d.population > datum.population ) { populationRank ++; } + if(d.gdp_pc_real != null && d.gdp_pc_real> datum.gdp_pc_real ) { gdpPerCapitaRank++; } + }); + } + + if(datum !== undefined && (datum.eci === undefined || datum.eci === null)){ + eciRank = null; + } + + model.setProperties({ + eciRank: eciRank, + gdpRank: gdpRank, + gdpPerCapitaRank: gdpPerCapitaRank, + populationRank: populationRank, + }); + + var agFarmsizeRank = 1; + var agFarmsize = _.chain(agFarmsizesData).filter((d) => d.location_id == model.id).first().get("avg_farmsize").value(); + _.each(agFarmsizesData, (d) => { + + if(d.avg_farmsize != null && d.avg_farmsize > agFarmsize ) { agFarmsizeRank++; } + + d.name_en = _.get(locationsMetadata, d.location_id).name_en; + d.name_es = _.get(locationsMetadata, d.location_id).name_es; + + }); + agFarmsize = numeral(agFarmsize).format('0.00a'); + + model.setProperties({ + agFarmsize: agFarmsize, + agFarmsizeRank: agFarmsizeRank, + }); + + var nonagFarmsizeRank = 1; + var nonagFarmsize = _.chain(nonagFarmsizesData).filter((d) => d.location_id == model.id).first().get("avg_farmsize").value(); + _.each(nonagFarmsizesData, (d) => { + + if(d.avg_farmsize != null && d.avg_farmsize > nonagFarmsize ) { nonagFarmsizeRank++; } + + d.name_en = _.get(locationsMetadata, d.location_id).name_en; + d.name_es = _.get(locationsMetadata, d.location_id).name_es; + + }); + nonagFarmsize = numeral(nonagFarmsize).format('0.00a'); + + model.setProperties({ + nonagFarmsize: nonagFarmsize, + nonagFarmsizeRank: nonagFarmsizeRank, + }); + + var yieldIndexRank = 1; + var yieldIndex = _.chain(dotplotData).filter((d) => ((d.department_id == model.id || d.location_id == model.id) && d.year == this.get("agproductLastYear"))).first().get("yield_index").value(); + + var yieldData = _.filter(dotplotData, (d) => d.year == this.get("agproductLastYear") ); + _.each(yieldData, (d) => { + if(d.yield_index != null && d.yield_index > yieldIndex) { yieldIndexRank++; } + let id = _.get(d, 'department_id') || _.get(d, 'location_id'); + d.name_en = _.get(locationsMetadata, id).name_en; + d.name_es = _.get(locationsMetadata, id).name_es; + }); + yieldIndex = numeral(yieldIndex).format('0.00a'); + + model.setProperties({ + yieldIndex: yieldIndex, + yieldIndexRank: yieldIndexRank, + }); + + let farmtypesData = _.map(farmtypesDataValues, (d) => { + let merged = _.merge(copy(d), farmtypesMetadata[d.farmtype_id]); + let parent = farmtypesMetadata[merged.parent_id]; + + merged.parent_name_en = parent.name_short_en; + merged.parent_name_es = parent.name_short_es; + merged.year = this.get('agcensusLastYear'); + merged.group = merged.code; + merged.same_parent = true; + return merged; + }); + + + model.set('productsData', products); + model.set('agproductsData', agproducts); + model.set('landusesData', landuses); + model.set('industriesData', industries); + model.set('agFarmsizesData', agFarmsizesData); + model.set('nonagFarmsizesData', nonagFarmsizesData); + model.set('yieldData', yieldData); + model.set('dotplotData', dotplot); + model.set('occupations', occupations); + model.set('timeseries', dotplotTimeSeries); + model.set('metaData', this.modelFor('application')); + model.set('subregions', subregions); + model.set('allPartners', allPartners); + model.set('allProducts', allProducts); + model.set('farmtypesData', farmtypesData); + + return model; + }); + }, + setupController(controller, model) { + this._super(controller, model); + this.controllerFor('application').set('entity', model.get('constructor.modelName')); + this.controllerFor('application').set('entity_id', model.get('id')); + window.scrollTo(0, 0); + }, +}); diff --git a/app/routes/location/visualization.js b/app/routes/location/visualization.js index 49a95005..71ec9bd9 100644 --- a/app/routes/location/visualization.js +++ b/app/routes/location/visualization.js @@ -184,6 +184,8 @@ export default Ember.Route.extend({ let {model, agproducts } = hash; let agproductsMetadata = this.modelFor('application').agproducts; + var ids = [] + let data = _.map(agproducts.data, (d) => { let merged = _.merge(copy(d), agproductsMetadata[d.agproduct_id]); @@ -239,8 +241,13 @@ export default Ember.Route.extend({ let data = _.map(farmtypes.data, (d) => { let merged = _.merge(copy(d), farmtypesMetadata[d.farmtype_id]); + let parent = farmtypesMetadata[merged.parent_id]; + + merged.parent_name_en = parent.name_short_en; + merged.parent_name_es = parent.name_short_es; merged.year = this.get('agcensusLastYear'); merged.group = merged.code; + merged.same_parent = true; return merged; }); diff --git a/app/templates/location/-regional-location-rural.hbs b/app/templates/location/-regional-location-rural.hbs new file mode 100644 index 00000000..b6384774 --- /dev/null +++ b/app/templates/location/-regional-location-rural.hbs @@ -0,0 +1,140 @@ +
    +
    + +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    + + +
    + +
    + +
    +

    Actividades rurales

    +
    + +
    +

    Selector

    +

    Utilice el selector para cambiar la Información

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    + +
    +
    +
    + {{#if showGrap}} +

    {{Title}}: {{headerValue}} ({{startDate}})

    + {{ + zoomable-treemap + data=filteredData + immutableData=filteredData + varDependent=variable + elementId='zoomable-export-value-treemap' + class="position-relative" + color='pink' + filterCategory=canFilterCategory + }} + {{/if}} +
    + +
    +
    + +
    + + +
    +
    + {{ + datlas-table + data=filteredData + source=source + entityType='' + search=search + startDate=startDate + endDate=endDate + elementId="productssourceTable" + }} +
    + +
    + + +
    + +
    +
    + +
    +
    + + {{#link-to 'location.visualization' model.id source vizualization variable (query-params startDate=startDate endDate=startDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + + +
    + +
    \ No newline at end of file diff --git a/app/templates/location/-regional-location-wages.hbs b/app/templates/location/-regional-location-wages.hbs index 2b98a064..d04c63b3 100644 --- a/app/templates/location/-regional-location-wages.hbs +++ b/app/templates/location/-regional-location-wages.hbs @@ -238,7 +238,7 @@ {{/link-to}}
    - {{#link-to 'location.locationwages' model.id + {{#link-to 'location.complexsectors' model.id class="btn btn-outline-secondary" }} SIGUIENTE diff --git a/app/templates/location/complexsectors.hbs b/app/templates/location/complexsectors.hbs new file mode 100644 index 00000000..14a9e8ff --- /dev/null +++ b/app/templates/location/complexsectors.hbs @@ -0,0 +1,20 @@ +
    +

    CASO 34

    +
    + +
    +
    + {{#link-to 'location.locationwages' model.id + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    +
    + {{#link-to 'location.ruralactivities' model.id + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    \ No newline at end of file diff --git a/app/templates/location/ruralactivities.hbs b/app/templates/location/ruralactivities.hbs new file mode 100644 index 00000000..daee4b29 --- /dev/null +++ b/app/templates/location/ruralactivities.hbs @@ -0,0 +1,35 @@ +{{component "stream-header" + model=model + type="location" + extra_type="location_route" + metaData=model.metaData + firstYear=firstYear + lastYear=lastYear + agproductFirstYear=agproductFirstYear + agproductLastYear=agproductLastYear + agcensusFirstYear=agcensusFirstYear + agcensusLastYear=agcensusLastYear +}} + +{{#if isCountry }} + {{partial 'location/country-location-route'}} +{{else}} + {{partial 'location/regional-location-rural'}} +{{/if}} + +
    +
    + {{#link-to 'location.complexsectors' model.id + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    +
    + {{#link-to 'location.ruralactivities' model.id + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    \ No newline at end of file diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 860bbe8f..d1d7aa05 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -209,6 +209,38 @@
    {{/if}} + {{#if (is-equal source "landUses")}} +
    +
    + {{#link-to 'location.ruralactivities' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + + + {{#if (is-equal source "farmtypes")}} +
    +
    + {{#link-to 'location.ruralactivities' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + + {{#if (is-equal source "agproducts")}} +
    +
    + {{#link-to 'location.ruralactivities' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + + {{/if}} diff --git a/vendor/color_mappings/agproducts_section_colors.json b/vendor/color_mappings/agproducts_section_colors.json new file mode 100644 index 00000000..69d05431 --- /dev/null +++ b/vendor/color_mappings/agproducts_section_colors.json @@ -0,0 +1,50 @@ +{ + "1": { + "color": "#33691e", + "icon": "fas fa-seedling" + }, + "24": { + "color": "#00acc1", + "icon": "fas fa-leaf" + }, + "41": { + "color": "#f57f17", + "icon": "fas fa-fan" + }, + "65": { + "color": "#4a148c", + "icon": "fas fa-tree" + }, + "69": { + "color": "#ba68c8", + "icon": "fas fa-lemon" + }, + "196": { + "color": "#880e4f", + "icon": "fas fa-cloud-meatball" + }, + "201": { + "color": "#827717", + "icon": "fab fa-pagelines" + }, + "265": { + "color": "#03a9f4", + "icon": "fas fa-fan" + }, + "292": { + "color": "#006064", + "icon": "fas fa-fan" + }, + "303": { + "color": "#0d47a1", + "icon": "fas fa-leaf" + }, + "317": { + "color": "#e91e63", + "icon": "fas fa-tree" + }, + "357": { + "color": "#7e57c2", + "icon": "fas fa-seedling" + } +} diff --git a/vendor/color_mappings/farmtypes_section_colors.json b/vendor/color_mappings/farmtypes_section_colors.json new file mode 100644 index 00000000..72afb197 --- /dev/null +++ b/vendor/color_mappings/farmtypes_section_colors.json @@ -0,0 +1,10 @@ +{ + "1": { + "color": "#33691e", + "icon": "fas fa-carrot" + }, + "5": { + "color": "#827717", + "icon": "fas fa-archive" + } +} From 0cd36afd10f02b5cd4403beb66360722df49a014 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Sun, 12 Sep 2021 15:33:36 -0500 Subject: [PATCH 027/126] Release 0.12 --- app/components/datlas-table.js | 14 +- app/controllers/location/ruralactivities.js | 268 ++++++++- app/controllers/visualization.js | 2 - app/mixins/table-map.js | 8 + app/routes/location/ruralactivities.js | 28 +- .../location/-regional-location-rural.hbs | 509 +++++++++++++++--- app/templates/visualization.hbs | 63 ++- 7 files changed, 778 insertions(+), 114 deletions(-) diff --git a/app/components/datlas-table.js b/app/components/datlas-table.js index c7047700..f7e9e129 100644 --- a/app/components/datlas-table.js +++ b/app/components/datlas-table.js @@ -160,12 +160,13 @@ export default Ember.Component.extend(TableMap, { }, updatedData: computed('data.[]', 'tableMap', 'i18n.locale', 'source', 'search', 'startDate', function() { var data = this.get("data"); + var tableMap = this.get('tableMap') if(data === undefined){ data = []; } - var columns = this.get('tableMap').map((column) => { return column.key }) + var columns = tableMap.map((column) => { return column.key }) var that = this; @@ -186,7 +187,10 @@ export default Ember.Component.extend(TableMap, { return testSpan + item[`parent_name_${that.get('i18n').display}`]; } else if(key === 'parent_name'){ - return item[`parent_name_${that.get('i18n').display}`]; + if(item.hasOwnProperty(`parent_name_${that.get('i18n').display}`)){ + return item[`parent_name_${that.get('i18n').display}`]; + } + return "" } else if(!item.hasOwnProperty(key)){ return null; @@ -432,7 +436,7 @@ export default Ember.Component.extend(TableMap, { var language = this.get("getLanguage"); if(columns.length === 0){ - columns = this.get('titlesCache'); + columns = [{"title": "", "data": ""}]; }else{ this.set('titlesCache', columns); } @@ -444,6 +448,10 @@ export default Ember.Component.extend(TableMap, { order = this.get("order") } + if(updatedData.length === 0){ + order = [[ 0, "desc" ]]; + } + var table = $(id_element).DataTable({ dom: 'Bfrtip', diff --git a/app/controllers/location/ruralactivities.js b/app/controllers/location/ruralactivities.js index a4189967..a0e6ce65 100644 --- a/app/controllers/location/ruralactivities.js +++ b/app/controllers/location/ruralactivities.js @@ -8,9 +8,14 @@ export default Ember.Controller.extend({ queryParams: ['year'], startDate: null, + startDateTable: null, + classNone: "", + tableClassNone: "", + endDate: null, showGrap: true, + showMultiples: false, + showTable: false, canFilterCategory: false, - endDate: null, source: "landUses", variable: "area", vizualization: "treemap", @@ -22,6 +27,15 @@ export default Ember.Controller.extend({ lastYear: computed('featureToggle.census_year', function () { return this.get("featureToggle.year_ranges.agcensus.last_year"); }), + firstYearTable: computed('featureToggle.first_year', function () { + return this.get("featureToggle.first_year"); + }), + lastYearTable: computed('featureToggle.last_year', function () { + return this.get("featureToggle.last_year"); + }), + dateValue: computed('featureToggle.census_year', function () { + return this.get("featureToggle.year_ranges.agcensus.first_year"); + }), censusYear: computed.alias('featureToggle.census_year'), agproductFirstYear: computed.alias('featureToggle.year_ranges.agproduct.first_year'), agproductLastYear: computed.alias('featureToggle.year_ranges.agproduct.last_year'), @@ -42,18 +56,118 @@ export default Ember.Controller.extend({ var source = this.get("source") var data = [] - console.log(this.get("model")) - if(source === "landUses"){ data = this.get("model.landusesData"); } else if(source === "farmtypes"){ data = this.get("model.farmtypesData"); } else if(source === "agproducts"){ data = this.get("model.agproductsData"); + } else if(source === "nonags"){ + data = this.get("model.nonagsData"); + } else if(source === "livestock"){ + data = this.get("model.livestockData"); } - return data.filter(item => item.year === this.get("startDate")); + return data.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")); + }), + filteredDataLandUsesTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.landusesData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.area;}), 0, 5); + return sorted + }), + filteredDataLandUsesTop5Order: computed('model', 'startDateTable', function (){ + return [[ 3, "desc" ]]; + }), + + + filteredDataFarmTypesTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.farmtypesData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.num_farms;}), 0, 5); + return sorted + }), + filteredDataFarmTypesTop5Order: computed('model', 'startDateTable', function (){ + return [[ 1, "desc" ]]; + }), + + + filteredDataLandSownTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.agproductsData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.land_sown;}), 0, 5); + return sorted + }), + filteredDataLandSownTop5Order: computed('model', 'startDateTable', function (){ + return [[ 2, "desc" ]]; + }), + + + filteredDataLandHarvestedTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.agproductsData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.land_harvested;}), 0, 5); + return sorted + }), + filteredDataLandHarvestedTop5Order: computed('model', 'startDateTable', function (){ + return [[ 3, "desc" ]]; + }), + + filteredDataProductionTonsTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.agproductsData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.production_tons;}), 0, 5); + return sorted + }), + filteredDataProductionTonsTop5Order: computed('model', 'startDateTable', function (){ + return [[ 4, "desc" ]]; + }), + + + filteredDataYieldRatioTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.agproductsData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.yield_ratio;}), 0, 5); + return sorted + }), + filteredDataYieldRatioTop5Order: computed('model', 'startDateTable', function (){ + return [[ 5, "desc" ]]; + }), + + + filteredDataNonagsNumFarmsTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.nonagsData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.num_farms;}), 0, 5); + return sorted + }), + filteredDataNonagsNumFarmsTop5Order: computed('model', 'startDateTable', function (){ + return [[ 1, "desc" ]]; + }), + + + filteredDataLiveStockNumTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.livestockData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.num_livestock;}), 0, 5); + return sorted + }), + filteredDataLiveStockNumTop5Order: computed('model', 'startDateTable', function (){ + return [[ 2, "desc" ]]; }), + + filteredDataLiveStockNumFarmsTop5: computed('model.[]', 'startDateTable', function(){ + var data = this.get("model.livestockData"); + var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.num_farms;}), 0, 5); + + return sorted + }), + filteredDataLiveStockNumFarmsTop5Order: computed('model', 'startDateTable', function (){ + return [[ 1, "desc" ]]; + }), + + headerValue: computed('filteredData', 'variable', 'i18n.locale', function() { let allowedVariables = ['export_value', 'import_value', 'wages', 'employment', 'land_sown', 'land_harvested', 'production_tons', 'area', @@ -81,15 +195,33 @@ export default Ember.Controller.extend({ return numeral(sum).format('0,00'); }), - rangeYears: computed('firstYear', 'lastYear', function(){ + rangeYears: computed('firstYear', 'lastYear', 'source', 'variable', function(){ - this.set('startDate', this.get("lastYear")) - this.set('endDate', this.get("lastYear")) + var source = this.get("source"); + var variable = this.get("variable"); + + if( source === "agproducts" && variable === "yield_ratio"){ + this.set('startDate', this.get("firstYear")) + this.set('endDate', this.get("lastYear")) + this.set('dateValue', `${this.get('firstYear')} - ${this.get('lastYear')}`) + } else { + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + this.set('dateValue', `${this.get('lastYear')}`) + } var min = this.get("firstYear") var max = this.get("lastYear") return [...Array(max - min + 1).keys()].map(i => i + min); }), + rangeYearsTable: computed('firstYearTable', 'lastYearTable', function(){ + + this.set('startDateTable', this.get("lastYearTable")) + + var min = this.get("firstYearTable") + var max = this.get("lastYearTable") + return [...Array(max - min + 1).keys()].map(i => i + min); + }), filteredProductsData: computed('model', 'startDate', 'endDate', function (){ var products = this.get("model.allProducts") @@ -183,6 +315,13 @@ export default Ember.Controller.extend({ this.set('startDate', year) this.set('endDate', year) }, + setStartYearTable(){ + + var year = parseInt($("#selectYearTable").val()) + + this.set('startDateTable', year) + this.set('endDateTable', year) + }, selectSource(){ var value = $("#selectType").val(); @@ -191,46 +330,127 @@ export default Ember.Controller.extend({ this.set("variable", "area"); this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); - this.set("startDate", this.get("featureToggle.year_ranges.agcensus.first_year")); - this.set("Title", "Área total"); + this.set("Title", "Área total:"); this.set("vizualization", "treemap"); this.set("canFilterCategory", false); + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + //$("#pills-graphic-tab").trigger("click"); } else if(value === "2"){ this.set("source", "farmtypes"); this.set("variable", "num_farms"); this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); - this.set("startDate", this.get("featureToggle.year_ranges.agcensus.first_year")); - this.set("Title", "UPAS y UPNAS"); + this.set("Title", "UPAS y UPNAS:"); this.set("vizualization", "treemap"); this.set("canFilterCategory", true); + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + //$("#pills-graphic-tab").trigger("click"); } else if(value === "3"){ this.set("source", "agproducts"); this.set("variable", "land_sown"); - this.set("firstYear", this.get("featureToggle.first_year")); - this.set("lastYear", this.get("featureToggle.last_year")); - this.set("startDate", this.get("featureToggle.last_year")); - this.set("Title", "Área sembrada (hectáreas)"); + this.set("firstYear", this.get("featureToggle.year_ranges.agproduct.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agproduct.last_year")); + this.set("Title", "Área sembrada (hectáreas):"); this.set("vizualization", "treemap"); this.set("canFilterCategory", true); + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + //$("#pills-graphic-tab").trigger("click"); } else if(value === "4"){ this.set("source", "agproducts"); this.set("variable", "land_harvested"); - this.set("firstYear", this.get("featureToggle.first_year")); - this.set("lastYear", this.get("featureToggle.last_year")); - this.set("startDate", this.get("featureToggle.last_year")); - this.set("Title", "Área cosechada (hectáreas)"); + this.set("firstYear", this.get("featureToggle.year_ranges.agproduct.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agproduct.last_year")); + this.set("Title", "Área cosechada (hectáreas):"); this.set("vizualization", "treemap"); - this.set("canFilterCategory", true); + this.set("canFilterCategory", true) + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + //$("#pills-graphic-tab").trigger("click"); } else if(value === "5"){ this.set("source", "agproducts"); this.set("variable", "production_tons"); - this.set("firstYear", this.get("featureToggle.first_year")); - this.set("lastYear", this.get("featureToggle.last_year")); - this.set("startDate", this.get("featureToggle.last_year")); - this.set("Title", "Producción (toneladas)"); + this.set("firstYear", this.get("featureToggle.year_ranges.agproduct.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agproduct.last_year")); + this.set("Title", "Producción (toneladas):"); this.set("vizualization", "treemap"); this.set("canFilterCategory", true); + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + //$("#pills-graphic-tab").trigger("click"); + } else if(value === "6"){ + this.set("source", "agproducts"); + this.set("variable", "yield_ratio"); + this.set("firstYear", this.get("featureToggle.year_ranges.agproduct.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agproduct.last_year")); + this.set("Title", "Rendimiento"); + this.set("vizualization", "multiples"); + this.set("canFilterCategory", false); + this.set("showGrap", false); + this.set("showMultiples", true); + this.set("showTable", false); + this.set("classNone", "d-none"); + this.set("tableClassNone", ""); + //$("#pills-graphic-tab").trigger("click"); + } else if(value === "7"){ + this.set("source", "nonags"); + this.set("variable", "num_farms"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "Numero unidades de producción:"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", false); + this.set("showGrap", false); + this.set("showMultiples", false); + this.set("showTable", true); + this.set("classNone", "d-none"); + this.set("tableClassNone", "d-none"); + //$("#pills-table-tab").trigger("click"); + } else if(value === "8"){ + this.set("source", "livestock"); + this.set("variable", "num_livestock"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "Número de animales:"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", false); + this.set("showGrap", false); + this.set("showMultiples", false); + this.set("showTable", true); + this.set("classNone", "d-none"); + this.set("tableClassNone", "d-none"); + //$("#pills-table-tab").trigger("click"); + } else if(value === "9"){ + this.set("source", "livestock"); + this.set("variable", "num_farms"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "Numero unidades de producción:"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", false); + this.set("showGrap", false); + this.set("showMultiples", false); + this.set("showTable", true); + this.set("classNone", "d-none"); + this.set("tableClassNone", "d-none"); + //$("#pills-table-tab").trigger("click"); } $("#selectYear").val(this.get("startDate")); diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index 5b4d852a..5a3d834e 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -230,8 +230,6 @@ export default Ember.Controller.extend({ filterData: computed('source', function(){ - console.log(this.get("model")) - if(this.get('source') == 'departments'){ return this.get('locationsData') } diff --git a/app/mixins/table-map.js b/app/mixins/table-map.js index c57f8e1e..c146d4d7 100644 --- a/app/mixins/table-map.js +++ b/app/mixins/table-map.js @@ -377,6 +377,14 @@ export default Ember.Mixin.create({ return columns; } }), + livestockDataMap: computed('featureToggle.showImports', function() { + let columns = [ + { key: 'name', copy: 'livestock' }, + { key: 'num_farms' }, + { key: 'num_livestock' }, + ]; + return columns; + }), partnersExportsMap: computed('featureToggle.showImports', function() { let columns = [ { key: 'name', copy: 'country' }, diff --git a/app/routes/location/ruralactivities.js b/app/routes/location/ruralactivities.js index d6ae56dd..5685d708 100644 --- a/app/routes/location/ruralactivities.js +++ b/app/routes/location/ruralactivities.js @@ -50,7 +50,11 @@ export default Ember.Route.extend({ var farmtypes = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/farmtypes/?level=level2`); - return RSVP.allSettled([products, dotplot, industries, subregions_trade, occupations, agproducts, landuses, ag_farmsizes, nonag_farmsizes, partners, farmtypes]).then((array) => { + var nonags = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/nonags/?level=level3`); + + var livestock = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/livestock/?level=level1`); + + return RSVP.allSettled([products, dotplot, industries, subregions_trade, occupations, agproducts, landuses, ag_farmsizes, nonag_farmsizes, partners, farmtypes, nonags, livestock]).then((array) => { var productsData = getWithDefault(array[0], 'value.data', []); var dotplotData = getWithDefault(array[1], 'value.data', []);//dotplots @@ -69,6 +73,8 @@ export default Ember.Route.extend({ var partnersData = getWithDefault(array[9], 'value.data', []); var farmtypesDataValues = getWithDefault(array[10], 'value.data', []); + var nonagsDataValues = getWithDefault(array[11], 'value.data', []); + var livestockDataValues = getWithDefault(array[12], 'value.data', []); var productsDataIndex = _.indexBy(productsData, 'product_id'); var industriesDataIndex = _.indexBy(industriesData, 'industry_data'); @@ -81,6 +87,8 @@ export default Ember.Route.extend({ let landusesMetadata = this.modelFor('application').landUses; let partnersMetadata = this.modelFor('application').partnerCountries; let farmtypesMetadata = this.modelFor('application').farmtypes; + let nonagsMetadata = this.modelFor('application').nonags; + let livestockMetadata = this.modelFor('application').livestock; //get products data for the department @@ -298,6 +306,22 @@ export default Ember.Route.extend({ return merged; }); + let nonagsData = _.map(nonagsDataValues, (d) => { + d.year = this.get('agcensusLastYear'); + let merged = _.merge(copy(d), nonagsMetadata[d.nonag_id]); + merged.group = merged.code; + return merged; + }); + + let livestockData = _.map(livestockDataValues, (d) => { + d.year = this.get('agcensusLastYear'); + let merged = _.merge(copy(d), livestockMetadata[d.livestock_id]); + merged.group = merged.code; + return merged; + }); + + + model.set('productsData', products); model.set('agproductsData', agproducts); @@ -314,6 +338,8 @@ export default Ember.Route.extend({ model.set('allPartners', allPartners); model.set('allProducts', allProducts); model.set('farmtypesData', farmtypesData); + model.set('nonagsData', nonagsData); + model.set('livestockData', livestockData); return model; }); diff --git a/app/templates/location/-regional-location-rural.hbs b/app/templates/location/-regional-location-rural.hbs index b6384774..839680b4 100644 --- a/app/templates/location/-regional-location-rural.hbs +++ b/app/templates/location/-regional-location-rural.hbs @@ -1,85 +1,93 @@
    +
    -

    Filtrar por Año

    +
    +
    -
    -
    -
    - +
    +

    Filtrar por Año

    -
    -
    - -
    + +
    +
    +
    + +
    +
    -
    -

    Selector

    -

    Utilice el selector para cambiar la Información

    -
    +
    + +
    -
    -
    -
    -
    - +
    +
    -
    -
    +
    +

    Actividades rurales

    +
    -
    +
    +

    Selector

    +

    Utilice el selector para cambiar la Información

    +
    -
    -
    +
    + +
    +
    +
    + +
    +
    + +
    + +
    -
    {{#if showGrap}} -

    {{Title}}: {{headerValue}} ({{startDate}})

    +

    {{Title}} {{headerValue}} ({{startDate}})

    {{ zoomable-treemap data=filteredData @@ -91,50 +99,397 @@ filterCategory=canFilterCategory }} {{/if}} + {{#if showMultiples}} +

    {{Title}} {{headerValue}} ({{dateValue}})

    + {{ + multiples-graph + immutableData=filteredData + data=filteredData + modelData=filteredData + dataType=source + startDate=startDate + endDate=endDate + varDependent=variable + elementId='zoomable-export-value-multple' + }} + {{/if}} + {{#if showTable}} +

    {{Title}} {{headerValue}} ({{dateValue}})

    + {{ + datlas-table + data=filteredData + source=source + entityType='' + search=search + startDate=startDate + endDate=endDate + elementId="productssourceTable" + }} + {{/if}}
    +
    +
    + + {{#link-to 'location.visualization' model.id source vizualization variable (query-params startDate=startDate endDate=endDate search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    +
    +

    Filtrar por Año

    +
    -
    -
    +
    + +
    +
    +
    + +
    +
    + +
    + +
    + + +
    + +
    + +
    +

    Actividades rurales

    +
    + +
    +

    Uso del suelo en {{model.name}}

    +
    + +
    +
    {{ datlas-table - data=filteredData - source=source - entityType='' - search=search - startDate=startDate - endDate=endDate - elementId="productssourceTable" + data=filteredDataLandUsesTop5 + source="landUse" + entityType='landUse' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables" + order=filteredDataLandUsesTop5Order }}
    +
    +
    + + {{#link-to 'location.visualization' model.id "landUses" "treemap" "area" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    +
    -
    +
    +

    Unidades de producción agropecuaria y no agropecuaria en {{model.name}}

    +
    -
    -
    +
    +
    + {{ + datlas-table + data=filteredDataFarmTypesTop5 + source="farmtypes" + entityType='farmtypes' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables2" + order=filteredDataFarmTypesTop5Order + }} +
    + +
    +
    + + {{#link-to 'location.visualization' model.id "farmtypes" "treemap" "num_farms" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + +
    -
    -
    - {{#link-to 'location.visualization' model.id source vizualization variable (query-params startDate=startDate endDate=startDate search='null') - class="btn btn-outline-secondary" - }} - - VER MAS - {{/link-to}} +
    +

    Hectáreas sembradas por cultivo en {{model.name}}

    +
    + +
    +
    + {{ + datlas-table + data=filteredDataLandSownTop5 + source="agproducts" + entityType='agproducts' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables3" + order=filteredDataLandSownTop5Order + }} +
    + +
    +
    + + {{#link-to 'location.visualization' model.id "agproducts" "treemap" "land_sown" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + +
    + + +
    +

    Hectáreas cosechadas por cultivo en {{model.name}}

    +
    + +
    +
    + {{ + datlas-table + data=filteredDataLandHarvestedTop5 + source="agproducts" + entityType='agproducts' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables4" + order=filteredDataLandHarvestedTop5Order + }} +
    + +
    +
    + + {{#link-to 'location.visualization' model.id "agproducts" "treemap" "land_harvested" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + +
    + + +
    +

    Toneladas producidas por cultivo {{model.name}}

    +
    + +
    +
    + {{ + datlas-table + data=filteredDataProductionTonsTop5 + source="agproducts" + entityType='agproducts' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables5" + order=filteredDataProductionTonsTop5Order + }} +
    + +
    +
    + + {{#link-to 'location.visualization' model.id "agproducts" "treemap" "production_tons" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + +
    + + +
    +

    Rendimiento de los cultivos en {{model.name}}

    +
    + +
    +
    + {{ + datlas-table + data=filteredDataYieldRatioTop5 + source="agproducts" + entityType='agproducts' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables6" + order=filteredDataYieldRatioTop5Order + }} +
    + +
    +
    + + {{#link-to 'location.visualization' model.id "agproducts" "multiples" "yield_ratio" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + +
    + + +
    +

    Actividades no agropecuarias en {{model.name}}

    +
    + +
    +
    + {{ + datlas-table + data=filteredDataNonagsNumFarmsTop5 + source="nonags" + entityType='nonags' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables7" + order=filteredDataNonagsNumFarmsTop5Order + }} +
    + +
    +
    + + {{#link-to 'location.visualization' model.id "nonags" "treemap" "num_farms" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + +
    + +
    +

    Especies pecuarias en {{model.name}}

    +
    + +
    +
    + {{ + datlas-table + data=filteredDataLiveStockNumTop5 + source="livestockData" + entityType='livestockData' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables8" + order=filteredDataLiveStockNumTop5Order + }} +
    + +
    +
    + + {{#link-to 'location.visualization' model.id "livestock" "treemap" "num_livestock" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + +
    + + +
    +

    UPAS actividad pecuaria por especie en {{model.name}}

    +
    + +
    +
    + {{ + datlas-table + data=filteredDataLiveStockNumFarmsTop5 + source="livestockData" + entityType='livestockData' + startDate=startDateTable + endDate=startDateTable + elementId="productssourceTables9" + order=filteredDataLiveStockNumFarmsTop5Order + }} +
    + +
    +
    + + {{#link-to 'location.visualization' model.id "livestock" "treemap" "num_farms" (query-params startDate=startDateTable endDate=startDateTable search='null') + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} + +
    +
    + +
    + + +
    + +
    \ No newline at end of file diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index d1d7aa05..8e9524b2 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -31,14 +31,23 @@
    -
    -

    {{pageTitle}}

    -
    + {{#if (is-equal hideVisualization false)}} + +
    +

    {{pageTitle}}

    +
    + +
    +

    {{ t 'graph_builder.types' }}

    + {{partial "partials/buildermod-drawer-change-graph"}} +
    + + {{else}} +
    +

    {{pageTitle}}

    +
    + {{/if}} -
    -

    {{ t 'graph_builder.types' }}

    - {{partial "partials/buildermod-drawer-change-graph"}} -
    @@ -140,6 +149,26 @@ {{/unless}} + {{#if (is-equal hideVisualization true)}} +
    + {{component 'visualization-explanation' text=visualizationExplanation}} +
    +
    + + {{ + datlas-table + data=filteredDataTable + source=source + entityType=entityType + search=search + startDate=startDate + endDate=endDate + elementId="sourceTable" + }} + +
    + {{/if}} +
    {{#if (is-equal entityType "product")}} @@ -240,6 +269,26 @@
    {{/if}} + {{#if (is-equal source "nonags")}} +
    +
    + {{#link-to 'location.ruralactivities' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + + {{#if (is-equal source "livestock")}} +
    +
    + {{#link-to 'location.ruralactivities' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    +
    + {{/if}} + {{/if}} From 411ce1abf51f94ece77140a2442691902e92df8e Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Sun, 12 Sep 2021 20:02:25 -0500 Subject: [PATCH 028/126] Release 0.12.1 --- app/components/autocomplete-input-datlas.js | 8 ++++++++ app/components/datlas-table.js | 9 ++++++--- app/components/zoomable-treemap.js | 22 +++++++++++++++++++++ app/controllers/visualization.js | 4 ++++ app/index.html | 1 + app/routes/location/visualization.js | 2 -- app/templates/agproduct/-questions.hbs | 1 - app/templates/industry/show.hbs | 10 ++++++++++ app/templates/land-use/-questions.hbs | 1 - app/templates/livestock/-questions.hbs | 1 - app/templates/partials/-pageheader.hbs | 4 ++-- package.json | 2 +- 12 files changed, 54 insertions(+), 11 deletions(-) diff --git a/app/components/autocomplete-input-datlas.js b/app/components/autocomplete-input-datlas.js index 8e51dfbc..923eaadb 100644 --- a/app/components/autocomplete-input-datlas.js +++ b/app/components/autocomplete-input-datlas.js @@ -166,6 +166,14 @@ export default Ember.Component.extend({ }); }), + updatebuildermodSearchService: observer('buildermodSearchService.search', function () { + if(this.get("buildermodSearchService.search") === null){ + let id_select = this.get('idSelect'); + var $eventSelect = $(`#${id_select}`); + $eventSelect.val(''); + $eventSelect.trigger('change'); + } + }), actions: { reset: function() { this.set('search', null); diff --git a/app/components/datlas-table.js b/app/components/datlas-table.js index f7e9e129..2510739f 100644 --- a/app/components/datlas-table.js +++ b/app/components/datlas-table.js @@ -1,5 +1,6 @@ import Ember from 'ember'; import TableMap from '../mixins/table-map'; +import numeral from 'numeral'; const {computed, observer, get:get} = Ember; @@ -96,6 +97,7 @@ export default Ember.Component.extend(TableMap, { }), formatNumber: (number, key, i18n) => { + var decimalVars = [ 'export_rca', 'eci', @@ -140,7 +142,8 @@ export default Ember.Component.extend(TableMap, { if(_.include(wageVarsInThousands, key)){ return numeral(number).divide(1000).format('0,0'); } else if(_.include(decimalVars, key)){ - return numeral(number).format('0.00a'); + var result = numeral(number).format('0.00a') + return String(result).replace(",", "@").replace(".", "").replace("@", "."); } else if(key === 'employment'){ return numeral(Math.ceil(number)).format('0,0'); } else if(key === 'num_establishments' || key === 'export_num_plants'){ @@ -261,7 +264,7 @@ export default Ember.Component.extend(TableMap, { "fillHorizontal": "Rellenar celdas horizontalmente", "fillVertical": "Rellenar celdas verticalmentemente" }, - "decimal": ",", + "decimal": ".", "searchBuilder": { "add": "Añadir condición", "button": { @@ -349,7 +352,7 @@ export default Ember.Component.extend(TableMap, { "_": "%d filas seleccionadas" } }, - "thousands": ".", + "thousands": ",", "datetime": { "previous": "Anterior", "next": "Proximo", diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js index 29ab76fc..87111207 100644 --- a/app/components/zoomable-treemap.js +++ b/app/components/zoomable-treemap.js @@ -304,6 +304,26 @@ export default Ember.Component.extend({ .attr("transform", "translate(" + margin.left + "," + margin.top + ")") .style("shape-rendering", "crispEdges"); + if(data.values.length === 0){ + var zero_g = svg.append("g") + + var rectdata = zero_g.append("rect") + .attr("y", -margin.top) + .attr("width", width) + .attr("height", height) + .style("fill", "#C2C4FF") + .style("stroke", "#292A48") + + zero_g.append("text") + .attr("x", width/3 + width/15) + .attr("y", height/2) + .attr("dy", ".75em") + .style("font-family", "sans-serif") + .style("font-size", "1.5rem") + .text("NO HAY DATOS DISPONIBLES"); + + } + var grandparent = svg.append("g") .attr("class", "grandparent"); @@ -383,6 +403,8 @@ export default Ember.Component.extend({ root = data; } + + initialize(root); accumulate(root); layout(root); diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index 5a3d834e..ab9dd962 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -874,6 +874,10 @@ export default Ember.Controller.extend({ return _.contains(timeRange, get(d, 'year')); }); }, + updateSearch: observer('source', 'variable', function () { + this.set('buildermodSearchService.search', null) + }), + scrollTopWhenUpdate: observer('variable', function() { window.scrollTo(0,0); }), diff --git a/app/index.html b/app/index.html index e86d5e25..9f47514e 100644 --- a/app/index.html +++ b/app/index.html @@ -78,6 +78,7 @@ + {{content-for 'body-footer'}} diff --git a/app/routes/location/visualization.js b/app/routes/location/visualization.js index 71ec9bd9..27bdd494 100644 --- a/app/routes/location/visualization.js +++ b/app/routes/location/visualization.js @@ -184,8 +184,6 @@ export default Ember.Route.extend({ let {model, agproducts } = hash; let agproductsMetadata = this.modelFor('application').agproducts; - var ids = [] - let data = _.map(agproducts.data, (d) => { let merged = _.merge(copy(d), agproductsMetadata[d.agproduct_id]); diff --git a/app/templates/agproduct/-questions.hbs b/app/templates/agproduct/-questions.hbs index 95a095ce..3d68090f 100644 --- a/app/templates/agproduct/-questions.hbs +++ b/app/templates/agproduct/-questions.hbs @@ -77,7 +77,6 @@
    -
    diff --git a/app/templates/industry/show.hbs b/app/templates/industry/show.hbs index e3f449e5..df0c1626 100755 --- a/app/templates/industry/show.hbs +++ b/app/templates/industry/show.hbs @@ -166,3 +166,13 @@ {{/if}} + +
    +
    + {{#link-to 'industry.visualization' model.id 'departments' 'geo' 'employment' (query-params startDate=lastYear endDate=lastYear toolTips="rca") + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    +
    diff --git a/app/templates/land-use/-questions.hbs b/app/templates/land-use/-questions.hbs index 4767c672..c3d5eef2 100644 --- a/app/templates/land-use/-questions.hbs +++ b/app/templates/land-use/-questions.hbs @@ -33,7 +33,6 @@ - diff --git a/app/templates/livestock/-questions.hbs b/app/templates/livestock/-questions.hbs index 6b564614..6010d4a9 100644 --- a/app/templates/livestock/-questions.hbs +++ b/app/templates/livestock/-questions.hbs @@ -54,7 +54,6 @@ - diff --git a/app/templates/partials/-pageheader.hbs b/app/templates/partials/-pageheader.hbs index 5d4d9d1d..d1c8ce9c 100755 --- a/app/templates/partials/-pageheader.hbs +++ b/app/templates/partials/-pageheader.hbs @@ -19,7 +19,7 @@ -
    + {{else}} diff --git a/package.json b/package.json index bd71adbf..cc57f176 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "ember-cli-google-analytics": "^1.3.2", "ember-cli-htmlbars": "0.7.6", "ember-cli-inject-live-reload": "^1.3.0", - "ember-cli-numeral": "^0.1.2", + "ember-cli-numeral": "^0.2.0", "ember-cli-qunit": "0.3.13", "ember-cli-sass": "4.0.0-beta.6", "ember-cli-uglify": "^1.0.1", From 099e652c0b015b3d62d8c5eff8df0363fe9f768a Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Mon, 13 Sep 2021 18:55:31 -0500 Subject: [PATCH 029/126] Release 0.12.2 --- .../autocomplete-chained-input-datlas.js | 8 +- app/components/zoomable-treemap.js | 7 +- app/controllers/index.js | 2 +- app/controllers/search.js | 8 +- app/controllers/visualization.js | 12 ++ app/locales/es-col/translations.js | 12 +- .../components/buildermod-search.hbs | 177 +++++++++++++----- .../components/small-multiples-set.hbs | 4 +- app/templates/visualization.hbs | 2 + 9 files changed, 177 insertions(+), 55 deletions(-) diff --git a/app/components/autocomplete-chained-input-datlas.js b/app/components/autocomplete-chained-input-datlas.js index c7bec4fa..6ea87bc5 100644 --- a/app/components/autocomplete-chained-input-datlas.js +++ b/app/components/autocomplete-chained-input-datlas.js @@ -83,8 +83,14 @@ export default Ember.Component.extend({ var data = [] var placeholder = this.get("placeHolder") + var data_search = this.get('data_search'); - this.get('data_search').filter(item => { + + if(data_search === undefined){ + data_search = [] + } + + data_search.filter(item => { return item.id == searchSelect1 }).map(item => { item.chained.map(item => data.push(item)) diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js index 87111207..507bc026 100644 --- a/app/components/zoomable-treemap.js +++ b/app/components/zoomable-treemap.js @@ -249,6 +249,7 @@ export default Ember.Component.extend({ var value_text = this.get('i18n').t(`graph_builder.table.${this.get('varDependent')}`).string; var self = this; var canUpdateBuildermodSearchService = this.get("canUpdateBuildermodSearchService"); + var varDependent = this.get('varDependent'); var defaults = { margin: {top: 24, right: 0, bottom: 0, left: 0}, @@ -359,10 +360,14 @@ export default Ember.Component.extend({ } var mousemove = function(d) { + var valueFormated = self.formatNumber(d.value, varDependent, self.get('i18n')); + let dataTooltip = ''; if(d.hasOwnProperty("tooltips")){ d.tooltips.forEach(item =>{ + //DIDI + dataTooltip += `

    ${item.name}: ${item.value}

    `; }); } @@ -371,7 +376,7 @@ export default Ember.Component.extend({ Tooltip .html(`

    ${d.key}

    -

    ${defaults.value_text}: ${d.value}

    +

    ${defaults.value_text}: ${valueFormated}

    ${dataTooltip}

    ${defaults.percent_text}: ${(d.area * 100).toFixed(1)} %

    `) diff --git a/app/controllers/index.js b/app/controllers/index.js index 20092ecc..ef17557b 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -21,7 +21,7 @@ export default Ember.Controller.extend({ locationsData: computed('model.locations', 'i18n.locale', function() { - let locations = get(this, 'model.locations'); + let locations = get(this, 'model.locations').filter(item => item.id !== '0'); let locale = this.get('i18n').display return locations.map(function(location){ diff --git a/app/controllers/search.js b/app/controllers/search.js index 5893e80f..1d40da4d 100644 --- a/app/controllers/search.js +++ b/app/controllers/search.js @@ -17,12 +17,16 @@ export default Ember.Controller.extend({ //console.log(filter); + if(filter === "location"){ + model = {"location": model.location.filter(item => item.id !== '0')}; + } + if(filter === "locations_route"){ - model = {"location": model.location} + model = {"location": model.location.filter(item => item.id !== '0')}; } if(filter === "products_route"){ - model = {"product": model.product} + model = {"product": model.product}; } diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index ab9dd962..bdc96a00 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -311,6 +311,18 @@ export default Ember.Controller.extend({ } return [this.get('firstYear'), this.get('lastYear')]; }), + isSingleYearData: computed('dateExtent', function(){ + let dateExtent = this.get('dateExtent'); + if (dateExtent){ + if (dateExtent[1] - dateExtent[0] > 0){ + return false; + } else { + return true; + } + } else { + return false; + } + }), dateRange: computed('dateExtent', function() { return d3.range(this.get('dateExtent')[0], this.get('dateExtent')[1] + 1); }), diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index 6adc3b63..313af703 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -784,8 +784,12 @@ export default { "export_value": "Exportaciones (En millones de dólares FOB)", "import_value": "Importaciones (En millones de dólares FOB)", - "modal.geo.visualization.title": "Ayuda del componente", - "modal.geo.visualization.p1": "En el selector de año haga uso de los botones ", - "modal.geo.visualization.p2": "para navegar por los años, esto hara que el componente y su información varie dependiendo de la selección.", - "modal.geo.visualization.p3": "En el siguiente componente puede ingresar o selecionar un termino, esto hara que la visualización y su información se actualice.", + "modal.visualization.title": "Ayuda del componente", + "modal.visualization.p1": "En el selector de año haga uso de los botones ", + "modal.visualization.p2": "para navegar por los años, esto hara que el componente y su información varie dependiendo de la selección.", + "modal.visualization.p3": "En el Buscador haga uso del siguiente campo", + "modal.visualization.p4.departments": "para diligenciar un termino de busqueda en este caso puede ser por departamento o codigo CIIU, esto hara que el componente y su información varie dependiendo del termino buscado.", + "modal.visualization.p4.cities": "para diligenciar un termino de busqueda en este caso puede ser por departamento, ciudad o codigo CIIU, esto hara que el componente y su información varie dependiendo del termino buscado.", + "modal.visualization.p4.partners": "para diligenciar un termino de busqueda en este caso puede ser por nombre del país y/o región, esto hara que el componente y su información varie dependiendo del termino buscado.", + "modal.visualization.p4.products": "para diligenciar un termino de busqueda en este caso puede ser por nombre de producto o partida arancelaria, esto hara que el componente y su información varie dependiendo del termino buscado.", }; diff --git a/app/templates/components/buildermod-search.hbs b/app/templates/components/buildermod-search.hbs index ff89c59b..fdfc3aa3 100644 --- a/app/templates/components/buildermod-search.hbs +++ b/app/templates/components/buildermod-search.hbs @@ -76,63 +76,152 @@
    @@ -153,6 +155,7 @@ elementId='zoomable-employment-treemap' class="position-relative" filterCategory=true + groupByParent=true }} @@ -167,6 +170,7 @@ elementId='zoomable-wages-treemap' class="position-relative" filterCategory=true + groupByParent=true }} diff --git a/app/templates/location/-subregion-dotplots.hbs b/app/templates/location/-subregion-dotplots.hbs index a23ee783..87a5e1ab 100755 --- a/app/templates/location/-subregion-dotplots.hbs +++ b/app/templates/location/-subregion-dotplots.hbs @@ -107,6 +107,7 @@ class="position-relative" filterCategory=true toolTips="rca,complexity" + groupByParent=true }} @@ -122,6 +123,7 @@ class="position-relative" filterCategory=true toolTips="rca,complexity" + groupByParent=true }} @@ -136,6 +138,7 @@ elementId='zoomable-employment-treemap' class="position-relative" filterCategory=true + groupByParent=true }} @@ -150,6 +153,7 @@ elementId='zoomable-wages-treemap' class="position-relative" filterCategory=true + groupByParent=true }} diff --git a/app/templates/location/ringchart.hbs b/app/templates/location/ringchart.hbs index d7f8871c..59eb739e 100644 --- a/app/templates/location/ringchart.hbs +++ b/app/templates/location/ringchart.hbs @@ -139,7 +139,7 @@
    - +
    diff --git a/app/templates/product/abstract.hbs b/app/templates/product/abstract.hbs index c789c4db..c1d8d4df 100644 --- a/app/templates/product/abstract.hbs +++ b/app/templates/product/abstract.hbs @@ -16,6 +16,7 @@ {{#each year in rangeYears }} + {{/each}} @@ -54,6 +55,7 @@ endDate=endDate elementId="productssourceTable" order=filteredDataLocationsTop5ExportOrder + title_data=(is-concat 'Departamentos en Colombia que más exportan el producto ' '(' endDate ')' ' - ' modelData.name ' (' modelData.code ')') }}
    @@ -82,6 +84,7 @@ endDate=endDate elementId="productssourceTable2" order=filteredDataCitiesTop5ExportOrder + title_data=(is-concat 'Ciudades en Colombia que más exportan el producto ' '(' endDate ')' ' - ' modelData.name ' (' modelData.code ')') }}
    @@ -112,6 +115,7 @@ endDate=endDate elementId="productssourceTable21" order=filteredDataPartnersTop5ExportOrder + title_data=(is-concat 'Países a donde más se exporta el producto ' '(' endDate ')' ' - ' modelData.name ' (' modelData.code ')') }}
    @@ -144,6 +148,7 @@ endDate=endDate elementId="productssourceTable3" order=filteredDataLocationsTop5ImportOrder + title_data=(is-concat 'Departamentos en Colombia que más importan el producto ' '(' endDate ')' ' - ' modelData.name ' (' modelData.code ')') }}
    @@ -173,6 +178,7 @@ endDate=endDate elementId="productssourceTable4" order=filteredDataCitiesTop5ImportOrder + title_data=(is-concat 'Ciudades en Colombia que más importan el producto ' '(' endDate ')' ' - ' modelData.name ' (' modelData.code ')') }} @@ -202,6 +208,7 @@ endDate=endDate elementId="productssourceTable212" order=filteredDataPartnersTop5ImportOrder + title_data=(is-concat 'Países de donde más se importa el producto ' '(' endDate ')' ' - ' modelData.name ' (' modelData.code ')') }} diff --git a/app/templates/product/ringchart.hbs b/app/templates/product/ringchart.hbs index 29da7ea2..96e4d613 100644 --- a/app/templates/product/ringchart.hbs +++ b/app/templates/product/ringchart.hbs @@ -157,7 +157,7 @@
    - +
    diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index c08cc354..0b4adbc1 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -28,7 +28,7 @@ occupationLastYear=occupationLastYear }} -
    +
    {{#if (is-equal hideVisualization false)}} @@ -114,6 +114,8 @@ filterCategory=canFilterCategory resetFilter=resetFilter canFilterVcr=canFilterVcr + title=(is-concat endDate ' - ' variableTitle ' - ' model.entity.name ' (' model.entity.code ')') + groupByParent=groupByParent }}
    @@ -151,6 +153,8 @@ startDate=startDate endDate=endDate elementId="sourceTable" + title_data=(is-concat endDate ' - ' variableTitle ' - ' model.entity.name ' (' model.entity.code ')') + source_data=visualizationExplanation }}
    From 0f55fcace2c0ee4fc1ef90d9895be0071e1f4f32 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Mon, 27 Sep 2021 16:19:14 -0500 Subject: [PATCH 048/126] Release 0.16 --- app/components/multiples-graph.js | 2 - app/components/ring-chart.js | 2 +- app/components/zoomable-treemap.js | 10 + app/controllers/location/thirdparty.js | 43 ++ app/controllers/product/exports.js | 643 ++++++++++++++++++ app/controllers/visualization.js | 4 - app/router.js | 2 + app/routes/location/thirdparty.js | 32 + app/routes/product/exports.js | 75 ++ app/templates/components/zoomable-treemap.hbs | 3 + app/templates/industry/show.hbs | 2 + .../location/-regional-location-imports.hbs | 2 + .../location/-regional-location-route.hbs | 2 + .../location/-regional-location-rural.hbs | 1 + .../location/-regional-location-wages.hbs | 2 + app/templates/location/-regional-location.hbs | 2 + app/templates/location/ruralactivities.hbs | 2 +- app/templates/location/thirdparty.hbs | 75 ++ app/templates/product/exports.hbs | 86 +++ app/templates/product/ringchart.hbs | 12 +- 20 files changed, 992 insertions(+), 10 deletions(-) create mode 100644 app/controllers/location/thirdparty.js create mode 100644 app/controllers/product/exports.js create mode 100644 app/routes/location/thirdparty.js create mode 100644 app/routes/product/exports.js create mode 100644 app/templates/location/thirdparty.hbs create mode 100644 app/templates/product/exports.hbs diff --git a/app/components/multiples-graph.js b/app/components/multiples-graph.js index f0562d7f..9f904d49 100644 --- a/app/components/multiples-graph.js +++ b/app/components/multiples-graph.js @@ -425,8 +425,6 @@ export default Ember.Component.extend({ alert('Iniciando la descarga, este proceso tardará un momento.'); var title = this.get("title"); - console.log(title) - var PDF_Width = 800; var PDF_Height = 600; var pdf = new jsPDF('l', 'pt', [PDF_Width, PDF_Height]); diff --git a/app/components/ring-chart.js b/app/components/ring-chart.js index 159d5590..0823958d 100644 --- a/app/components/ring-chart.js +++ b/app/components/ring-chart.js @@ -13,7 +13,7 @@ export default Ember.Component.extend({ }), centerId: computed("center", function () { - return this.get("center"); + return this.get("center").toString(); }), nodes: computed('dataType', function() { diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js index 4182b590..7d59ee10 100644 --- a/app/components/zoomable-treemap.js +++ b/app/components/zoomable-treemap.js @@ -856,6 +856,7 @@ export default Ember.Component.extend({ var id = `#${this.get("elementId")}_section`; var title = this.get("title"); + var title_filter = this.get("title_filter"); var domNode = $(`${id}`).get(0); var d = new Date(); var file_name = d.getDate() + "-" + (d.getMonth() + 1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds(); @@ -864,6 +865,10 @@ export default Ember.Component.extend({ file_name = title; } + if(title_filter){ + file_name = title_filter; + } + var options = { width: domNode.clientWidth * 4, height: domNode.clientHeight * 4, @@ -884,6 +889,7 @@ export default Ember.Component.extend({ var id = `#${this.get("elementId")}_section`; var title = this.get("title"); + var title_filter = this.get("title_filter"); var domNodes = $(`${id}`); var PDF_Width = domNodes[0].clientWidth ; @@ -900,6 +906,10 @@ export default Ember.Component.extend({ file_name = title; } + if(title_filter){ + file_name = title_filter; + } + for (var domNode of domNodes) { var options = { width: domNode.clientWidth * 4, diff --git a/app/controllers/location/thirdparty.js b/app/controllers/location/thirdparty.js new file mode 100644 index 00000000..8da08346 --- /dev/null +++ b/app/controllers/location/thirdparty.js @@ -0,0 +1,43 @@ +import Ember from 'ember'; +import numeral from 'numeral'; +const {computed, get:get, observer} = Ember; + +export default Ember.Controller.extend({ + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + queryParams: ['year'], + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + + startDate: computed('featureToggle.last_year', function () { + return this.get("featureToggle.last_year"); + }), + + + + linkDatlas: computed('startDate', function () { + var startDate = this.get("startDate"); + return `https://atlas.cid.harvard.edu/explore?country=49&year=${startDate}` + }), + + + modelData: computed.alias('model'), + + + rangeYears: computed('firstYear', 'lastYear', function(){ + var min = this.get("firstYear"); + var max = this.get("lastYear"); + return [...Array(max - min + 1).keys()].map(i => i + min); + }), + + actions: { + setStartYear(){ + + var year = parseInt($("#selectYear").val()); + + this.set('startDate', year); + + }, + } +}); + diff --git a/app/controllers/product/exports.js b/app/controllers/product/exports.js new file mode 100644 index 00000000..f8316f05 --- /dev/null +++ b/app/controllers/product/exports.js @@ -0,0 +1,643 @@ +import Ember from 'ember'; +const {computed, get, observer, RSVP, set} = Ember; +import ENV from '../../config/environment'; + +const {apiURL} = ENV; + +export default Ember.Controller.extend({ + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + buildermodSearchService: Ember.inject.service(), + departmentCityFilterService: Ember.inject.service(), + vistkNetworkService: Ember.inject.service(), + queryParams: ['startDate', 'endDate', 'centerId'], + categoriesFilterList: [], + elementId: 'product_space', + VCRValue: 1, + + setSelectedProductsbyId: function (id) { + + var selected_products = {} + selected_products[id] = this.getPrimariesSecondaries2(parseInt(id)) + + //console.log(selected_products) + + this.set("selectedProducts", selected_products) + }, + + selectedProducts: computed('model.[]', function () { + return this.get("initialSelectedProducts"); + }), + getProduct: function (id) { + let indexedData = _.indexBy(this.get('networkData'), 'id'); + return indexedData[id] + }, + + product_selected: computed('model', 'center', function () { + var id = this.get("center") + var product = this.getProduct(id) + var product_copy = {} + + Object.assign(product_copy, product) + + return product_copy + }), + + product_primaries: [], + product_primaries_total: null, + product_secondaries: [], + product_secondaries_total: null, + + center: computed("model", function () { + return this.get("model.entity.id"); + }), + + categoriesObject: computed('model', 'i18n.locale', function() { + + var products = this.get('model.metaData.products') + var products_list = [] + var nested_data + + for(let id of Object.keys(products)){ + products_list.push(products[id]) + } + + var updatedData = products_list.map(item => { + + if(_.get(item, `parent_name_${this.get('i18n').display}`) === _.get(item, `name_${this.get('i18n').display}`)){ + return { + color: _.get(item, "color"), + icon: _.get(item, "icon"), + item: item + }; + } + else{ + return { + color: _.get(item, "color"), + icon: _.get(item, "icon"), + item: item, + group: _.get(item, `parent_name_${this.get('i18n').display}`), + parent_code: _.get(item, `parent_code`), + }; + } + + }); + + if(updatedData[0] !== undefined){ + if(updatedData[0].hasOwnProperty("group")){ + if(updatedData[0].group == undefined){ + nested_data = d3.nest().entries(updatedData); + } + nested_data = d3.nest().key(function(d) { return d.group; }).entries(updatedData); + } + else{ + nested_data = d3.nest().entries(updatedData); + } + } + else{ + nested_data = [] + } + + + var categories = nested_data.map(item => { + + var color = "#33691e"; + var icon = "fas fa-atom"; + var icon_color = "#FFFFFF"; + + if(item.hasOwnProperty("color")){ + color = item.color; + } + else{ + if(item.hasOwnProperty("values")){ + if(item.values.length > 0){ + if(item.values[0].hasOwnProperty("color")){ + color = item.values[0].color; + } + } + } + } + + if(item.hasOwnProperty("icon")){ + icon = item.icon; + } + else{ + if(item.hasOwnProperty("values")){ + if(item.values.length > 0){ + if(item.values[0].hasOwnProperty("icon")){ + icon = item.values[0].icon; + } + } + } + } + + return { + name: item.key, + color: color, + icon: icon, + icon_color: icon_color, + hide: false, + isolate: false + }; + }); + + //console.log(categories) + + Ember.run.later(this , function() { + $('.category-button').on("mouseover", function(e) { + + $(this).find("div.tooltip").removeClass("d-none") + }) + + $('.category-button').on("mouseleave", function(e) { + $(this).find("div.tooltip").addClass("d-none"); + }) + }, 100); + + return categories; + + + + + }), + + searchFilter: observer('buildermodSearchService.search', function() { + + var data = this.get("model.metaData.products"); + var selected = this.get("selectedProducts"); + let search = _.deburr(this.get('buildermodSearchService.search')); + var self = this; + var elementId = this.get("elementId"); + var initialSelectedProducts = this.get("initialSelectedProducts") + + if(search === ""){ + + //var id_principal = this.get("model.entity.id"); + + + //d3.selectAll(".tooltip_network").classed("d-none", true); + //d3.selectAll(`.tooltip_${id_principal}_${elementId}`).classed("d-none", false); + + //this.set("selectedProducts", initialSelectedProducts); + this.set('vistkNetworkService.updated', new Date()); + } + else { + var regexp = new RegExp(search.replace(/(\S+)/g, function(s) { return "\\b(" + s + ")(.*)"; }) + .replace(/\s+/g, ''), "gi"); + + + var result = _.filter(data, (d) => { + let parentName = get(d,`parent_name_${this.get('i18n').display}`); + let longName = get(d,`name_${this.get('i18n').display}`); + let shortName = get(d,`name_short_${this.get('i18n').display}`); + let code = get(d, 'code'); + + var result_city = _.deburr(`${shortName} ${longName} ${code}`).match(regexp) + + if(result_city !== null){ + return result_city; + } + return _.deburr(`${parentName} ${code}`).match(regexp); + }); + + + + result.map(item => { + //selected.push(String(item.id)) + self.set("center", item.id) + self.setSelectedProductsbyId(item.id) + this.transitionToRoute('product.ringchart', item.id, {queryParams: { endDate: this.get("endDate"), startDate: this.get("startDate"), centerId: this.get("center") }}); + + Ember.run.later(this , function() { + $(`.d3plus-id-${item.id}`).click(), + 2000 + }); + + //self.set('vistkNetworkService.updated', new Date()); + //d3.selectAll(`.tooltip_${item.id}_${elementId}`).classed('d-none', false); + }); + } + + }), + formatNumber: (number, key, i18n) => { + + var decimalVars = [ + 'export_rca', + 'eci', + 'industry_eci', + 'rca', + 'complexity', + 'distance', + 'cog', + 'coi', + 'industry_coi', + 'population', + 'yield_ratio', + 'yield_index', + 'average_livestock_load', + ]; + var percentVars = [ + 'share', + 'employment_growth' + ]; + var wageVarsInThousands = [ + 'wages', + 'avg_wages', + 'avg_wage', + ]; + var moneyVars = [ + 'gdp_pc_real', + 'gdp_real', + ]; + var largeNumbers = [ + 'export_value', + 'import_value', + 'monthly_wages', + 'average_wages', + 'area', + 'production_tons', + 'land_sown', + 'land_harvested', + 'num_farms', + 'num_livestock', + ]; + + if(_.include(wageVarsInThousands, key)){ + return numeral(number).divide(1000).format('0,0'); + } else if(_.include(decimalVars, key)){ + var result = numeral(number).format('0.00a') + return result; + } else if(key === 'employment'){ + return numeral(Math.ceil(number)).format('0,0'); + } else if(key === 'num_establishments' || key === 'export_num_plants'){ + if(parseInt(number) < 6) { + return i18n.t('graph_builder.table.less_than_5'); + } + return numeral(number).format('0,0'); + } else if(_.include(percentVars, key)){ + return numeral(number).format('0.00%'); + } else if(_.include(largeNumbers, key)) { + return numeral(number).format('0,0'); + } else if(_.include(moneyVars, key)) { + return numeral(number).format('$0.00a'); + } else { + return number; + } + }, + observerCenter: observer("center", function () { + var center = this.get("center") + this.setSelectedProductsbyId(center) + this.set('vistkNetworkService.updated', new Date()); + }), + + filteredDataTable: computed("model", 'vistkNetworkService.updated', 'departmentCityFilterService.data', 'endDate', function () { + + var selectedProducts = this.get("selectedProducts") + var self = this; + + var ids = [] + + for(let id of Object.keys(selectedProducts)){ + ids.push(id) + + for(let id2 of Object.keys(selectedProducts[id])){ + ids.push(id2) + + for(let id3 of selectedProducts[id][id2]){ + ids.push(id3) + } + + } + + } + + var productsData = this.get("productsData") + var result = productsData.filter(item => ids.includes(String(item.id))) + + var indexed_result = _.indexBy(result, 'id'); + + var primaries = [] + var secondaries = [] + + for(let id of Object.keys(selectedProducts)){ + + var product_selected_copy = {} + + Object.assign(product_selected_copy, indexed_result[id]) + + product_selected_copy.export_rca = self.formatNumber(product_selected_copy.export_rca, 'export_rca', this.get("i18n")) + product_selected_copy.export_value = self.formatNumber(product_selected_copy.export_value, 'export_value', this.get("i18n")) + product_selected_copy.complexity = self.formatNumber(product_selected_copy.complexity, 'complexity', this.get("i18n")) + + this.set("product_selected", product_selected_copy) + + for(let id2 of Object.keys(selectedProducts[id])){ + primaries.push(indexed_result[id2]) + + for(let id3 of selectedProducts[id][id2]){ + secondaries.push(indexed_result[id3]) + } + + } + + + if(primaries.length > 5){ + this.set("product_primaries_count", primaries.length - 5) + } + else{ + this.set("product_primaries_count", 0) + } + + this.set("product_primaries", primaries.splice(0,5)) + + + if(secondaries.length > 5){ + this.set("product_secondaries_count", secondaries.length - 5) + } + else{ + this.set("product_secondaries_count", 0) + } + + this.set("product_secondaries", secondaries.splice(0,5)) + + } + + //console.log(indexed_result) + + return result + }), + + rangeYears: computed('firstYear', 'lastYear', function(){ + var min = this.get("firstYear"); + var max = this.get("lastYear"); + return [...Array(max - min + 1).keys()].map(i => i + min); + }), + + entityType: "product", + source: "products", + + location: computed("departmentCityFilterService.name", function (){ + this.get("departmentCityFilterService.data") + this.get('buildermodSearchService.search') + return this.get("departmentCityFilterService.name"); + }), + locationId: computed("departmentCityFilterService.id", function (){ + return this.get("departmentCityFilterService.id"); + }), + departmentsDataSelect: computed("model", function () { + + this.set("selectedProducts", this.get("initialSelectedProducts")) + + var all_locations = Object.values(this.get("model.metaData.locations")) + + var locations = all_locations.filter(item => item.level === "department").map( (item) => { + var chained = all_locations.filter(item2 => item.id === item2.parent_id).map(item => ({'id': item.id, 'text': `${item.name_es} (${item.code})`})) + return {'id': item.id, 'text': `${item.name_es} (${item.code})`, 'chained': chained} + }) + return locations + }), + + + + productSpace: computed.alias('model.metaData.productSpace'), + productsData: computed('model', 'endDate', 'departmentCityFilterService.data', 'VCRValue', 'categoriesFilterList', function () { + + var id = this.get("departmentCityFilterService.id"); + var startDate = this.get("startDate"); + var endDate = this.get("endDate"); + + if(id == 0){ + $("#spinner_complexmap").addClass("d-none") + $("#complexmap").removeClass("d-none") + $("#complexmaptable").removeClass("d-none") + return this.get("model.products_col").filter(item => item.year >= startDate && item.year <= endDate); + } + + var data = this.get("departmentCityFilterService.data"); + + var data_filtered = data.filter(item => item.year >= startDate && item.year <= endDate); + $("#spinner_complexmap").addClass("d-none") + $("#complexmap").removeClass("d-none") + $("#complexmaptable").removeClass("d-none") + + return data_filtered + + }), + + dateExtent: computed('model', function() { + //this.set('startDate', this.get('lastYear')); + //this.set('endDate', this.get('lastYear')); + return [this.get('firstYear'), this.get('lastYear')]; + }), + + productsDataValues: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.products')) + + return locations.filter(item => item[1].level === "4digit").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name} (${item[1].code})`} + }) + }), + + placeHolderText: computed('i18n.locale', 'source', function(){ + return this.get('i18n').t(`visualization.source.${this.get('source')}`).string + }), + + filteredDataAsync: observer("departmentCityFilterService.id", function () { + + var id = this.get("departmentCityFilterService.id"); + var productsMetadata = this.get("model.metaData.products") + var self = this + + var products = $.getJSON(`${apiURL}/data/location/${id}/products?level=4digit`) + + var promises = [products] + + var result = RSVP.allSettled(promises).then((array) => { + let productsData = array[0].value.data; + + let productsDataResponse = _.reduce(productsData, (memo, d) => { + let product = productsMetadata[d.product_id]; + product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); + memo.push(_.merge(d, product)); + return memo; + }, []); + + self.set("departmentCityFilterService.data", productsDataResponse) + + return productsDataResponse + }); + }), + + filterData: computed('model', 'endDate', function(){ + var startDate = this.get("startDate"); + var endDate = this.get("endDate"); + var partners = this.get("model.partners").filter(item => item.year >= startDate && item.year <= endDate); + return partners + }), + + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + occupationsData: computed.alias('model.occupationsData'), + modelData: computed.alias('model.entity'), + exportDataLocations: computed('model.data', 'startDate', function (){ + return this.get("model.locationsData").filter(item => item.year === this.get("startDate")); + }), + updateCategoriesObject: function (index, attr) { + + var temp = this.get('categoriesObject').objectAt(index); + let newValue = !_.get(temp, attr); + + if(attr === "hide"){ + + if(newValue === true){ + this.get('categoriesObject').map((item, index_item) =>{ + + var temp = this.get('categoriesObject').objectAt(index_item); + + if(index_item === index){ + set(temp, "hide", true); + set(temp, "isolate", false); + set(temp, "icon_color", "#292A48"); + } + else{ + set(temp, "isolate", false); + } + + + }); + + } + else{ + this.get('categoriesObject').map((item, index_item) =>{ + + var temp = this.get('categoriesObject').objectAt(index_item); + + if(index_item === index){ + set(temp, "hide", false); + set(temp, "isolate", false); + set(temp, "icon_color", "#FFFFFF"); + } + else{ + set(temp, "isolate", false); + } + + }); + } + + + } + else if(attr === "isolate"){ + + if(newValue === true){ + + + this.get('categoriesObject').map((item, index_item) =>{ + + var temp = this.get('categoriesObject').objectAt(index_item); + + if(index_item !== index){ + set(temp, "isolate", false); + set(temp, "hide", true); + set(temp, "icon_color", "#292A48"); + } + else{ + set(temp, "isolate", true); + set(temp, "hide", false); + set(temp, "icon_color", "#FFFFFF"); + } + }); + + } + else{ + + this.get('categoriesObject').map((item, index_item) =>{ + + var temp = this.get('categoriesObject').objectAt(index_item); + + set(temp, "isolate", false); + set(temp, "hide", false); + set(temp, "icon_color", "#FFFFFF"); + + }); + + } + + + + } + + + var categoriesFilter = []; + + for(let category of this.get('categoriesObject')) { + + var isolate = category.isolate; + var hide = category.hide; + + if(isolate === true){ + categoriesFilter = [category.color]; + break; + } + + if(hide === false){ + categoriesFilter.push(category.color); + } + + } + d3.selectAll("circle").style("fill", "#fff"); + categoriesFilter.map(color => { + d3.selectAll("circle").filter(function(d){return d.node.color === color}).style("fill", color); + }) + + //console.log(categoriesFilter) + + //this.set("categoriesFilterList", categoriesFilter); + + //this.set("treemapService.filter_update", new Date()) + //this.set("treemapService.filter_updated_data", updatedData) + //this.set("updatedData", updatedData); + + }, + + + actions: { + setStartYear(){ + + var year = parseInt($("#selectYear").val()); + + this.set('startDate', year); + this.set('endDate', year); + }, + + decreaseYear() { + + var firstYear = parseInt(this.get("firstYear")) + var endDate = parseInt(this.get("endDate")) + + if(endDate-1 >= firstYear){ + this.set("startDate", endDate-1); + this.set("endDate", endDate-1); + $("#selectYear").val(endDate-1); + } + + }, + increaseYear() { + + var lastYear = parseInt(this.get("lastYear")) + var endDate = parseInt(this.get("endDate")) + + if(endDate+1 <= lastYear){ + this.set("startDate", endDate+1); + this.set("endDate", endDate+1); + $("#selectYear").val(endDate+1); + } + + } + } +}); + + diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index 00bcbc61..b89ce8c5 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -245,8 +245,6 @@ export default Ember.Controller.extend({ if(this.get('source') == 'departments'){ - console.log(this.get('locationsData')) - return this.get('locationsData') } else if(this.get('source') == 'cities'){ @@ -765,8 +763,6 @@ export default Ember.Controller.extend({ let search = _.deburr(this.get('search')); - console.log(search) - var regexp = new RegExp(search.replace(/(\S+)/g, function(s) { return "\\b(" + s + ")(.*)"; }) .replace(/\s+/g, ''), "gi"); diff --git a/app/router.js b/app/router.js index cc6fe9d8..e9a4d9a0 100644 --- a/app/router.js +++ b/app/router.js @@ -29,6 +29,7 @@ export default Router.map(function() { this.route('complexmapprimaries', { path: ':product_id/complexmap/primaries/'}); this.route('complexmapsecondaries', { path: ':product_id/complexmap/secondaries/'}); this.route('ringchart', { path: ':product_id/ringchart/'}); + this.route('exports', { path: ':product_id/exports/'}); this.route('visualization', { path: ':product_id/source/:source_type/visualization/:visualization_type/:variable'}); }); @@ -54,6 +55,7 @@ export default Router.map(function() { //this.route('complexsectorssecondaries', {path: ':location_id/route/complex_sectors/secondaries/'}); this.route('ruralactivities', {path: ':location_id/route/rural_activities/'}); + this.route('thirdparty', {path: ':location_id/route/thirdparty/'}); //this.route('productmapdecentralized', {path: ':location_id/route/product_map/decentralized/'}); diff --git a/app/routes/location/thirdparty.js b/app/routes/location/thirdparty.js new file mode 100644 index 00000000..bccff9d5 --- /dev/null +++ b/app/routes/location/thirdparty.js @@ -0,0 +1,32 @@ +import Ember from 'ember'; +import ENV from '../../config/environment'; +import numeral from 'numeral'; + +const {apiURL} = ENV; +const {RSVP, computed, getWithDefault, get, copy} = Ember; + +export default Ember.Route.extend({ +// `this.store.find` makes an api call for `params.location_id` and returns a promise +// in the `then` function call, another API call is made to get the topExports data + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + censusYear: computed.alias('featureToggle.census_year'), + agproductFirstYear: computed.alias('featureToggle.year_ranges.agproduct.first_year'), + agproductLastYear: computed.alias('featureToggle.year_ranges.agproduct.last_year'), + agcensusFirstYear: computed.alias('featureToggle.year_ranges.agcensus.first_year'), + agcensusLastYear: computed.alias('featureToggle.year_ranges.agcensus.last_year'), + + model: function(params) { + return this.store.find('location', params.location_id); + }, + + setupController(controller, model) { + this._super(controller, model); + this.controllerFor('application').set('entity', model.get('constructor.modelName')); + this.controllerFor('application').set('entity_id', model.get('id')); + window.scrollTo(0, 0); + }, +}); diff --git a/app/routes/product/exports.js b/app/routes/product/exports.js new file mode 100644 index 00000000..ead0bfd0 --- /dev/null +++ b/app/routes/product/exports.js @@ -0,0 +1,75 @@ +import Ember from 'ember'; +import ENV from '../../config/environment'; + +const {apiURL} = ENV; + +const {RSVP, computed, copy, get, $, set, getWithDefault} = Ember; + +export default Ember.Route.extend({ + + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + buildermodSearchService: Ember.inject.service(), + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + product_id: null, + + queryParams: { + startDate: { refreshModel: false }, + endDate: { refreshModel: false }, + centerId: { refreshModel: true }, + }, + + model(params) { + let {product_id} = params; + set(this, 'product_id', product_id); + + let hash = { + model: this.store.find('product', product_id), + partners: $.getJSON(`${apiURL}/data/location/${product_id}/partners/?level=country`), + } + + return RSVP.hash(hash).then((hash) => { + return this.departmentsDataMunging(hash); + }); + + //return this.store.find('product', params.product_id); + }, + departmentsDataMunging(hash) { + let {model, partners} = hash; + let partnersMetadata = this.modelFor('application').partnerCountries; + + let allPartners = _.map(partners.data, (d) => { + let country = partnersMetadata[d.country_id]; + let parent = partnersMetadata[country.parent_id]; + d.parent_name_en = parent.name_en; + d.parent_name_es = parent.name_es; + d.group = parent.id; + + return _.merge(copy(d), country); + }); + + return Ember.Object.create({ + entity: model, + partners: allPartners, + metaData: this.modelFor('application') + }); + }, + setupController(controller, model) { + //this.set('buildermodSearchService.search', null); + this._super(controller, model); + window.scrollTo(0, 0); + }, + resetController(controller, isExiting) { + + if (isExiting) { + controller.setProperties({ + }); + } + }, + actions: { + refreshRoute: function() { + this.refresh(); + } + } +}); diff --git a/app/templates/components/zoomable-treemap.hbs b/app/templates/components/zoomable-treemap.hbs index c78eb32e..6ec42770 100644 --- a/app/templates/components/zoomable-treemap.hbs +++ b/app/templates/components/zoomable-treemap.hbs @@ -12,6 +12,9 @@ {{#if title }}

    {{title}}

    {{/if}} + {{#if title_filter }} +

    {{title_filter}}

    + {{/if}}
    diff --git a/app/templates/industry/show.hbs b/app/templates/industry/show.hbs index 731a4a69..a84c76a9 100755 --- a/app/templates/industry/show.hbs +++ b/app/templates/industry/show.hbs @@ -122,6 +122,7 @@ elementId='employment-vistk-treemap' class="position-relative" color='pink' + groupByParent=true title=(is-concat 'EMPLEO ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -145,6 +146,7 @@ elementId='occupation-vistk-treemap' class="position-relative" color='pink' + groupByParent=true title=(is-concat 'OCUPACIONES MÁS DEMANDADAS ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }} diff --git a/app/templates/location/-regional-location-imports.hbs b/app/templates/location/-regional-location-imports.hbs index 6c5c42b0..fb37c9cd 100644 --- a/app/templates/location/-regional-location-imports.hbs +++ b/app/templates/location/-regional-location-imports.hbs @@ -87,6 +87,7 @@ class="position-relative" color='pink' filterCategory=true + groupByParent=true toolTips="rca" }} @@ -121,6 +122,7 @@ class="position-relative" color='pink' filterCategory=true + groupByParent=true }} diff --git a/app/templates/location/-regional-location-route.hbs b/app/templates/location/-regional-location-route.hbs index 32dfb3f2..c5367d15 100644 --- a/app/templates/location/-regional-location-route.hbs +++ b/app/templates/location/-regional-location-route.hbs @@ -87,6 +87,7 @@ class="position-relative" color='pink' filterCategory=true + groupByParent=true toolTips="rca" }} @@ -121,6 +122,7 @@ class="position-relative" color='pink' filterCategory=true + groupByParent=true }} diff --git a/app/templates/location/-regional-location-rural.hbs b/app/templates/location/-regional-location-rural.hbs index 839680b4..d72b1fba 100644 --- a/app/templates/location/-regional-location-rural.hbs +++ b/app/templates/location/-regional-location-rural.hbs @@ -97,6 +97,7 @@ class="position-relative" color='pink' filterCategory=canFilterCategory + groupByParent=true }} {{/if}} {{#if showMultiples}} diff --git a/app/templates/location/-regional-location-wages.hbs b/app/templates/location/-regional-location-wages.hbs index cd66d5f4..f9fde341 100644 --- a/app/templates/location/-regional-location-wages.hbs +++ b/app/templates/location/-regional-location-wages.hbs @@ -87,6 +87,7 @@ class="position-relative" color='pink' filterCategory=true + groupByParent=true toolTips="rca" }} @@ -121,6 +122,7 @@ class="position-relative" color='pink' filterCategory=true + groupByParent=true }} diff --git a/app/templates/location/-regional-location.hbs b/app/templates/location/-regional-location.hbs index e402ef69..fef10ffa 100755 --- a/app/templates/location/-regional-location.hbs +++ b/app/templates/location/-regional-location.hbs @@ -105,6 +105,7 @@ elementId='zoomable-export-value-treemap' class="position-relative" color='pink' + groupByParent=true }} @@ -149,6 +150,7 @@ elementId='zoomable-export-value-treemap-partner' class="position-relative" color='pink' + groupByParent=true }} diff --git a/app/templates/location/ruralactivities.hbs b/app/templates/location/ruralactivities.hbs index daee4b29..ed4f98e9 100644 --- a/app/templates/location/ruralactivities.hbs +++ b/app/templates/location/ruralactivities.hbs @@ -26,7 +26,7 @@ {{/link-to}}
    - {{#link-to 'location.ruralactivities' model.id + {{#link-to 'location.thirdparty' model.id class="btn btn-outline-secondary" }} SIGUIENTE diff --git a/app/templates/location/thirdparty.hbs b/app/templates/location/thirdparty.hbs new file mode 100644 index 00000000..f8004931 --- /dev/null +++ b/app/templates/location/thirdparty.hbs @@ -0,0 +1,75 @@ +{{component "stream-header" model=modelData type='location' extra_type="location_route" firstYear=firstYear lastYear=lastYear}} + + +
    +
    + +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    + +
    +
    + + +
    +
    + +
    +

    {{is-concat '¿QUÉ EXPORTO COLOMBIA EN ' startDate '?'}}

    +
    + +
    +
    + + +
    +
    + +
    + +
    + +
    +
    + + +
    +
    + {{#link-to 'location.ruralactivities' model.id + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    + +
    \ No newline at end of file diff --git a/app/templates/product/exports.hbs b/app/templates/product/exports.hbs new file mode 100644 index 00000000..86807d5f --- /dev/null +++ b/app/templates/product/exports.hbs @@ -0,0 +1,86 @@ +{{component "stream-header" model=modelData type='product' extra_type="product_route" firstYear=firstYear lastYear=lastYear}} + +
    +
    + +
    +

    {{is-concat '¿Quién importo ' model.entity.name ' en ' endDate '?'}}

    +
    + +
    +
    + +
    +
    + +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + + +
    + + +
    + + +
    + +
    + +
    +
    + +
    +
    +
    + {{ + zoomable-treemap + data=filterData + varDependent='export_value' + elementId='occupation-vistk-treemap' + class="position-relative" + color='pink' + filterCategory=true + groupByParent=true + title_filter=(is-concat 'Exportaciones del producto ' '(' lastYear ')' ' - ' model.entity.name ' (' model.entity.code ')') + }} +
    +
    +
    + +
    +
    + {{#link-to 'product.ringchart' model.entity.id (query-params startDate=startDate endDate=endDate) + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    + +
    \ No newline at end of file diff --git a/app/templates/product/ringchart.hbs b/app/templates/product/ringchart.hbs index 96e4d613..a900a8d8 100644 --- a/app/templates/product/ringchart.hbs +++ b/app/templates/product/ringchart.hbs @@ -185,12 +185,20 @@
    -
    -
    + +
    +
    {{#link-to 'product.complexmapsecondaries' center (query-params startDate=startDate endDate=endDate) class="btn btn-outline-secondary" }} ANTERIOR {{/link-to}}
    +
    + {{#link-to 'product.exports' center (query-params startDate=startDate endDate=endDate) + class="btn btn-outline-secondary" + }} + SIGUIENTE + {{/link-to}} +
    From fd534095f9d7bfc1aaf1db6a505cc88cda1b2f0f Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Wed, 29 Sep 2021 23:00:35 -0500 Subject: [PATCH 049/126] Release 0.17 --- app/components/datlas-table.js | 30 +- .../graphbuilder-change-graph-products.js | 26 ++ app/components/vistk-scatterplot.js | 181 +++++++++- app/controllers/location/potential.js | 209 ++++++++++++ app/controllers/location/productmap.js | 92 ++++- app/router.js | 1 + app/routes/location/potential.js | 66 ++++ app/routes/location/productmap.js | 323 +++--------------- app/services/vistk-scatterplot-service.js | 9 + .../components/_visualizations/_geo.scss | 1 - .../_visualizations/_scatterplot.scss | 6 +- .../graphbuilder-change-graph-products.hbs | 4 + .../components/vistk-scatterplot.hbs | 4 +- app/templates/location/complexsectors.hbs | 8 + app/templates/location/potential.hbs | 108 ++++++ app/templates/location/productmap.hbs | 276 ++++++++++++++- .../location/productmapprimaries.hbs | 2 +- .../location/productmapsecondaries.hbs | 2 +- ...uildermod-drawer-change-graph-products.hbs | 13 + app/templates/visualization.hbs | 2 +- 20 files changed, 1030 insertions(+), 333 deletions(-) create mode 100644 app/components/graphbuilder-change-graph-products.js create mode 100644 app/controllers/location/potential.js create mode 100644 app/routes/location/potential.js create mode 100644 app/services/vistk-scatterplot-service.js create mode 100644 app/templates/components/graphbuilder-change-graph-products.hbs create mode 100644 app/templates/location/potential.hbs create mode 100644 app/templates/partials/-buildermod-drawer-change-graph-products.hbs diff --git a/app/components/datlas-table.js b/app/components/datlas-table.js index 0b64fb10..4f5a1f42 100644 --- a/app/components/datlas-table.js +++ b/app/components/datlas-table.js @@ -139,27 +139,28 @@ export default Ember.Component.extend(TableMap, { 'num_livestock', ]; + let result = ""; if(_.include(wageVarsInThousands, key)){ return numeral(number).divide(1000).format('0,0'); } else if(_.include(decimalVars, key)){ - var result = numeral(number).format('0.00a') - return result; + result = numeral(number).format('0.00a'); } else if(key === 'employment'){ - return numeral(Math.ceil(number)).format('0,0'); + result = numeral(Math.ceil(number)).format('0,0'); } else if(key === 'num_establishments' || key === 'export_num_plants'){ if(parseInt(number) < 6) { - return i18n.t('graph_builder.table.less_than_5'); + result = i18n.t('graph_builder.table.less_than_5'); } - return numeral(number).format('0,0'); + result = Number(numeral(number).format('0,0')); } else if(_.include(percentVars, key)){ - return numeral(number).format('0.00%'); + result = numeral(number).format('0.00%'); } else if(_.include(largeNumbers, key)) { - return numeral(number).format('0,0'); + result = numeral(number).format('0,0'); } else if(_.include(moneyVars, key)) { - return numeral(number).format('$0.00a'); + result = numeral(number).format('$0.00a'); } else { - return number; + result = number; } + return result; }, updatedData: computed('data.[]', 'tableMap', 'i18n.locale', 'source', 'search', 'startDate', function() { var data = this.get("data"); @@ -457,9 +458,8 @@ export default Ember.Component.extend(TableMap, { order = [[ 0, "desc" ]]; } - const decimalRegex = /^\d*(\.\d{1,2})$/g; - const numericRegex = /(\.*){2,}/g; - const htmlRegex = /<[^>]*>/g; + const decimalRegex = /^[-]?\d*([.,]\d{1,2})$/; + const numericRegex = /(\..*){1,}/; var table = $(id_element).DataTable({ dom: 'Bfrtip', @@ -479,15 +479,13 @@ export default Ember.Component.extend(TableMap, { let result = ""; if (decimalRegex.test(data)){ - result = data; + result = data.replace(/[,]/g, '.'); }else if (numericRegex.test(data)) { - result = `${data}`.replace(/[\.]/g, ''); + result = data.replace(/[.]/g, ''); } else { result = data; } - result = `${result}`.replace(/<[^>]*>/g, ""); - return result; } } diff --git a/app/components/graphbuilder-change-graph-products.js b/app/components/graphbuilder-change-graph-products.js new file mode 100644 index 00000000..4c53de4e --- /dev/null +++ b/app/components/graphbuilder-change-graph-products.js @@ -0,0 +1,26 @@ +import Ember from 'ember'; +const {computed, get} = Ember; + +export default Ember.Component.extend({ + i18n: Ember.inject.service(), + tagName: 'div', + classNames: ['changegraph__icon'], + classNameBindings: ['iconClass', 'isChecked'], + iconClass: computed('type', function() { + return `${get(this, 'type')}`; + }), + isChecked: computed('type', 'visualization', function() { + if(get(this, 'type') === get(this, 'visualization')) { + return 'changegraph__icon--checked'; + } + }), + click: function() { + this.sendAction('toggleVisualization', get(this, 'type')); + }, + didInsertElement: function() { + Ember.run.scheduleOnce('afterRender',this , function() { + + }); + }, +}); + diff --git a/app/components/vistk-scatterplot.js b/app/components/vistk-scatterplot.js index 2a6f4599..411a1563 100644 --- a/app/components/vistk-scatterplot.js +++ b/app/components/vistk-scatterplot.js @@ -6,6 +6,7 @@ const {apiURL} = ENV; export default Ember.Component.extend({ i18n: Ember.inject.service(), + vistkScatterplotService: Ember.inject.service(), tagName: 'div', height: 500, varIndependent: 'code', @@ -26,10 +27,20 @@ export default Ember.Component.extend({ return get(datum, 'industry_eci'); } }), - scatter: computed('data.@each', 'dataType','eciValue','i18n.locale', function() { + scatter: computed('data.[]', 'dataType','eciValue','i18n.locale', function() { + + var categoriesFilter = this.get("categoriesFilterList"); + let eci = this.get('eciValue'); + var self = this; + let selectedProducts = this.get('vistkScatterplotService.selected'); let vistkLanguage = this.get('i18n.display') === 'es' ? 'es_ES': 'en_EN'; let format = function(value) { return numeral(value).format('0.00'); }; + + if(categoriesFilter == undefined){ + categoriesFilter = [] + } + return vistk.viz() .params({ type: 'scatterplot', @@ -54,22 +65,76 @@ export default Ember.Component.extend({ x_text_custom: this.get('i18n').t('graph_builder.table.distance').string, y_text_custom: this.get('i18n').t('graph_builder.table.complexity').string, items: [{ - marks: [{ + marks: [ + { type: 'circle', - fill: (d) => { return d.color ? d.color : '#ccc1b9'; } - }, { + fill: (d) => { + + var color = '#ccc1b9'; + + if(categoriesFilter.length > 0){ + if(categoriesFilter.includes(d.parent_name_es)){ + return d.color ? d.color : '#ccc1b9'; + } + else{ + return color + } + } + else{ + return d.color ? d.color : '#ccc1b9'; + } + + }, + evt: [ + { + type: 'selection', + func: function(d, i, vars) { + if(selectedProducts !== undefined){ + + if(d.__selected){ + if(!selectedProducts.includes(d.id)){ + selectedProducts.push(d.id) + d3.selectAll(`.tooltip_${d.id}`).classed("d-none", false); + self.set('vistkScatterplotService.updated', new Date()); + } + }else{ + if(selectedProducts.includes(d.id)){ + + const index = selectedProducts.indexOf(d.id); + if (index > -1) { + selectedProducts.splice(index, 1); + d3.selectAll(`.tooltip_${d.id}`).classed("d-none", true); + self.set('vistkScatterplotService.updated', new Date()); + } + + } + } + + + + } + + } + }, + ] + }, + { var_mark: '__highlighted', type: d3.scale.ordinal().domain([true, false]).range(['line_horizontal', 'none']), offset_right: function(d, i, vars) { return vars.x_scale[0]['func'].range()[1] - vars.x_scale[0]['func'](d[vars.var_x]) + vars.r_scale(d[vars.var_r]); } - }, { + }, + + { var_mark: '__highlighted', type: d3.scale.ordinal().domain([true, false]).range(['line_vertical', 'none']), offset_top: function(d, i, vars) { return vars.r_scale(d[vars.var_r]); } - }, { + }, + + { var_mark: '__highlighted', type: d3.scale.ordinal().domain([true, false]).range(['rect', 'none']), translate: function(d, i, vars) { @@ -80,7 +145,9 @@ export default Ember.Component.extend({ stroke: 'black', stroke_width: '1.5px', fill: function() { return 'white'; } - }, { + }, + + { var_mark: '__highlighted', type: d3.scale.ordinal().domain([true, false]).range(['text', 'none']), translate: function(d, i, vars) { @@ -90,7 +157,9 @@ export default Ember.Component.extend({ text: function(d, i, vars) { return format(d[vars.var_y]); } - }, { + }, + + { var_mark: '__highlighted', type: d3.scale.ordinal().domain([true, false]).range(['rect', 'none']), translate: function(d, i, vars) { @@ -101,7 +170,9 @@ export default Ember.Component.extend({ stroke: 'black', stroke_width: '1.5px', fill: function() { return 'white'; } - }, { + }, + + { var_mark: '__highlighted', type: d3.scale.ordinal().domain([true, false]).range(['text', 'none']), translate: function(d, i, vars) { @@ -111,7 +182,9 @@ export default Ember.Component.extend({ text: function(d, i, vars) { return format(d[vars.var_x]); } - }, { + }, + + { var_mark: '__highlighted', type: d3.scale.ordinal().domain([false, true]).range(['none', 'div']), class: function() { @@ -149,7 +222,59 @@ export default Ember.Component.extend({ translate: [0, 0], width: 200, height: 'auto' - }, { + }, + + { + type: 'div', + class: function(d) { + + $( `#close_tooltip_${d.id}` ).click(function() { + + const index = selectedProducts.indexOf(d.id); + if (index > -1) { + selectedProducts.splice(index, 1); + d3.selectAll(`.tooltip_${d.id}`).classed("d-none", true); + self.set('vistkScatterplotService.updated', new Date()); + } + }); + + return `d-none tooltip_network tooltip_${d.id}`; + }, + x: function(d, i, vars) { + return vars.x_scale[0]['func'](d[vars.var_x]) + vars.margin.left; + }, + y: function(d, i, vars) { + return vars.y_scale[0]['func'](d[vars.var_y]); + }, + text: (d) => { + var data = [{ + 'key': this.get('rca'), + 'value': get(d,this.get('rca')) + },{ + 'key': 'cog', + 'value':get(d,'cog') + },{ + 'key': this.get('amount'), + 'value':get(d,this.get('amount')) + } + ]; + var textItem = get(d, `name_short_${this.get('i18n').display}`) || d.code; + var tooltip_text = `
    x${textItem} - ${get(d, 'code')}`; + + data.forEach((datum) => { + if(datum.key) { + tooltip_text += '
    ' + this.get('i18n').t(`graph_builder.table.${get(datum,'key')}`) + ': ' + format(get(datum,'value')); + } + }); + + return tooltip_text; + }, + translate: [0, 0], + width: 200, + height: 'auto' + }, + + { type: 'line_horizontal', filter: function(d, i) { return typeof eci !== 'undefined' && i === 0; @@ -157,7 +282,9 @@ export default Ember.Component.extend({ offset_y: function(d, i, vars) { return -(vars.y_scale[0]['func'](d[vars.var_y]) - vars.y_scale[0]['func'](eci)); } - }, { + }, + + { type: 'text', filter: function(d, i) { return typeof eci !== 'undefined' && i === 0; @@ -306,11 +433,17 @@ export default Ember.Component.extend({ }); return categories; }), + didInsertElement: function() { - // TODO: Why is this code here >:| Getting location level specific data + Ember.run.scheduleOnce('afterRender', this , function() { + // TODO: Why is this code here >:| Getting location level specific data // definitely is not a scatterplot component concern this.set("inmutableDataInternal", this.get("data")); + + console.log( $(".js-range-slider")) + let id = this.get('entityId'); + let locationLevel = this.get(`metadata.locations.${id}.level`); // There are no country level data API (/location/0/?level=country) yet, so // in that case just use some defaults and don't care about ECI value. @@ -319,6 +452,7 @@ export default Ember.Component.extend({ this.set('x_domain', vistk.utils.extent(this.get('modelData'), 'distance')); this.set('y_domain', vistk.utils.extent(this.get('modelData'), 'complexity')); this.set('r_domain', vistk.utils.extent(this.get('modelData'), this.get('varSize'))); + this.get('updatedDate'); d3.select(this.get('id')).call(this.get('scatter')); return; } @@ -341,7 +475,10 @@ export default Ember.Component.extend({ this.set('y_domain', vistk.utils.extent(this.get('modelData'), 'complexity')); this.set('r_domain', vistk.utils.extent(this.get('modelData'), this.get('varSize'))); + this.get('updatedDate'); d3.select(this.get('id')).call(this.get('scatter')); + + }); Ember.run.later(this , function() { @@ -353,9 +490,11 @@ export default Ember.Component.extend({ $('.category-button').on("mouseleave", function(e) { $(this).find("div.tooltip").addClass("d-none"); }) - }, 100); + }, 100); + }); }, + willDestroyElement: function() { this.set('scatter', null); this.removeObserver('i18n.locale', this, this.update); @@ -363,19 +502,22 @@ export default Ember.Component.extend({ }, update_categories_filter: observer('categoriesFilter', function () { var categoriesFilter = this.get("categoriesFilter"); - var updated = this.get("inmutableDataInternal").filter(item => categoriesFilter.includes(item.parent_name_es) ) - this.set("data", updated) + this.set("vistkScatterplotService.categoriesFilter", categoriesFilter) + //var updated = this.get("inmutableDataInternal").filter(item => categoriesFilter.includes(item.parent_name_es) ) + //this.set("data", updated) }), update_vcr_filter: observer('VCRValue', function () { var VCRValue = this.get("VCRValue"); var updated = this.get("inmutableDataInternal").filter(item => item.rca >= VCRValue ) this.set("data", updated) }), - update: observer('data.@each', 'varRca', 'i18n.locale', 'dataType', function() { + update: observer('data.[]', 'varRca', 'i18n.locale', 'dataType', function() { + if(!this.element){ return ; } //do not redraw if not there d3.select(this.get('id')).select('svg').remove(); Ember.run.later(this , function() { if(this.get('scatter')) { + this.get('updatedDate'); d3.select(this.get('id')).call(this.get('scatter')); } }); @@ -483,7 +625,8 @@ export default Ember.Component.extend({ } - this.set("categoriesFilter", categoriesFilter); + this.set("categoriesFilterList", categoriesFilter); + //this.set("vistkScatterplotService.updated", new Date()); //this.set("treemapService.filter_update", new Date()) //this.set("treemapService.filter_updated_data", updatedData) @@ -492,6 +635,8 @@ export default Ember.Component.extend({ }, actions: { check(index, attr) { + //this.set('vistkScatterplotService.selected', []); + this.set('vistkScatterplotService.updated', new Date()); this.updateCategoriesObject(index, attr); }, range_update(){ diff --git a/app/controllers/location/potential.js b/app/controllers/location/potential.js new file mode 100644 index 00000000..c9dc53be --- /dev/null +++ b/app/controllers/location/potential.js @@ -0,0 +1,209 @@ +import Ember from 'ember'; +import numeral from 'numeral'; +const {computed, get:get, observer} = Ember; + +export default Ember.Controller.extend({ + i18n: Ember.inject.service(), + vistkScatterplotService: Ember.inject.service(), + buildermodSearchService: Ember.inject.service(), + featureToggle: Ember.inject.service(), + queryParams: ['startDate', 'endDate'], + + search: null, + rcaFilter: 'less', + filterCategory: true, + categoriesFilterList: [], + + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + censusYear: computed.alias('featureToggle.census_year'), + + source: "industries", + metadata: computed.alias('model.metaData'), + entityType: computed.alias('model.entity_type'), + entityId: computed.alias('model.entity.id'), + variable: computed.alias('model.variable'), + + rangeYears: computed('firstYear', 'lastYear', function(){ + + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + + var min = this.get("firstYear") + var max = this.get("lastYear") + return [...Array(max - min + 1).keys()].map(i => i + min); + }), + + industriesDataValues: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.industries')) + + return locations.filter(item => item[1].level === "class").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name} (${item[1].code})`} + }) + }), + + filterData: computed('source', function(){ + return this.get('industriesDataValues'); + }), + + placeHolderText: computed('i18n.locale', 'source', function(){ + return this.get('i18n').t(`visualization.source.${this.get('source')}`).string + }), + + filterToSelectedYears: function(data, start, end) { + let timeRange = d3.range(parseInt(start), parseInt(end) + 1); // Makes the range inclusive + return _.filter(data, function(d) { + return _.contains(timeRange, get(d, 'year')); + }); + }, + + immutableData: computed('model.industries_col.[]','endDate', 'startDate' , function() { + return this.filterToSelectedYears(this.get('model.industries_col'), this.get('startDate'), this.get('endDate')); + }), + + filteredData: computed('model.industries_col.[]','endDate', 'startDate' , 'categoriesFilterList',function() { + + let rca = this.get('rca'); + let rcaFilter = this.get('rcaFilter'); + let data = this.get('immutableData'); + var newData = data.map(a => Object.assign({}, a)); + + let categoriesFilter = this.get('categoriesFilterList'); + + return newData.map(item => { + if(categoriesFilter.length > 0){ + if(categoriesFilter.includes(item.parent_name_es)){ + return item + } + else{ + item.color = "#ccc" + return item + } + } + else{ + return item + } + }); + + }), + + searchFilter: observer('buildermodSearchService.search', function() { + + var data = this.get("model.metaData.industries"); + var selected = this.get("vistkScatterplotService.selected"); + let search = _.deburr(this.get('buildermodSearchService.search')); + var self = this; + var elementId = this.get("elementId"); + var initialSelectedProducts = this.get("initialSelectedProducts") + + if(search === ""){ + + //this.set("vistkScatterplotService.selected", []); + //this.set("vistkScatterplotService.updated", new Date()); + } + else { + var regexp = new RegExp(search.replace(/(\S+)/g, function(s) { return "\\b(" + s + ")(.*)"; }) + .replace(/\s+/g, ''), "gi"); + + + var result = _.filter(data, (d) => { + let parentName = get(d,`parent_name_${this.get('i18n').display}`); + let longName = get(d,`name_${this.get('i18n').display}`); + let shortName = get(d,`name_short_${this.get('i18n').display}`); + let code = get(d, 'code'); + + var result_city = _.deburr(`${shortName} ${longName} ${code}`).match(regexp) + + if(result_city !== null){ + return result_city; + } + return _.deburr(`${parentName} ${code}`).match(regexp); + }); + + + result.map(item => { + if(!selected.includes(item.id)){ + selected.push(item.id); + self.set("vistkScatterplotService.updated", new Date()); + d3.selectAll(`.tooltip_${item.id}`).classed('d-none', false); + } + //selected[String(item.id)] = this.getPrimariesSecondaries2(parseInt(item.id)) + //self.set('vistkNetworkService.updated', new Date()); + //d3.selectAll(`.tooltip_${item.id}_${elementId}`).classed('d-none', false); + }); + } + + }), + + filteredDataTable: computed('immutableData' , 'vistkScatterplotService.updated',function() { + + let data = this.get('immutableData'); + var updated = this.get("vistkScatterplotService.updated"); + var selected = this.get("vistkScatterplotService.selected"); + + console.log(selected) + + var result = data.filter(item => { + if(selected.includes(item.id)){ + return true; + } + }); + + return result + + }), + + modelData: computed('model.data.[]', function() { + console.log(this.get("model")) + return this.get('model.industries_col'); + }), + + varDependent: computed('variable', 'source', function() { + return 'export_value'; + }), + + maxValue: computed('filteredData.[]', 'varDependent', function () { + let varDependent = this.get('varDependent'); + return d3.max(this.get('filteredData'), function(d) { return Ember.get(d, varDependent); }); + }), + + scale: computed('maxValue', 'varDependent', function(){ + let varDependent = this.get('varDependent'); + if(_.isUndefined(varDependent)){ + return d3.scale.quantize() + .range(d3.range(5).map(function(i) { return 'q' + i + '-5'; })); + } + return d3.scale.quantize() + .domain([0, this.get('maxValue')]) + .range(d3.range(5).map(function(i) { return 'q' + i + '-5'; })); + }), + + dateExtent: computed('model.industries_col.[]', function() { + if(this.get('model.industries_col').length) { + return d3.extent(this.get('model.industries_col'), function(d) { return d.year; }); + } + return [this.get('firstYear'), this.get('lastYear')]; + }), + + isFiltered: computed('search', function() { + return Boolean(this.get('search')); + }), + + graph: computed('model.metaData', 'source', function() { + let source = this.get('source'); + if(source === 'industries') { + return this.get('model.metaData.industrySpace'); + } else if (source === 'products') { + return this.get('model.metaData.productSpace'); + } + }), + + + + +}); + diff --git a/app/controllers/location/productmap.js b/app/controllers/location/productmap.js index 6395e262..c3f0e388 100644 --- a/app/controllers/location/productmap.js +++ b/app/controllers/location/productmap.js @@ -5,10 +5,15 @@ const {computed, get:get} = Ember; export default Ember.Controller.extend({ i18n: Ember.inject.service(), featureToggle: Ember.inject.service(), + vistkNetworkService: Ember.inject.service(), + vistkScatterplotService: Ember.inject.service(), queryParams: ['year', 'startDate', 'endDate'], startDate: null, endDate: null, + categoriesFilterList: [], + selectedProducts: [], + firstYear: computed.alias('featureToggle.first_year'), lastYear: computed.alias('featureToggle.last_year'), @@ -20,15 +25,95 @@ export default Ember.Controller.extend({ occupationLastYear: computed.alias('featureToggle.year_ranges.occupation.last_year'), entityType: "location", + variable: computed.alias('model.variable'), + + visualization: "similarity", + metadata: computed.alias('model.metaData'), validTimeseries: computed.alias('model.timeseries'), dotplotData: computed.oneWay('model.dotplotData'), occupationData: computed.oneWay('model.occupations'), + elementId: 'product_space', + entityId: computed.alias('model.entity.id'), + modelData: computed('model.data.[]', function() { + console.log(this.get("model")) + return this.get('model.products_col'); + }), + varDependent: computed('variable', 'source', function() { + return 'export_value'; + }), + maxValue: computed('productsData.[]', 'varDependent', function () { + let varDependent = this.get('varDependent'); + return d3.max(this.get('productsData'), function(d) { return Ember.get(d, varDependent); }); + }), + scale: computed('maxValue', 'varDependent', function(){ + let varDependent = this.get('varDependent'); + if(_.isUndefined(varDependent)){ + return d3.scale.quantize() + .range(d3.range(5).map(function(i) { return 'q' + i + '-5'; })); + } + return d3.scale.quantize() + .domain([0, this.get('maxValue')]) + .range(d3.range(5).map(function(i) { return 'q' + i + '-5'; })); + }), + + dateExtent: computed('model.products_col.[]', function() { + if(this.get('model.products_col').length) { + return d3.extent(this.get('model.products_col'), function(d) { return d.year; }); + } + return [this.get('firstYear'), this.get('lastYear')]; + }), + + + productsData: computed('model', 'endDate', 'VCRValue', 'categoriesFilterList', function () { + + var startDate = this.get("startDate"); + var endDate = this.get("endDate"); + var data = this.get("model.products_col") + + console.log(this.get("model")) + + var data_filtered = data.filter(item => item.year >= startDate && item.year <= endDate); + return data_filtered + + }), + + + filteredDataTable: computed("model", 'vistkNetworkService.updated', 'endDate', function () { + + var selectedProducts = this.get("selectedProducts") + + var productsData = this.get("productsData") + var result = productsData.filter(item => Object.keys(selectedProducts).includes(String(item.id))) + + return result + }), + + + filteredDataTable2: computed("model", 'vistkScatterplotService.updated', 'endDate', function () { + + var selectedProducts = this.get("vistkScatterplotService.selected") + + console.log(selectedProducts) + + var productsData = this.get("productsData") + var result = productsData.filter(item => selectedProducts.includes(item.id)) + + return result + }), + inmutableProductsData: computed.oneWay('model.productsData'), industriesData: computed.oneWay('model.industriesData'), + otherPossibleGraphs: computed('model.visualization', 'model.source', function() { + return [ + { type: 'similarity', description: 'graph_builder.change_graph.similarity_description', available: true, name: 'Mapa de productos' }, + { type: 'scatter', description: 'graph_builder.change_graph.scatter_description', available: true, name: 'Productos con mayor potencial' }, + ]; + }), + rangeYears: computed('firstYear', 'lastYear', function(){ this.set('startDate', this.get("lastYear")) @@ -97,6 +182,11 @@ export default Ember.Controller.extend({ return this.get(`model.description_${this.get('i18n.display')}`); }), actions: { + toggleVisualization: function(visualization) { + this.set("visualization", visualization) + this.set("vistkScatterplotService.selected", []) + this.set("vistkScatterplotService.updated", new Date()) + }, showExports(value) { this.set('showExports', value); }, @@ -106,7 +196,7 @@ export default Ember.Controller.extend({ this.set('startDate', year) this.set('endDate', year) - } + }, } }); diff --git a/app/router.js b/app/router.js index e9a4d9a0..7550f6d0 100644 --- a/app/router.js +++ b/app/router.js @@ -49,6 +49,7 @@ export default Router.map(function() { this.route('locationwages', {path: ':location_id/route/wages/'}); this.route('complexsectors', {path: ':location_id/route/complex_sectors/'}); + this.route('potential', {path: ':location_id/route/potential/'}); this.route('complexsectorsdetail', {path: ':location_id/route/complex_sectors/detail/'}); this.route('complexsectorsprimaries', {path: ':location_id/route/complex_sectors/primaries/'}); diff --git a/app/routes/location/potential.js b/app/routes/location/potential.js new file mode 100644 index 00000000..6c9784ec --- /dev/null +++ b/app/routes/location/potential.js @@ -0,0 +1,66 @@ +import Ember from 'ember'; +import ENV from '../../config/environment'; + +const {apiURL} = ENV; + +const {RSVP, computed, copy, get, $, set, getWithDefault} = Ember; + +export default Ember.Route.extend({ + + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + buildermodSearchService: Ember.inject.service(), + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + + queryParams: { + startDate: { refreshModel: false }, + endDate: { refreshModel: false }, + }, + + model(params) { + + let hash = { + model: this.store.find('location', params.location_id), + industries_col: $.getJSON(`${apiURL}/data/location/${params.location_id}/industries?level=class`), + } + + return RSVP.hash(hash).then((hash) => { + return this.departmentsDataMunging(hash); + }); + + //return this.store.find('product', params.product_id); + }, + departmentsDataMunging(hash) { + let {model, industries_col} = hash; + let industriesMetadata = this.modelFor('application').industries; + var industriesDataIndex = _.indexBy(getWithDefault(industries_col, 'data', []), 'industry_data'); + + let industries = _.map(industries_col.data, (d) => { + let industry = industriesMetadata[d.industry_id]; + if(model.id === '0') { d.rca = 1; } + industry.complexity = _.result(_.find(industry.pci_data, { year: d.year}), 'complexity'); + return _.merge(copy(d), industry, { avg_wage: d.wages/d.employment}); + }); + + return Ember.Object.create({ + entity: model, + industries_col: industries, + metaData: this.modelFor('application') + }); + }, + setupController(controller, model) { + //this.set('buildermodSearchService.search', null); + this._super(controller, model); + startDate: this.get('firstYear') + endDate: this.get('lastYear') + window.scrollTo(0, 0); + }, + resetController(controller, isExiting) { + + if (isExiting) { + controller.setProperties({ + }); + } + } +}); diff --git a/app/routes/location/productmap.js b/app/routes/location/productmap.js index 10071d05..ae376af1 100644 --- a/app/routes/location/productmap.js +++ b/app/routes/location/productmap.js @@ -1,310 +1,65 @@ import Ember from 'ember'; import ENV from '../../config/environment'; -import numeral from 'numeral'; const {apiURL} = ENV; -const {RSVP, computed, getWithDefault, get, copy} = Ember; + +const {RSVP, computed, copy, get, $, set, getWithDefault} = Ember; export default Ember.Route.extend({ -// `this.store.find` makes an api call for `params.location_id` and returns a promise -// in the `then` function call, another API call is made to get the topExports data + i18n: Ember.inject.service(), featureToggle: Ember.inject.service(), - + buildermodSearchService: Ember.inject.service(), firstYear: computed.alias('featureToggle.first_year'), lastYear: computed.alias('featureToggle.last_year'), - censusYear: computed.alias('featureToggle.census_year'), - agproductLastYear: computed.alias('featureToggle.year_ranges.agproduct.last_year'), queryParams: { startDate: { refreshModel: false }, endDate: { refreshModel: false }, }, - model: function(params) { - return this.store.find('location', params.location_id); - }, - afterModel: function(model) { - let level = model.get('level'); - level = level === 'country' ? 'department' : level; - - let subregion = get(this, `featureToggle.subregions.${model.get('level')}`); - - // TODO: maybe use ember data instead of ajax calls to decorate JSON objects with model functionality? - // extract year out later - var products = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/products?level=4digit`); - var industries = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/industries?level=class`); - - // one of these should be removed in the future because the points should be merged in - var dotplot = Ember.$.getJSON(`${apiURL}/data/location?level=${level}`); //dotplots - - var subregions_trade = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/subregions_trade/?level=${subregion}`); - - var occupations = Ember.$.getJSON(`${apiURL}/data/occupation/?level=minor_group`); - - var agproducts = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/agproducts/?level=level3`); - var landuses = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/land_uses/?level=level2`); - - var ag_farmsizes = Ember.$.getJSON(`${apiURL}/data/farmsize/1/locations/?level=${level}`); - var nonag_farmsizes = Ember.$.getJSON(`${apiURL}/data/farmsize/2/locations/?level=${level}`); - - var partners = Ember.$.getJSON(`${apiURL}/data/location/${model.id}/partners/?level=country`) - - return RSVP.allSettled([products, dotplot, industries, subregions_trade, occupations, agproducts, landuses, ag_farmsizes, nonag_farmsizes, partners]).then((array) => { - var productsData = getWithDefault(array[0], 'value.data', []); - - var dotplotData = getWithDefault(array[1], 'value.data', []);//dotplots - - var industriesData = getWithDefault(array[2], 'value.data', []); - - var subregionsTradeData = _.filter(getWithDefault(array[3], 'value.data', []), { 'year': this.get('lastYear')}); - - var occupationsData = getWithDefault(array[4], 'value.data', []); - - var agproductsData = getWithDefault(array[5], 'value.data', []); - var landusesData = getWithDefault(array[6], 'value.data', []); - - var agFarmsizesData = getWithDefault(array[7], 'value.data', []); - var nonagFarmsizesData = getWithDefault(array[8], 'value.data', []); - - var partnersData = getWithDefault(array[9], 'value.data', []); - - var productsDataIndex = _.indexBy(productsData, 'product_id'); - var industriesDataIndex = _.indexBy(industriesData, 'industry_data'); - - let productsMetadata = this.modelFor('application').products; - let locationsMetadata = this.modelFor('application').locations; - let industriesMetadata = this.modelFor('application').industries; - let occupationsMetadata = this.modelFor('application').occupations; - let agproductsMetadata = this.modelFor('application').agproducts; - let landusesMetadata = this.modelFor('application').landUses; - let partnersMetadata = this.modelFor('application').partnerCountries; - - - //get products data for the department - let products = _.reduce(productsData, (memo, d) => { - if(d.year != this.get('lastYear')) { return memo; } - let product = productsMetadata[d.product_id]; - let productData = productsDataIndex[d.product_id]; - product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); - memo.push(_.merge(d, product, productData)); - return memo; - }, []); - - - //get products data for the department - let allProducts = _.reduce(productsData, (memo, d) => { - let product = productsMetadata[d.product_id]; - let productData = productsDataIndex[d.product_id]; - - product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); - memo.push(_.merge(d, productData, {year: d.year}, product)); - return memo; - }, []); - - - let allPartners = _.map(partnersData, (d) => { - - let country = partnersMetadata[d.country_id]; - let parent = partnersMetadata[country.parent_id]; - d.parent_name_en = parent.name_en; - d.parent_name_es = parent.name_es; - d.group = parent.id; - - return _.merge(copy(d), country); - }); - - - //get agproducts data for the department - let agproducts = _.reduce(agproductsData, (memo, d) => { - if(d.year != this.get('agproductLastYear')) { return memo; } - let product = agproductsMetadata[d.agproduct_id]; - let parent = agproductsMetadata[agproductsMetadata[product.parent_id].parent_id]; - d.group = parent.id; - d.parent_name_en = parent.name_en; - d.parent_name_es = parent.name_es; - memo.push(_.merge(d, product)); - return memo; - }, []); - - //get agproducts data for the department - let landuses = _.reduce(landusesData, (memo, d) => { - let product = landusesMetadata[d.land_use_id]; - let parent = landusesMetadata[product.parent_id]; - d.group = product.name_en; - memo.push(_.merge(d, product)); - return memo; - }, []); - - //get industry data for department - let industries = _.reduce(industriesData, (memo, d) => { - if(d.year != this.get('lastYear')) { return memo; } - let industry = industriesMetadata[d.industry_id]; - if(model.id === '0') { d.rca = 1; } - let industryData = industriesDataIndex[d.industry_id]; - industry.complexity = _.result(_.find(industry.pci_data, { year: d.year}), 'complexity'); - memo.push(_.merge(d, industry, industryData)); - return memo; - }, []); - - let occupationVacanciesSum = 0; - let occupations = _.map(occupationsData, (d) => { - occupationVacanciesSum += d.num_vacancies; - let occupation = occupationsMetadata[d.occupation_id]; - return _.merge(d, occupation); - }); - - occupations.forEach((d) => { - d.share = d.num_vacancies/occupationVacanciesSum; - }); + model(params) { - //dotplots and dotplotTimeSeries power the dotplots, rankings and etc - var dotplot = []; - var dotplotTimeSeries= []; + let hash = { + model: this.store.find('location', params.location_id), + products_col: $.getJSON(`${apiURL}/data/location/${params.location_id}/products?level=4digit`), + } - _.each(dotplotData, (d) => { - let id = _.get(d, 'department_id') || _.get(d, 'location_id'); - if(id == model.id) { - dotplotTimeSeries.push(d); - } - if(d.year === this.get('censusYear')) { - let id = _.get(d, 'department_id') || _.get(d, 'location_id'); - - let location = _.get(locationsMetadata, id); - - let extra = { - name: location.name_en, - group: d.code, - parent_name_en: location.name_en, - parent_name_es: location.name_es, - }; - - let datum = _.merge(d, location, extra ); - dotplot.push(datum); - } - }); - - let subregions = []; - _.each(subregionsTradeData, (d) => { - let id = _.get(d, 'department_id') || _.get(d, 'location_id'); - - let location = _.get(locationsMetadata, id); - let extra = { - name: location.name_en, - group: d.code, - parent_name_en: location.name_en, - parent_name_es: location.name_es, - }; - - let datum = _.merge(d, location, extra ); - subregions.push(datum); - }); - - var eciRank = 1; - var populationRank = 1; - var gdpRank = 1; - var gdpPerCapitaRank = 1; - - // "Datum" contains the hash of data for the year to be displayed. - let datum = _.chain(dotplotTimeSeries) - .select({ year: this.get('censusYear')}) - .first() - .value(); - - if(datum) { - _.each(dotplot, (d) => { - if(d.eci != null && d.eci > datum.eci) { eciRank ++; } - if(d.gdp_real != null && d.gdp_real > datum.gdp_real) { gdpRank ++; } - if(d.population != null && d.population > datum.population ) { populationRank ++; } - if(d.gdp_pc_real != null && d.gdp_pc_real> datum.gdp_pc_real ) { gdpPerCapitaRank++; } - }); - } - - if(datum !== undefined && (datum.eci === undefined || datum.eci === null)){ - eciRank = null; - } - - model.setProperties({ - eciRank: eciRank, - gdpRank: gdpRank, - gdpPerCapitaRank: gdpPerCapitaRank, - populationRank: populationRank, - }); - - var agFarmsizeRank = 1; - var agFarmsize = _.chain(agFarmsizesData).filter((d) => d.location_id == model.id).first().get("avg_farmsize").value(); - _.each(agFarmsizesData, (d) => { - - if(d.avg_farmsize != null && d.avg_farmsize > agFarmsize ) { agFarmsizeRank++; } - - d.name_en = _.get(locationsMetadata, d.location_id).name_en; - d.name_es = _.get(locationsMetadata, d.location_id).name_es; - - }); - agFarmsize = numeral(agFarmsize).format('0.00a'); - - model.setProperties({ - agFarmsize: agFarmsize, - agFarmsizeRank: agFarmsizeRank, - }); - - var nonagFarmsizeRank = 1; - var nonagFarmsize = _.chain(nonagFarmsizesData).filter((d) => d.location_id == model.id).first().get("avg_farmsize").value(); - _.each(nonagFarmsizesData, (d) => { - - if(d.avg_farmsize != null && d.avg_farmsize > nonagFarmsize ) { nonagFarmsizeRank++; } - - d.name_en = _.get(locationsMetadata, d.location_id).name_en; - d.name_es = _.get(locationsMetadata, d.location_id).name_es; - - }); - nonagFarmsize = numeral(nonagFarmsize).format('0.00a'); - - model.setProperties({ - nonagFarmsize: nonagFarmsize, - nonagFarmsizeRank: nonagFarmsizeRank, - }); - - var yieldIndexRank = 1; - var yieldIndex = _.chain(dotplotData).filter((d) => ((d.department_id == model.id || d.location_id == model.id) && d.year == this.get("agproductLastYear"))).first().get("yield_index").value(); - - var yieldData = _.filter(dotplotData, (d) => d.year == this.get("agproductLastYear") ); - _.each(yieldData, (d) => { - if(d.yield_index != null && d.yield_index > yieldIndex) { yieldIndexRank++; } - let id = _.get(d, 'department_id') || _.get(d, 'location_id'); - d.name_en = _.get(locationsMetadata, id).name_en; - d.name_es = _.get(locationsMetadata, id).name_es; - }); - yieldIndex = numeral(yieldIndex).format('0.00a'); - - model.setProperties({ - yieldIndex: yieldIndex, - yieldIndexRank: yieldIndexRank, - }); - - - model.set('productsData', products); - model.set('agproductsData', agproducts); - model.set('landusesData', landuses); - model.set('industriesData', industries); - model.set('agFarmsizesData', agFarmsizesData); - model.set('nonagFarmsizesData', nonagFarmsizesData); - model.set('yieldData', yieldData); - model.set('dotplotData', dotplot); - model.set('occupations', occupations); - model.set('timeseries', dotplotTimeSeries); - model.set('metaData', this.modelFor('application')); - model.set('subregions', subregions); - model.set('allPartners', allPartners) - model.set('allProducts', allProducts) + return RSVP.hash(hash).then((hash) => { + return this.departmentsDataMunging(hash); + }); - return model; + //return this.store.find('product', params.product_id); + }, + departmentsDataMunging(hash) { + let {model, products_col} = hash; + let productsMetadata = this.modelFor('application').products; + var productsDataIndex = _.indexBy(getWithDefault(products_col, 'data', []), 'product_id'); + + //get products data for the department + let products = _.reduce(products_col.data, (memo, d) => { + let product = productsMetadata[d.product_id]; + product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); + memo.push(_.merge(d, product)); + return memo; + }, []); + + return Ember.Object.create({ + entity: model, + products_col: products, + metaData: this.modelFor('application') }); }, setupController(controller, model) { + //this.set('buildermodSearchService.search', null); this._super(controller, model); - this.controllerFor('application').set('entity', model.get('constructor.modelName')); - this.controllerFor('application').set('entity_id', model.get('id')); window.scrollTo(0, 0); }, + resetController(controller, isExiting) { + + if (isExiting) { + controller.setProperties({ + }); + } + } }); diff --git a/app/services/vistk-scatterplot-service.js b/app/services/vistk-scatterplot-service.js new file mode 100644 index 00000000..c1022350 --- /dev/null +++ b/app/services/vistk-scatterplot-service.js @@ -0,0 +1,9 @@ +import Ember from 'ember'; + +export default Ember.Service.extend({ + selected: [], + updated: null, + data: null, + VCRValue: 1, + categoriesFilter: [] +}); diff --git a/app/styles/components/_visualizations/_geo.scss b/app/styles/components/_visualizations/_geo.scss index fd7a24bf..df10105b 100755 --- a/app/styles/components/_visualizations/_geo.scss +++ b/app/styles/components/_visualizations/_geo.scss @@ -9,7 +9,6 @@ height: 80rem; padding: 0; background: $colorBase; - border: 1px #555 solid; svg { position: relative; diff --git a/app/styles/components/_visualizations/_scatterplot.scss b/app/styles/components/_visualizations/_scatterplot.scss index 6da2a307..cd1f50fe 100755 --- a/app/styles/components/_visualizations/_scatterplot.scss +++ b/app/styles/components/_visualizations/_scatterplot.scss @@ -26,7 +26,7 @@ .mark__line_horizontal { fill: none; - stroke: #000; + stroke: $colorYellow; stroke-width: 1.5px; stroke-dasharray: 5,5; opacity: 1; @@ -36,3 +36,7 @@ .axis{ fill: white; } + +.items__mark__text{ + fill: white; +} diff --git a/app/templates/components/graphbuilder-change-graph-products.hbs b/app/templates/components/graphbuilder-change-graph-products.hbs new file mode 100644 index 00000000..16c4ac83 --- /dev/null +++ b/app/templates/components/graphbuilder-change-graph-products.hbs @@ -0,0 +1,4 @@ +
    + +

    {{name}}

    +
    diff --git a/app/templates/components/vistk-scatterplot.hbs b/app/templates/components/vistk-scatterplot.hbs index 648d80d9..c4b64424 100644 --- a/app/templates/components/vistk-scatterplot.hbs +++ b/app/templates/components/vistk-scatterplot.hbs @@ -37,8 +37,8 @@ {{/if}} {{#if canFilterVcr }} -
    +
    - +
    {{/if}} \ No newline at end of file diff --git a/app/templates/location/complexsectors.hbs b/app/templates/location/complexsectors.hbs index 502223d7..f7016fcd 100644 --- a/app/templates/location/complexsectors.hbs +++ b/app/templates/location/complexsectors.hbs @@ -12,6 +12,14 @@ {{/link-to}}
    +
    + {{#link-to 'location.potential' model.entity.id (query-params startDate=startDate endDate=startDate) + class="btn btn-outline-secondary" + }} + CASO 38 + {{/link-to}} +
    +
    diff --git a/app/templates/location/potential.hbs b/app/templates/location/potential.hbs new file mode 100644 index 00000000..f8b5a022 --- /dev/null +++ b/app/templates/location/potential.hbs @@ -0,0 +1,108 @@ +{{component "stream-header" model=model.entity type='location' extra_type="location_route" firstYear=firstYear lastYear=lastYear}} + + +
    +
    +
    + {{ + component 'buildermod-search' + source=source + filterData=filterData + placeHolderText=placeHolderText + visualization=visualization + startDate=startDate + endDate=endDate + dateExtent=dateExtent + canYearToggle=true + isScatter=false + rcaFilter=false + isSingleYearData=isSingleYearData + source=source + search=search + }} +
    +
    +
    + +
    + +
    +
    +
    +

    {{vistkScatterplotService.updated}}

    +

    {{vistkScatterplotService.selected}}

    +

    {{buildermodSearchService.search}}

    + {{vistk-scatterplot + classNames='buildermod__viz' + immutableData=immutableData + modelData=modelData + data=filteredData + dataType=source + varDependent=varDependent + scale=scale + startDate=startDate + dateExtent=dateExtent + endDate=endDate + metadata=metadata + isFiltered=isFiltered + entityType=entityType + entityId=entityId + variable=variable + search=search + graph=graph + elementId=source + toolTips=toolTips + range=range + canUpdateBuildermodSearchService=canUpdateBuildermodSearchService + filterCategory=true + resetFilter=resetFilter + canFilterVcr=false + title="PRODUCTOS" + subtitle="POR SECTOR" + groupByParent=groupByParent + categoriesFilterList=categoriesFilterList + }} + + +
    +
    +
    + +
    + +
    +
    +
    + + {{ + datlas-table + data=filteredDataTable + source=source + entityType=entityType + search=search + startDate=startDate + endDate=endDate + elementId="sourceTable" + title_data=(is-concat endDate ' - ' variableTitle ' - ' model.entity.name ' (' model.entity.code ')') + }} + +
    +
    +
    + +
    +
    + {{#link-to 'location.complexsectors' model.entity.id + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    + +
    diff --git a/app/templates/location/productmap.hbs b/app/templates/location/productmap.hbs index 792b9d08..cb01c024 100644 --- a/app/templates/location/productmap.hbs +++ b/app/templates/location/productmap.hbs @@ -1,29 +1,291 @@ -
    -

    CASO 22

    +{{component "stream-header" model=model.entity type='location' extra_type="location_route" firstYear=firstYear lastYear=lastYear}} + + + +
    +
    + +
    +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    + +
    + {{partial "partials/buildermod-drawer-change-graph-products"}} +
    + +
    -
    + + +{{#if (is-equal visualization "similarity") }} + +
    + + +
    + +
    +
    + + + + + + + +
    +
    + +
    +
    +

    ALTO NIVEL DE COMPLEJIDAD

    +
    +
    +

    BAJO NIVEL DE COMPLEJIDAD

    +
    +
    +

    {{vistkNetworkService.updated}}

    +
    + {{vistk-network + data=productsData + immutableData=productsData + elementId=elementId + dataType='products' + metadata=model.metaData + varDependent='export_value' + graph=productSpace + height=600 + delay=3500 + showMiddle=true + filterCategory=true + title="SECTORES DE" + subtitle="LOS PRODUCTOS" + selected=model.entity.id + canFilterVcr=true + VCRValue=VCRValue + categoriesFilterList=categoriesFilterList + selectedProducts=selectedProducts + show10=true + }} +
    + +
    + + +
    + + +
    + +
    + {{#link-to 'location.productmapdetail' model.entity.id (query-params startDate=startDate endDate=startDate) + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    + +
    + + +
    +
    +
    + {{ + datlas-table + data=filteredDataTable + source="products" + entityType="products" + elementId="industriesTable" + }} +
    +
    +
    + +{{/if}} + + +{{#if (is-equal visualization "scatter") }} + +
    + + +
    + +
    +
    + + + + + + + +
    +
    + +
    + +
    +

    {{vistkScatterplotService.updated}}

    +

    {{vistkScatterplotService.selected}}

    +

    {{buildermodSearchService.search}}

    +
    + {{vistk-scatterplot + classNames='buildermod__viz' + immutableData=productsData + modelData=modelData + data=productsData + dataType='products' + varDependent=varDependent + scale=scale + startDate=startDate + dateExtent=dateExtent + endDate=endDate + metadata=metadata + isFiltered=false + entityType=entityType + entityId=entityId + variable=variable + graph=productSpace + elementId="scatterplot" + + metadata=model.metaData + varDependent='export_value' + + filterCategory=true + title="SECTORES DE" + subtitle="LOS PRODUCTOS" + selected=model.entity.id + canFilterVcr=false + VCRValue=VCRValue + categoriesFilterList=categoriesFilterList + show10=true + }} +
    + +
    + + +
    + + +
    - {{#link-to 'location.productmapdetail' model.id (query-params startDate=startDate endDate=startDate) + {{#link-to 'location.productmap' model.entity.id (query-params startDate=startDate endDate=startDate) class="btn btn-outline-secondary" }} - CASO 23 + + VER MAS {{/link-to}}
    + +
    +
    +
    + {{ + datlas-table + data=filteredDataTable2 + source="products" + entityType="products" + elementId="industriesTable2" + }} +
    +
    +
    + +{{/if}} + +
    - {{#link-to 'location.route' model.id + {{#link-to 'location.route' model.entity.id class="btn btn-outline-secondary" }} ANTERIOR {{/link-to}}
    - {{#link-to 'location.locationimports' model.id + {{#link-to 'location.locationimports' model.entity.id class="btn btn-outline-secondary" }} SIGUIENTE diff --git a/app/templates/location/productmapprimaries.hbs b/app/templates/location/productmapprimaries.hbs index 9a27808a..8e9c590e 100644 --- a/app/templates/location/productmapprimaries.hbs +++ b/app/templates/location/productmapprimaries.hbs @@ -47,7 +47,7 @@
    {{#link-to 'location.ringchart' model.entity.id (query-params startDate=startDate endDate=endDate lastSelected=lastSelected) - class=(is-concat 'btn btn-outline-secondary btn-block disabled ' enableRingChart) + class=(is-concat 'btn btn-outline-secondary btn-block ' enableRingChart) }} RING CHART {{/link-to}} diff --git a/app/templates/location/productmapsecondaries.hbs b/app/templates/location/productmapsecondaries.hbs index 438de85a..0ecfef1b 100644 --- a/app/templates/location/productmapsecondaries.hbs +++ b/app/templates/location/productmapsecondaries.hbs @@ -34,7 +34,7 @@
    {{#link-to 'location.ringchart' model.entity.id (query-params startDate=startDate endDate=endDate lastSelected=lastSelected) - class=(is-concat 'btn btn-outline-secondary btn-block disabled ' enableRingChart) + class=(is-concat 'btn btn-outline-secondary btn-block ' enableRingChart) }} RING CHART {{/link-to}} diff --git a/app/templates/partials/-buildermod-drawer-change-graph-products.hbs b/app/templates/partials/-buildermod-drawer-change-graph-products.hbs new file mode 100644 index 00000000..20ef54e9 --- /dev/null +++ b/app/templates/partials/-buildermod-drawer-change-graph-products.hbs @@ -0,0 +1,13 @@ +
    + {{#each graph in otherPossibleGraphs}} + {{#if graph.available}} + {{component 'graphbuilder-change-graph-products' + toggleVisualization='toggleVisualization' + type=graph.type + name=graph.name + description=graph.description + visualization=visualization + }} + {{/if}} + {{/each}} +
    \ No newline at end of file diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 0b4adbc1..bb142e5f 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -88,7 +88,7 @@
    -
    +
    {{component visualizationComponent classNames='buildermod__viz' immutableData=immutableData From 8543d52f3597189b1c916bad22180d04f2ae8a42 Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Thu, 30 Sep 2021 18:48:12 -0500 Subject: [PATCH 050/126] Release 0.18 --- app/components/datlas-table.js | 2 + app/components/geo-map.js | 20 + app/components/vistk-network.js | 2 +- app/controllers/location/complexsectors.js | 360 +++++++----------- .../location/productmappotential.js | 211 ++++++++++ app/router.js | 17 + app/routes/location/complexsectors.js | 26 +- app/routes/location/productmappotential.js | 65 ++++ .../_visualizations/_scatterplot.scss | 3 +- app/templates/location/complexsectors.hbs | 277 +++++++++++++- app/templates/location/productmap.hbs | 4 +- .../location/productmappotential.hbs | 110 ++++++ 12 files changed, 859 insertions(+), 238 deletions(-) create mode 100644 app/controllers/location/productmappotential.js create mode 100644 app/routes/location/productmappotential.js create mode 100644 app/templates/location/productmappotential.hbs diff --git a/app/components/datlas-table.js b/app/components/datlas-table.js index 4f5a1f42..b613b5d8 100644 --- a/app/components/datlas-table.js +++ b/app/components/datlas-table.js @@ -477,6 +477,8 @@ export default Ember.Component.extend(TableMap, { format: { body: function ( data, row, column, node ) { + data = String(data) + let result = ""; if (decimalRegex.test(data)){ result = data.replace(/[,]/g, '.'); diff --git a/app/components/geo-map.js b/app/components/geo-map.js index e0a2e5e7..5c86f14a 100644 --- a/app/components/geo-map.js +++ b/app/components/geo-map.js @@ -10,6 +10,9 @@ export default Ember.Component.extend({ classNames: ['geo__wrap'], accessToken: 'pk.eyJ1IjoiZ3dlemVyZWsiLCJhIjoicXJkMjV6WSJ9.Iw_1c5zREHqNSfdtkjlqbA', baseMap: computed('elementId', function() { + + var self = this; + if(!this.get('elementId')) { return ; } let map = new L.mapbox.map(this.get('elementId'), 'gwezerek.22ab4aa8,gwezerek.da867b0d', { accessToken: this.accessToken, @@ -23,6 +26,7 @@ export default Ember.Component.extend({ var simpleMapScreenshoter = L.simpleMapScreenshoter({ hidden: true, // hide screen btn on map }).addTo(map); + document.getElementById("savepng").addEventListener('click', function () { simpleMapScreenshoter.takeScreen('image').then(image => { var svgElement = $(`.leaflet-container`).get(0); @@ -33,7 +37,15 @@ export default Ember.Component.extend({ var screens = document.getElementById('screens') screens.prepend(img); var d = new Date(); + + var title = self.get("title"); + var file_name = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() + + if(title){ + file_name = title; + } + html2canvas($(`.visualizationComponent_div`).get(0), { allowTaint: true, onrendered: function(canvas) { @@ -69,7 +81,15 @@ export default Ember.Component.extend({ var totalPDFPages = Math.ceil(HTML_Height / PDF_Height) - 1; var d = new Date(); + + var title = self.get("title"); + var file_name = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() + + if(title){ + file_name = title; + } + html2canvas(containerElement, { allowTaint: true, onrendered: function(canvas) { diff --git a/app/components/vistk-network.js b/app/components/vistk-network.js index 80ca767d..e0b46c40 100644 --- a/app/components/vistk-network.js +++ b/app/components/vistk-network.js @@ -131,7 +131,7 @@ export default Ember.Component.extend({ VCRValue = 1 } - var tooltips = ["complexity"]; + var tooltips = ["employment", "complexity"]; var self = this; var width = self.get("width"); var height = self.get("height"); diff --git a/app/controllers/location/complexsectors.js b/app/controllers/location/complexsectors.js index bacc9c6f..c3f0e388 100644 --- a/app/controllers/location/complexsectors.js +++ b/app/controllers/location/complexsectors.js @@ -1,276 +1,202 @@ import Ember from 'ember'; -const {computed, get, observer, RSVP} = Ember; -import ENV from '../../config/environment'; - -const {apiURL} = ENV; +import numeral from 'numeral'; +const {computed, get:get} = Ember; export default Ember.Controller.extend({ + i18n: Ember.inject.service(), featureToggle: Ember.inject.service(), - buildermodSearchService: Ember.inject.service(), - departmentCityFilterService: Ember.inject.service(), vistkNetworkService: Ember.inject.service(), - locationsSelectionsService: Ember.inject.service(), - queryParams: ['startDate', 'endDate'], + vistkScatterplotService: Ember.inject.service(), + queryParams: ['year', 'startDate', 'endDate'], + startDate: null, + endDate: null, categoriesFilterList: [], - elementId: 'product_space', - VCRValue: 1, - entityType: "product", - source: "products", - visualization: "products", - firstYear: computed.alias('featureToggle.first_year'), - lastYear: computed.alias('featureToggle.last_year'), + selectedProducts: [], - isSingleYearData: computed('dateExtent', function(){ - let dateExtent = this.get('dateExtent'); - if (dateExtent){ - if (dateExtent[1] - dateExtent[0] > 0){ - return false; - } else { - return true; - } - } else { - return false; - } - }), - getPrimariesSecondaries2: function (id) { - - var edges = this.get('productSpace').edges; - var result_object = {} - - var primaries = edges.filter(function(e) { - if(typeof e.source !== 'undefined' && typeof e.target !== 'undefined') { - if(e.source.id === undefined){ - return e.source == id || e.target == id; - } - else{ - return e.source.id == id || e.target.id == id; - } - } else { - return false; - } - }) - .map(item => { - - if(item.source.id === undefined){ - if(item.source == id){ - return item.target - } - else { - return item.source - } - } - else{ - if(item.source.id == id){ - return item.target.id - } - else { - return item.source.id - } - } - - - }) - - for(let id2 of primaries){ - var secondaries_acumm = edges.filter(function(e) { - if(typeof e.source !== 'undefined' && typeof e.target !== 'undefined') { - - if(e.source.id === undefined){ - return e.source == id2 || e.target == id2; - } - else{ - return e.source.id == id2 || e.target.id == id2; - } - } else { - return false; - } - }) - .map(item => { - - if(item.source.id === undefined){ - if(item.source == id2){ - return item.target - } - else { - return item.source - } - } - else{ - if(item.source.id == id2){ - return item.target.id - } - else { - return item.source.id - } - } - - - }) - .filter(item => item != id) - - result_object[`${id2}`] = secondaries_acumm + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + censusYear: computed.alias('featureToggle.census_year'), + agproductFirstYear: computed.alias('featureToggle.year_ranges.agproduct.first_year'), + agproductLastYear: computed.alias('featureToggle.year_ranges.agproduct.last_year'), + agcensusFirstYear: computed.alias('featureToggle.year_ranges.agcensus.first_year'), + agcensusLastYear: computed.alias('featureToggle.year_ranges.agcensus.last_year'), + occupationLastYear: computed.alias('featureToggle.year_ranges.occupation.last_year'), - } + entityType: "location", + variable: computed.alias('model.variable'), - return result_object + visualization: "similarity", + metadata: computed.alias('model.metaData'), - }, - initialSelectedProducts: computed('model.[]', function () { - var id = this.get("model.entity.id") - var selected_products = {} + validTimeseries: computed.alias('model.timeseries'), + dotplotData: computed.oneWay('model.dotplotData'), + occupationData: computed.oneWay('model.occupations'), - return selected_products + elementId: 'product_space', + entityId: computed.alias('model.entity.id'), + modelData: computed('model.data.[]', function() { + console.log(this.get("model")) + return this.get('model.products_col'); }), - selectedProducts: computed.alias('locationsSelectionsService.selectedProducts'), - - searchFilter: observer('buildermodSearchService.search', function() { - - var data = this.get("model.metaData.products"); - var selected = this.get("selectedProducts"); - let search = _.deburr(this.get('buildermodSearchService.search')); - var self = this; - var elementId = this.get("elementId"); - var initialSelectedProducts = this.get("initialSelectedProducts") - - if(search === ""){ - - var id_principal = this.get("model.entity.id"); - - - d3.selectAll(".tooltip_network").classed("d-none", true); - - this.set("selectedProducts", {}); - this.set('vistkNetworkService.updated', new Date()); + varDependent: computed('variable', 'source', function() { + return 'export_value'; + }), + maxValue: computed('productsData.[]', 'varDependent', function () { + let varDependent = this.get('varDependent'); + return d3.max(this.get('productsData'), function(d) { return Ember.get(d, varDependent); }); + }), + scale: computed('maxValue', 'varDependent', function(){ + let varDependent = this.get('varDependent'); + if(_.isUndefined(varDependent)){ + return d3.scale.quantize() + .range(d3.range(5).map(function(i) { return 'q' + i + '-5'; })); } - else { - var regexp = new RegExp(search.replace(/(\S+)/g, function(s) { return "\\b(" + s + ")(.*)"; }) - .replace(/\s+/g, ''), "gi"); - - - var result = _.filter(data, (d) => { - let parentName = get(d,`parent_name_${this.get('i18n').display}`); - let longName = get(d,`name_${this.get('i18n').display}`); - let shortName = get(d,`name_short_${this.get('i18n').display}`); - let code = get(d, 'code'); + return d3.scale.quantize() + .domain([0, this.get('maxValue')]) + .range(d3.range(5).map(function(i) { return 'q' + i + '-5'; })); + }), - var result_city = _.deburr(`${shortName} ${longName} ${code}`).match(regexp) + dateExtent: computed('model.products_col.[]', function() { + if(this.get('model.products_col').length) { + return d3.extent(this.get('model.products_col'), function(d) { return d.year; }); + } + return [this.get('firstYear'), this.get('lastYear')]; + }), - if(result_city !== null){ - return result_city; - } - return _.deburr(`${parentName} ${code}`).match(regexp); - }); + productsData: computed('model', 'endDate', 'VCRValue', 'categoriesFilterList', function () { + var startDate = this.get("startDate"); + var endDate = this.get("endDate"); + var data = this.get("model.products_col") - result.map(item => { - //selected.push(String(item.id)) - selected[String(item.id)] = this.getPrimariesSecondaries2(parseInt(item.id)) - self.set('vistkNetworkService.updated', new Date()); - d3.selectAll(`.tooltip_${item.id}_${elementId}`).classed('d-none', false); - }); - } + console.log(this.get("model")) - }), + var data_filtered = data.filter(item => item.year >= startDate && item.year <= endDate); + return data_filtered - rangeYears: computed('firstYear', 'lastYear', function(){ - var min = this.get("firstYear"); - var max = this.get("lastYear"); - return [...Array(max - min + 1).keys()].map(i => i + min); }), - location: computed("departmentCityFilterService.name", function (){ - this.get("departmentCityFilterService.data") - this.get('buildermodSearchService.search') - return this.get("departmentCityFilterService.name"); - }), - locationId: computed("departmentCityFilterService.id", function (){ - return this.get("departmentCityFilterService.id"); - }), - filteredDataTable: computed("model", 'vistkNetworkService.updated', 'departmentCityFilterService.data', 'endDate', function () { + filteredDataTable: computed("model", 'vistkNetworkService.updated', 'endDate', function () { var selectedProducts = this.get("selectedProducts") + var productsData = this.get("productsData") var result = productsData.filter(item => Object.keys(selectedProducts).includes(String(item.id))) return result }), - productSpace: computed.alias('model.metaData.productSpace'), - industrySpace: computed.alias('model.metaData.industrySpace'), - productsData: computed('model', 'endDate', 'departmentCityFilterService.data', 'VCRValue', 'categoriesFilterList', function () { + filteredDataTable2: computed("model", 'vistkScatterplotService.updated', 'endDate', function () { - var id = this.get("departmentCityFilterService.id"); - var startDate = this.get("startDate"); - var endDate = this.get("endDate"); + var selectedProducts = this.get("vistkScatterplotService.selected") - return this.get("model.industries_col").filter(item => item.year >= startDate && item.year <= endDate); + console.log(selectedProducts) + var productsData = this.get("productsData") + var result = productsData.filter(item => selectedProducts.includes(item.id)) + return result }), - dateExtent: computed('model', function() { - //this.set('startDate', this.get('lastYear')); - //this.set('endDate', this.get('lastYear')); - return [this.get('firstYear'), this.get('lastYear')]; - }), - productsDataValues: computed('model', function(){ + inmutableProductsData: computed.oneWay('model.productsData'), + industriesData: computed.oneWay('model.industriesData'), - var locations = Object.entries(this.get('model.metaData.products')) + otherPossibleGraphs: computed('model.visualization', 'model.source', function() { + return [ + { type: 'similarity', description: 'graph_builder.change_graph.similarity_description', available: true, name: 'Mapa de productos' }, + { type: 'scatter', description: 'graph_builder.change_graph.scatter_description', available: true, name: 'Productos con mayor potencial' }, + ]; + }), - return locations.filter(item => item[1].level === "4digit").map((item) => { + rangeYears: computed('firstYear', 'lastYear', function(){ - var name = get(item[1], `name_short_${this.get('i18n').display}`) + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) - return {id:item[1].id, text: `${name} (${item[1].code})`} - }) + var min = this.get("firstYear") + var max = this.get("lastYear") + return [...Array(max - min + 1).keys()].map(i => i + min); }), - placeHolderText: computed('i18n.locale', 'source', function(){ - return this.get('i18n').t(`visualization.source.${this.get('source')}`).string - }), + filteredProductsData: computed('model', 'startDate', 'endDate', function (){ + var products = this.get("model.allProducts") - filteredDataAsync: observer("departmentCityFilterService.id", function () { + return products.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + }), - var id = this.get("departmentCityFilterService.id"); - var productsMetadata = this.get("model.metaData.products") - var self = this + filteredPartnersData: computed('model', 'startDate', 'endDate', function (){ - var products = $.getJSON(`${apiURL}/data/location/${id}/products?level=4digit`) + var partners = this.get("model.allPartners") + return partners.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")) + }), - var promises = [products] + hasTimeseries: computed.notEmpty('model.timeseries'), + hasOccupationData: computed.notEmpty('model.occupations'), + hasProductsData: computed.notEmpty('model.productsData'), + hasIndustriesData: computed.notEmpty('model.industriesData'), - var result = RSVP.allSettled(promises).then((array) => { - let productsData = array[0].value.data; + hasAgproductsData: computed.notEmpty('model.agproductsData'), + hasLanduseData: computed.notEmpty('model.landusesData'), - let productsDataResponse = _.reduce(productsData, (memo, d) => { - let product = productsMetadata[d.product_id]; - product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); - memo.push(_.merge(d, product)); - return memo; - }, []); + isCountry: computed.equal('model.level', 'country'), + isDepartment: computed.equal('model.level','department'), + isMsa: computed.equal('model.level','msa'), + isMunicipality: computed.equal('model.level','municipality'), + showExports: false, - self.set("departmentCityFilterService.data", productsDataResponse) + productSpace: computed.alias('model.metaData.productSpace'), + industrySpace: computed.alias('model.metaData.industrySpace'), - return productsDataResponse - }); + locationId: computed('model.id','model.level', function() { + return this.get('model.id'); }), - - filterData: computed('source', function(){ - return this.get('productsDataValues'); + imageCode: computed('model.level', 'model.code', function() { + if(this.get('isDepartment') || this.get('isCountry')) { + return this.get('model.code'); + } else { + return (this.get('model.code')).substring(0,2); + } }), - - dataNull: [], - - - occupationsData: computed.alias('model.occupationsData'), - modelData: computed.alias('model.entity'), - exportDataLocations: computed('model.data', 'startDate', function (){ - return this.get("model.locationsData").filter(item => item.year === this.get("startDate")); + productsSortedByExports: computed('productsData', function() { + return _.slice(_.sortBy(this.get('productsData'), function(d) { return -d.export_value;}), 0, 50); + }), + exportTotal: computed('productsData', function() { + var total = _.reduce(this.get('productsData'), function(memo, data) { + return memo + data.export_value; + }, 0); + return '$' + numeral(total).format('0.0a') + ' USD'; + }), + lastIndustryData: computed.filter('industriesData', function(datum) { + return parseInt(get(datum, 'year')) === this.get('lastYear'); }), + graphbuilderLink: computed('model.id', function() { + return `location-${this.get('model.id')}`; + }), + description: computed('model.name', 'i18n.locale', function() { + return this.get(`model.description_${this.get('i18n.display')}`); + }), + actions: { + toggleVisualization: function(visualization) { + this.set("visualization", visualization) + this.set("vistkScatterplotService.selected", []) + this.set("vistkScatterplotService.updated", new Date()) + }, + showExports(value) { + this.set('showExports', value); + }, + setStartYear(){ + + var year = parseInt($("#selectYear").val()) + + this.set('startDate', year) + this.set('endDate', year) + }, + } }); + diff --git a/app/controllers/location/productmappotential.js b/app/controllers/location/productmappotential.js new file mode 100644 index 00000000..371fe259 --- /dev/null +++ b/app/controllers/location/productmappotential.js @@ -0,0 +1,211 @@ +import Ember from 'ember'; +import numeral from 'numeral'; +const {computed, get:get, observer} = Ember; + +export default Ember.Controller.extend({ + i18n: Ember.inject.service(), + vistkScatterplotService: Ember.inject.service(), + buildermodSearchService: Ember.inject.service(), + featureToggle: Ember.inject.service(), + queryParams: ['startDate', 'endDate'], + + search: null, + rcaFilter: 'less', + filterCategory: true, + categoriesFilterList: [], + + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + censusYear: computed.alias('featureToggle.census_year'), + + source: "products", + metadata: computed.alias('model.metaData'), + entityType: computed.alias('model.entity_type'), + entityId: computed.alias('model.entity.id'), + variable: computed.alias('model.variable'), + + rangeYears: computed('firstYear', 'lastYear', function(){ + + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + + var min = this.get("firstYear") + var max = this.get("lastYear") + return [...Array(max - min + 1).keys()].map(i => i + min); + }), + + productsDataValues: computed('model', function(){ + + var locations = Object.entries(this.get('model.metaData.products')) + + return locations.filter(item => item[1].level === "4digit").map((item) => { + + var name = get(item[1], `name_short_${this.get('i18n').display}`) + + return {id:item[1].id, text: `${name} (${item[1].code})`} + }) + }), + + filterData: computed('source', function(){ + return this.get('productsDataValues'); + }), + + placeHolderText: computed('i18n.locale', 'source', function(){ + return this.get('i18n').t(`visualization.source.${this.get('source')}`).string + }), + + filterToSelectedYears: function(data, start, end) { + let timeRange = d3.range(parseInt(start), parseInt(end) + 1); // Makes the range inclusive + return _.filter(data, function(d) { + return _.contains(timeRange, get(d, 'year')); + }); + }, + + immutableData: computed('model.products_col.[]','endDate', 'startDate' , function() { + return this.filterToSelectedYears(this.get('model.products_col'), this.get('startDate'), this.get('endDate')); + }), + + filteredData: computed('model.products_col.[]','endDate', 'startDate' , 'categoriesFilterList',function() { + + let rca = this.get('rca'); + let rcaFilter = this.get('rcaFilter'); + let data = this.get('immutableData'); + var newData = data.map(a => Object.assign({}, a)); + + let categoriesFilter = this.get('categoriesFilterList'); + + return newData.map(item => { + if(categoriesFilter.length > 0){ + if(categoriesFilter.includes(item.parent_name_es)){ + return item + } + else{ + item.color = "#ccc" + return item + } + } + else{ + return item + } + }); + + }), + + searchFilter: observer('buildermodSearchService.search', function() { + + console.log("searchFilter") + + var data = this.get("model.metaData.products"); + var selected = this.get("vistkScatterplotService.selected"); + let search = _.deburr(this.get('buildermodSearchService.search')); + var self = this; + var elementId = this.get("elementId"); + var initialSelectedProducts = this.get("initialSelectedProducts") + + if(search === ""){ + + //this.set("vistkScatterplotService.selected", []); + //this.set("vistkScatterplotService.updated", new Date()); + } + else { + var regexp = new RegExp(search.replace(/(\S+)/g, function(s) { return "\\b(" + s + ")(.*)"; }) + .replace(/\s+/g, ''), "gi"); + + + var result = _.filter(data, (d) => { + let parentName = get(d,`parent_name_${this.get('i18n').display}`); + let longName = get(d,`name_${this.get('i18n').display}`); + let shortName = get(d,`name_short_${this.get('i18n').display}`); + let code = get(d, 'code'); + + var result_city = _.deburr(`${shortName} ${longName} ${code}`).match(regexp) + + if(result_city !== null){ + return result_city; + } + return _.deburr(`${parentName} ${code}`).match(regexp); + }); + + + result.map(item => { + if(!selected.includes(item.id)){ + selected.push(item.id); + self.set("vistkScatterplotService.updated", new Date()); + d3.selectAll(`.tooltip_${item.id}`).classed('d-none', false); + } + //selected[String(item.id)] = this.getPrimariesSecondaries2(parseInt(item.id)) + //self.set('vistkNetworkService.updated', new Date()); + //d3.selectAll(`.tooltip_${item.id}_${elementId}`).classed('d-none', false); + }); + } + + }), + + filteredDataTable: computed('immutableData' , 'vistkScatterplotService.updated',function() { + + let data = this.get('immutableData'); + var updated = this.get("vistkScatterplotService.updated"); + var selected = this.get("vistkScatterplotService.selected"); + + console.log(selected) + + var result = data.filter(item => { + if(selected.includes(item.id)){ + return true; + } + }); + + return result + + }), + + modelData: computed('model.data.[]', function() { + console.log(this.get("model")) + return this.get('model.products_col'); + }), + + varDependent: computed('variable', 'source', function() { + return 'export_value'; + }), + + maxValue: computed('filteredData.[]', 'varDependent', function () { + let varDependent = this.get('varDependent'); + return d3.max(this.get('filteredData'), function(d) { return Ember.get(d, varDependent); }); + }), + + scale: computed('maxValue', 'varDependent', function(){ + let varDependent = this.get('varDependent'); + if(_.isUndefined(varDependent)){ + return d3.scale.quantize() + .range(d3.range(5).map(function(i) { return 'q' + i + '-5'; })); + } + return d3.scale.quantize() + .domain([0, this.get('maxValue')]) + .range(d3.range(5).map(function(i) { return 'q' + i + '-5'; })); + }), + + dateExtent: computed('model.products_col.[]', function() { + if(this.get('model.products_col').length) { + return d3.extent(this.get('model.products_col'), function(d) { return d.year; }); + } + return [this.get('firstYear'), this.get('lastYear')]; + }), + + isFiltered: computed('search', function() { + return Boolean(this.get('search')); + }), + + graph: computed('model.metaData', 'source', function() { + let source = this.get('source'); + if(source === 'industries') { + return this.get('model.metaData.industrySpace'); + } else if (source === 'products') { + return this.get('model.metaData.productSpace'); + } + }), + + + + +}); + diff --git a/app/router.js b/app/router.js index 7550f6d0..7eb1b007 100644 --- a/app/router.js +++ b/app/router.js @@ -37,7 +37,16 @@ export default Router.map(function() { this.route('show', {path: ':location_id'}); this.route('abstract', {path: ':location_id/abstract/'}); this.route('route', {path: ':location_id/route/'}); + + + + this.route('productmap', {path: ':location_id/route/product_map/'}); + this.route('productmappotential', {path: ':location_id/route/product_map/potential/'}); + + + + this.route('productmapdetail', {path: ':location_id/route/product_map/detail/'}); this.route('productmapprimaries', {path: ':location_id/route/product_map/primaries/'}); @@ -48,7 +57,15 @@ export default Router.map(function() { this.route('locationimports', {path: ':location_id/route/imports/'}); this.route('locationwages', {path: ':location_id/route/wages/'}); + + + this.route('complexsectors', {path: ':location_id/route/complex_sectors/'}); + + + + + this.route('potential', {path: ':location_id/route/potential/'}); this.route('complexsectorsdetail', {path: ':location_id/route/complex_sectors/detail/'}); diff --git a/app/routes/location/complexsectors.js b/app/routes/location/complexsectors.js index d80f3f7b..ae376af1 100644 --- a/app/routes/location/complexsectors.js +++ b/app/routes/location/complexsectors.js @@ -22,7 +22,7 @@ export default Ember.Route.extend({ let hash = { model: this.store.find('location', params.location_id), - industries_col: $.getJSON(`${apiURL}/data/location/${params.location_id}/industries?level=class`), + products_col: $.getJSON(`${apiURL}/data/location/${params.location_id}/products?level=4digit`), } return RSVP.hash(hash).then((hash) => { @@ -32,31 +32,27 @@ export default Ember.Route.extend({ //return this.store.find('product', params.product_id); }, departmentsDataMunging(hash) { - let {model, industries_col} = hash; - let industriesMetadata = this.modelFor('application').industries; - var industriesDataIndex = _.indexBy(getWithDefault(industries_col, 'data', []), 'industry_data'); + let {model, products_col} = hash; + let productsMetadata = this.modelFor('application').products; + var productsDataIndex = _.indexBy(getWithDefault(products_col, 'data', []), 'product_id'); //get products data for the department - let industries = _.reduce(industries_col.data, (memo, d) => { - let industry = industriesMetadata[d.industry_id]; - if(model.id === '0') { d.rca = 1; } - let industryData = industriesDataIndex[d.industry_id]; - industry.complexity = _.result(_.find(industry.pci_data, { year: d.year}), 'complexity'); - memo.push(_.merge(d, industry, industryData)); - return memo; - }, []); + let products = _.reduce(products_col.data, (memo, d) => { + let product = productsMetadata[d.product_id]; + product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); + memo.push(_.merge(d, product)); + return memo; + }, []); return Ember.Object.create({ entity: model, - industries_col: industries, + products_col: products, metaData: this.modelFor('application') }); }, setupController(controller, model) { //this.set('buildermodSearchService.search', null); this._super(controller, model); - startDate: this.get('firstYear') - endDate: this.get('lastYear') window.scrollTo(0, 0); }, resetController(controller, isExiting) { diff --git a/app/routes/location/productmappotential.js b/app/routes/location/productmappotential.js new file mode 100644 index 00000000..ae376af1 --- /dev/null +++ b/app/routes/location/productmappotential.js @@ -0,0 +1,65 @@ +import Ember from 'ember'; +import ENV from '../../config/environment'; + +const {apiURL} = ENV; + +const {RSVP, computed, copy, get, $, set, getWithDefault} = Ember; + +export default Ember.Route.extend({ + + i18n: Ember.inject.service(), + featureToggle: Ember.inject.service(), + buildermodSearchService: Ember.inject.service(), + firstYear: computed.alias('featureToggle.first_year'), + lastYear: computed.alias('featureToggle.last_year'), + + queryParams: { + startDate: { refreshModel: false }, + endDate: { refreshModel: false }, + }, + + model(params) { + + let hash = { + model: this.store.find('location', params.location_id), + products_col: $.getJSON(`${apiURL}/data/location/${params.location_id}/products?level=4digit`), + } + + return RSVP.hash(hash).then((hash) => { + return this.departmentsDataMunging(hash); + }); + + //return this.store.find('product', params.product_id); + }, + departmentsDataMunging(hash) { + let {model, products_col} = hash; + let productsMetadata = this.modelFor('application').products; + var productsDataIndex = _.indexBy(getWithDefault(products_col, 'data', []), 'product_id'); + + //get products data for the department + let products = _.reduce(products_col.data, (memo, d) => { + let product = productsMetadata[d.product_id]; + product.complexity = _.result(_.find(product.pci_data, { year: d.year }), 'pci'); + memo.push(_.merge(d, product)); + return memo; + }, []); + + return Ember.Object.create({ + entity: model, + products_col: products, + metaData: this.modelFor('application') + }); + }, + setupController(controller, model) { + //this.set('buildermodSearchService.search', null); + this._super(controller, model); + window.scrollTo(0, 0); + }, + resetController(controller, isExiting) { + + if (isExiting) { + controller.setProperties({ + }); + } + } +}); diff --git a/app/styles/components/_visualizations/_scatterplot.scss b/app/styles/components/_visualizations/_scatterplot.scss index cd1f50fe..99a82048 100755 --- a/app/styles/components/_visualizations/_scatterplot.scss +++ b/app/styles/components/_visualizations/_scatterplot.scss @@ -38,5 +38,6 @@ } .items__mark__text{ - fill: white; + fill: $colorThree; } + diff --git a/app/templates/location/complexsectors.hbs b/app/templates/location/complexsectors.hbs index f7016fcd..f1721c8d 100644 --- a/app/templates/location/complexsectors.hbs +++ b/app/templates/location/complexsectors.hbs @@ -1,7 +1,279 @@ -
    -

    CASO 34

    +{{component "stream-header" model=model.entity type='location' extra_type="location_route" firstYear=firstYear lastYear=lastYear}} + + +
    +
    + +
    +
    +

    Filtrar por Año

    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    + +
    + {{partial "partials/buildermod-drawer-change-graph-products"}} +
    + +
    + +{{#if (is-equal visualization "similarity") }} + +
    + + +
    + +
    +
    + + + + + + + +
    +
    + +
    +
    +

    ALTO NIVEL DE COMPLEJIDAD

    +
    +
    +

    BAJO NIVEL DE COMPLEJIDAD

    +
    +
    +

    {{vistkNetworkService.updated}}

    +
    + {{vistk-network + data=productsData + immutableData=productsData + elementId=elementId + dataType='products' + metadata=model.metaData + varDependent='employment' + graph=productSpace + height=600 + delay=3500 + showMiddle=true + filterCategory=true + title="SECTORES DE" + subtitle="LOS PRODUCTOS" + selected=model.entity.id + canFilterVcr=true + VCRValue=VCRValue + categoriesFilterList=categoriesFilterList + selectedProducts=selectedProducts + show10=true + }} +
    + +
    + + +
    + + +
    + +
    + {{#link-to 'location.complexsectorsdetail' model.entity.id (query-params startDate=startDate endDate=startDate) + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    + +
    + + +
    +
    +
    + {{ + datlas-table + data=filteredDataTable + source="industries" + entityType="industries" + elementId="industriesTable" + }} +
    +
    +
    + +{{/if}} + + +{{#if (is-equal visualization "scatter") }} + +
    + + +
    + +
    +
    + + + + + + + +
    +
    + +
    + +
    +

    {{vistkScatterplotService.updated}}

    +

    {{vistkScatterplotService.selected}}

    +

    {{buildermodSearchService.search}}

    +
    + {{vistk-scatterplot + classNames='buildermod__viz' + immutableData=productsData + modelData=modelData + data=productsData + dataType='industries' + varDependent=varDependent + scale=scale + startDate=startDate + dateExtent=dateExtent + endDate=endDate + metadata=metadata + isFiltered=false + entityType=entityType + entityId=entityId + variable=variable + graph=productSpace + elementId="scatterplot" + + metadata=model.metaData + varDependent='export_value' + + filterCategory=true + title="SECTORES DE" + subtitle="LOS PRODUCTOS" + selected=model.entity.id + canFilterVcr=false + VCRValue=VCRValue + categoriesFilterList=categoriesFilterList + show10=true + }} +
    + +
    + + +
    + + +
    + +
    + {{#link-to 'location.potential' model.entity.id (query-params startDate=startDate endDate=startDate) + class="btn btn-outline-secondary" + }} + + VER MAS + {{/link-to}} +
    + +
    + + +
    +
    +
    + {{ + datlas-table + data=filteredDataTable2 + source="products" + entityType="products" + elementId="industriesTable2" + }} +
    +
    +
    + +{{/if}} + +
    diff --git a/app/templates/location/productmap.hbs b/app/templates/location/productmap.hbs index cb01c024..1f9a9597 100644 --- a/app/templates/location/productmap.hbs +++ b/app/templates/location/productmap.hbs @@ -161,7 +161,7 @@
    -
    +
    @@ -248,7 +248,7 @@
    - {{#link-to 'location.productmap' model.entity.id (query-params startDate=startDate endDate=startDate) + {{#link-to 'location.productmappotential' model.entity.id (query-params startDate=startDate endDate=startDate) class="btn btn-outline-secondary" }} diff --git a/app/templates/location/productmappotential.hbs b/app/templates/location/productmappotential.hbs new file mode 100644 index 00000000..f9c99fe8 --- /dev/null +++ b/app/templates/location/productmappotential.hbs @@ -0,0 +1,110 @@ +{{component "stream-header" model=model.entity type='location' extra_type="location_route" firstYear=firstYear lastYear=lastYear}} + + +
    +
    +
    + {{ + component 'buildermod-search' + source=source + filterData=filterData + placeHolderText=placeHolderText + visualization=visualization + startDate=startDate + endDate=endDate + dateExtent=dateExtent + canYearToggle=true + isScatter=false + rcaFilter=false + isSingleYearData=isSingleYearData + source=source + search=search + }} +
    +
    +
    + +
    + + +
    +
    +
    +

    {{vistkScatterplotService.updated}}

    +

    {{vistkScatterplotService.selected}}

    +

    {{buildermodSearchService.search}}

    + {{vistk-scatterplot + classNames='buildermod__viz' + immutableData=immutableData + modelData=modelData + data=filteredData + dataType=source + varDependent=varDependent + scale=scale + startDate=startDate + dateExtent=dateExtent + endDate=endDate + metadata=metadata + isFiltered=isFiltered + entityType=entityType + entityId=entityId + variable=variable + search=search + graph=graph + elementId=source + toolTips=toolTips + range=range + canUpdateBuildermodSearchService=canUpdateBuildermodSearchService + filterCategory=true + resetFilter=resetFilter + canFilterVcr=false + title="PRODUCTOS" + subtitle="POR SECTOR" + groupByParent=groupByParent + categoriesFilterList=categoriesFilterList + }} + + +
    +
    +
    + +
    + + +
    +
    +
    + + {{ + datlas-table + data=filteredDataTable + source=source + entityType=entityType + search=search + startDate=startDate + endDate=endDate + elementId="sourceTable" + title_data=(is-concat endDate ' - ' variableTitle ' - ' model.entity.name ' (' model.entity.code ')') + }} + +
    +
    +
    + +
    +
    + {{#link-to 'location.productmap' model.entity.id (query-params startDate=startDate endDate=endDate) + class="btn btn-outline-secondary" + }} + ANTERIOR + {{/link-to}} +
    + +
    From ad4fe035b9ab97b8fa5691dd6f6c04a9005f45df Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Sun, 3 Oct 2021 17:08:33 -0500 Subject: [PATCH 051/126] Release 0.18.1 --- app/components/vistk-network.js | 74 +++++++++++++++++- app/components/vistk-scatterplot.js | 2 - app/controllers/location/complexsectors.js | 5 -- app/controllers/location/potential.js | 3 - app/controllers/location/productmap.js | 5 -- .../location/productmappotential.js | 5 -- app/controllers/location/show.js | 5 +- app/controllers/visualization.js | 7 ++ app/routes/location/show.js | 4 + app/templates/components/zoomable-treemap.hbs | 18 +++-- .../location/-department-dotplots.hbs | 15 +++- .../location/-municipality-dotplots.hbs | 18 +++-- .../location/-subregion-dotplots.hbs | 16 ++-- app/templates/visualization.hbs | 39 ++++++++- public/assets/img/infografias/census.png | Bin 0 -> 51404 bytes 15 files changed, 165 insertions(+), 51 deletions(-) create mode 100644 public/assets/img/infografias/census.png diff --git a/app/components/vistk-network.js b/app/components/vistk-network.js index e0b46c40..6a1466c9 100644 --- a/app/components/vistk-network.js +++ b/app/components/vistk-network.js @@ -22,6 +22,7 @@ export default Ember.Component.extend({ let indexedData = _.indexBy(this.get('data'), 'id'); let metadataIndex = this.get('dataMetadata'); + var toolTipsData = this.get('toolTipsData'); var networkData = _.map(this.get('nodes'), function(d) { let datum = indexedData[d.id] || metadataIndex[d.id]; @@ -34,6 +35,7 @@ export default Ember.Component.extend({ d[this.get('varDependent')] = datum[this.get('varDependent')]; d[this.get('varRCA')] = datum[this.get('varRCA')]; d[this.get('varAmount')] = datum[this.get('varAmount')]; + toolTipsData.map(value => { d[value] = datum[value] }) } return d; }, this); @@ -111,12 +113,12 @@ export default Ember.Component.extend({ return result_object }, - network: computed('data.[]', 'varDependent', 'dataType', 'vis', 'i18n.locale', 'toolTipsData', 'categoriesFilterList', 'vistkNetworkService.updated', function() { + network: computed('data.[]', 'varDependent', 'dataType', 'vis', 'i18n.locale', 'toolTipsData', 'categoriesFilterList', function() { + let vistkLanguage = this.get('i18n.display') === 'es' ? 'es_ES': 'en_EN'; var selectedProducts = this.get("selectedProducts"); - //console.log(selectedProducts) var VCRValue = this.get("VCRValue"); var categoriesFilter = this.get("categoriesFilterList"); @@ -131,7 +133,7 @@ export default Ember.Component.extend({ VCRValue = 1 } - var tooltips = ["employment", "complexity"]; + var tooltips = this.get("toolTipsData"); var self = this; var width = self.get("width"); var height = self.get("height"); @@ -421,6 +423,69 @@ export default Ember.Component.extend({ } }), + formatNumber: (number, key, i18n) => { + var decimalVars = [ + 'export_rca', + 'eci', + 'industry_eci', + 'rca', + 'complexity', + 'distance', + 'cog', + 'coi', + 'industry_coi', + 'population', + 'yield_ratio', + 'yield_index', + 'average_livestock_load', + ]; + var percentVars = [ + 'share', + 'employment_growth' + ]; + var wageVarsInThousands = [ + 'wages', + 'avg_wages', + 'avg_wage', + ]; + var moneyVars = [ + 'gdp_pc_real', + 'gdp_real', + ]; + var largeNumbers = [ + 'export_value', + 'import_value', + 'monthly_wages', + 'average_wages', + 'area', + 'production_tons', + 'land_sown', + 'land_harvested', + 'num_farms', + 'num_livestock', + ]; + + if(_.include(wageVarsInThousands, key)){ + return numeral(number).divide(1000).format('0,0'); + } else if(_.include(decimalVars, key)){ + return numeral(number).format('0.00a'); + } else if(key === 'employment'){ + return numeral(Math.ceil(number)).format('0,0'); + } else if(key === 'num_establishments' || key === 'export_num_plants'){ + if(parseInt(number) < 6) { + return i18n.t('graph_builder.table.less_than_5'); + } + return numeral(number).format('0,0'); + } else if(_.include(percentVars, key)){ + return numeral(number).format('0.00%'); + } else if(_.include(largeNumbers, key)) { + return numeral(number).format('0,0'); + } else if(_.include(moneyVars, key)) { + return numeral(number).format('$0.00a'); + } else { + return number; + } + }, inmutableNestedData: computed('inmutableDataInternal.[]', 'varDependent', 'i18n.locale', 'toolTips', function () { var data = this.get('data'); @@ -583,7 +648,7 @@ export default Ember.Component.extend({ //var updated = this.get("inmutableDataInternal").filter(item => categoriesFilter.includes(item.parent_name_es) ) this.set("vistkNetworkService.categoriesFilter", categoriesFilter) }), - update: observer('data.[]', 'varDependent', 'i18n.locale', function() { + update: observer('data.[]', 'varDependent', 'i18n.locale', 'categoriesFilterList', function() { if(!this.element){ return false; } //do not redraw if not there @@ -709,6 +774,7 @@ export default Ember.Component.extend({ } this.set("categoriesFilterList", categoriesFilter); + this.set("vistkNetworkService.categoriesFilter", categoriesFilter) //this.set("treemapService.filter_update", new Date()) //this.set("treemapService.filter_updated_data", updatedData) diff --git a/app/components/vistk-scatterplot.js b/app/components/vistk-scatterplot.js index 411a1563..e1ba2935 100644 --- a/app/components/vistk-scatterplot.js +++ b/app/components/vistk-scatterplot.js @@ -440,8 +440,6 @@ export default Ember.Component.extend({ // definitely is not a scatterplot component concern this.set("inmutableDataInternal", this.get("data")); - console.log( $(".js-range-slider")) - let id = this.get('entityId'); let locationLevel = this.get(`metadata.locations.${id}.level`); diff --git a/app/controllers/location/complexsectors.js b/app/controllers/location/complexsectors.js index c3f0e388..fd6869d7 100644 --- a/app/controllers/location/complexsectors.js +++ b/app/controllers/location/complexsectors.js @@ -37,7 +37,6 @@ export default Ember.Controller.extend({ elementId: 'product_space', entityId: computed.alias('model.entity.id'), modelData: computed('model.data.[]', function() { - console.log(this.get("model")) return this.get('model.products_col'); }), varDependent: computed('variable', 'source', function() { @@ -72,8 +71,6 @@ export default Ember.Controller.extend({ var endDate = this.get("endDate"); var data = this.get("model.products_col") - console.log(this.get("model")) - var data_filtered = data.filter(item => item.year >= startDate && item.year <= endDate); return data_filtered @@ -95,8 +92,6 @@ export default Ember.Controller.extend({ var selectedProducts = this.get("vistkScatterplotService.selected") - console.log(selectedProducts) - var productsData = this.get("productsData") var result = productsData.filter(item => selectedProducts.includes(item.id)) diff --git a/app/controllers/location/potential.js b/app/controllers/location/potential.js index c9dc53be..ede861e3 100644 --- a/app/controllers/location/potential.js +++ b/app/controllers/location/potential.js @@ -145,8 +145,6 @@ export default Ember.Controller.extend({ var updated = this.get("vistkScatterplotService.updated"); var selected = this.get("vistkScatterplotService.selected"); - console.log(selected) - var result = data.filter(item => { if(selected.includes(item.id)){ return true; @@ -158,7 +156,6 @@ export default Ember.Controller.extend({ }), modelData: computed('model.data.[]', function() { - console.log(this.get("model")) return this.get('model.industries_col'); }), diff --git a/app/controllers/location/productmap.js b/app/controllers/location/productmap.js index c3f0e388..fd6869d7 100644 --- a/app/controllers/location/productmap.js +++ b/app/controllers/location/productmap.js @@ -37,7 +37,6 @@ export default Ember.Controller.extend({ elementId: 'product_space', entityId: computed.alias('model.entity.id'), modelData: computed('model.data.[]', function() { - console.log(this.get("model")) return this.get('model.products_col'); }), varDependent: computed('variable', 'source', function() { @@ -72,8 +71,6 @@ export default Ember.Controller.extend({ var endDate = this.get("endDate"); var data = this.get("model.products_col") - console.log(this.get("model")) - var data_filtered = data.filter(item => item.year >= startDate && item.year <= endDate); return data_filtered @@ -95,8 +92,6 @@ export default Ember.Controller.extend({ var selectedProducts = this.get("vistkScatterplotService.selected") - console.log(selectedProducts) - var productsData = this.get("productsData") var result = productsData.filter(item => selectedProducts.includes(item.id)) diff --git a/app/controllers/location/productmappotential.js b/app/controllers/location/productmappotential.js index 371fe259..e0aee677 100644 --- a/app/controllers/location/productmappotential.js +++ b/app/controllers/location/productmappotential.js @@ -93,8 +93,6 @@ export default Ember.Controller.extend({ searchFilter: observer('buildermodSearchService.search', function() { - console.log("searchFilter") - var data = this.get("model.metaData.products"); var selected = this.get("vistkScatterplotService.selected"); let search = _.deburr(this.get('buildermodSearchService.search')); @@ -147,8 +145,6 @@ export default Ember.Controller.extend({ var updated = this.get("vistkScatterplotService.updated"); var selected = this.get("vistkScatterplotService.selected"); - console.log(selected) - var result = data.filter(item => { if(selected.includes(item.id)){ return true; @@ -160,7 +156,6 @@ export default Ember.Controller.extend({ }), modelData: computed('model.data.[]', function() { - console.log(this.get("model")) return this.get('model.products_col'); }), diff --git a/app/controllers/location/show.js b/app/controllers/location/show.js index 8e7f27d7..f4f7792f 100644 --- a/app/controllers/location/show.js +++ b/app/controllers/location/show.js @@ -1,6 +1,6 @@ import Ember from 'ember'; import numeral from 'numeral'; -const {computed, get:get} = Ember; +const {computed, get:get, observer} = Ember; export default Ember.Controller.extend({ i18n: Ember.inject.service(), @@ -10,9 +10,10 @@ export default Ember.Controller.extend({ startDate: null, endDate: null, - categoriesFilterListlastProductsData: [], + categoriesFilterList: [], categoriesFilterListlastIndustryData: [], + firstYear: computed.alias('featureToggle.first_year'), lastYear: computed.alias('featureToggle.last_year'), censusYear: computed.alias('featureToggle.census_year'), diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index b89ce8c5..9768f17e 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -12,6 +12,13 @@ export default Ember.Controller.extend({ lastDataTableUpdate: null, lastDataUpdate: null, resetFilter: null, + showCensus: computed("model", function () { + var entity_type = this.get("model.entity_type") + if(["landUse","nonag", "livestock"].includes(entity_type)){ + return true + } + return false + }), queryParams: ['search', 'startDate', 'endDate', 'toolTips'], search: null, diff --git a/app/routes/location/show.js b/app/routes/location/show.js index e0c74bdb..cc98e0aa 100644 --- a/app/routes/location/show.js +++ b/app/routes/location/show.js @@ -298,6 +298,10 @@ export default Ember.Route.extend({ }, setupController(controller, model) { this._super(controller, model); + controller.setProperties({ + categoriesFilterList: [], + categoriesFilterListlastIndustryData: [] + }); this.controllerFor('application').set('entity', model.get('constructor.modelName')); this.controllerFor('application').set('entity_id', model.get('id')); window.scrollTo(0, 0); diff --git a/app/templates/components/zoomable-treemap.hbs b/app/templates/components/zoomable-treemap.hbs index 6ec42770..25f879d4 100644 --- a/app/templates/components/zoomable-treemap.hbs +++ b/app/templates/components/zoomable-treemap.hbs @@ -1,11 +1,3 @@ -
    -
    -
    - - -
    -
    -
    @@ -52,6 +44,16 @@ {{/each}}
    + +
    +
    +
    + + +
    +
    +
    +
    {{/if}} diff --git a/app/templates/location/-department-dotplots.hbs b/app/templates/location/-department-dotplots.hbs index 98818e95..17714bc9 100755 --- a/app/templates/location/-department-dotplots.hbs +++ b/app/templates/location/-department-dotplots.hbs @@ -232,7 +232,7 @@
    -
    +
    @@ -244,8 +244,9 @@ elementId='zoomable-export-value-treemap' class="position-relative" filterCategory=true - toolTips="rca,complexity" + toolTips="export_rca,complexity" groupByParent=true + title_filter=(is-concat 'Exportaciones, USD ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -262,6 +263,7 @@ filterCategory=true toolTips="rca,complexity" groupByParent=true + title_filter=(is-concat 'Importaciones, USD ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -277,6 +279,7 @@ class="position-relative" filterCategory=true groupByParent=true + title_filter=(is-concat 'Empleo Total ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -292,6 +295,7 @@ class="position-relative" filterCategory=true groupByParent=true + title_filter=(is-concat 'Nómina Salarial ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -307,7 +311,8 @@

    BAJO NIVEL DE COMPLEJIDAD

    -

    {{vistkNetworkService.updated}}

    +

    {{vistkNetworkService.updated}}

    +

    {{categoriesFilterList}}

    {{vistk-network @@ -324,7 +329,8 @@ filterCategory=true title="SECTORES DE" subtitle="LOS PRODUCTOS" - categoriesFilterList=categoriesFilterListlastProductsData + categoriesFilterList=categoriesFilterList + toolTips="complexity" }}
    @@ -348,6 +354,7 @@ title="SECTORES" subtitle="LOS PRODUCTOS" categoriesFilterList=categoriesFilterListlastIndustryData + toolTips="complexity" }}
    diff --git a/app/templates/location/-municipality-dotplots.hbs b/app/templates/location/-municipality-dotplots.hbs index 0c1fdbed..674735eb 100644 --- a/app/templates/location/-municipality-dotplots.hbs +++ b/app/templates/location/-municipality-dotplots.hbs @@ -111,7 +111,7 @@
    -
    +
    @@ -123,8 +123,9 @@ elementId='zoomable-export-value-treemap' class="position-relative" filterCategory=true - toolTips="rca,complexity" + toolTips="export_rca,complexity" groupByParent=true + title_filter=(is-concat 'Exportaciones, USD ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -141,6 +142,7 @@ filterCategory=true toolTips="rca,complexity" groupByParent=true + title_filter=(is-concat 'Importaciones, USD ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -156,6 +158,7 @@ class="position-relative" filterCategory=true groupByParent=true + title_filter=(is-concat 'Empleo Total ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -171,6 +174,7 @@ class="position-relative" filterCategory=true groupByParent=true + title_filter=(is-concat 'Nómina Salarial ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -203,7 +207,8 @@ filterCategory=true title="SECTORES DE" subtitle="LOS PRODUCTOS" - type="productSpace" + categoriesFilterList=categoriesFilterList + toolTips="complexity" }}
    @@ -213,20 +218,21 @@
    - {{vistk-network + {{vistk-network data=lastIndustryData immutableData=lastIndustryData elementId='industry-space' dataType='industries' metadata=model.metaData - varDependent='export_value' + varDependent='wages' graph=industrySpace height=600 delay=2000 filterCategory=true title="SECTORES" subtitle="LOS PRODUCTOS" - type="industrySpace" + categoriesFilterList=categoriesFilterListlastIndustryData + toolTips="complexity" }}
    diff --git a/app/templates/location/-subregion-dotplots.hbs b/app/templates/location/-subregion-dotplots.hbs index 87a5e1ab..66a9ad95 100755 --- a/app/templates/location/-subregion-dotplots.hbs +++ b/app/templates/location/-subregion-dotplots.hbs @@ -94,7 +94,7 @@
    -
    +
    @@ -106,8 +106,9 @@ elementId='zoomable-export-value-treemap' class="position-relative" filterCategory=true - toolTips="rca,complexity" + toolTips="export_rca,complexity" groupByParent=true + title_filter=(is-concat 'Exportaciones, USD ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -124,6 +125,7 @@ filterCategory=true toolTips="rca,complexity" groupByParent=true + title_filter=(is-concat 'Importaciones, USD ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -139,6 +141,7 @@ class="position-relative" filterCategory=true groupByParent=true + title_filter=(is-concat 'Empleo Total ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -154,6 +157,7 @@ class="position-relative" filterCategory=true groupByParent=true + title_filter=(is-concat 'Nómina Salarial ' '(' lastYear ')' ' - ' model.name ' (' model.code ')') }}
    @@ -186,7 +190,8 @@ filterCategory=true title="SECTORES DE" subtitle="LOS PRODUCTOS" - type="productSpace" + categoriesFilterList=categoriesFilterList + toolTips="complexity" }}
    @@ -202,14 +207,15 @@ elementId='industry-space' dataType='industries' metadata=model.metaData - varDependent='export_value' + varDependent='wages' graph=industrySpace height=600 delay=2000 filterCategory=true title="SECTORES" subtitle="LOS PRODUCTOS" - type="industrySpace" + categoriesFilterList=categoriesFilterListlastIndustryData + toolTips="complexity" }} diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index bb142e5f..40d2ed6c 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -59,7 +59,42 @@ {{#unless hideVisualization }}
    -

    {{builderModHeader}}

    + +

    {{builderModHeader}}

    + {{#if showCensus }} + + + + + + + + {{/if}} +

    {{headerValue}}

    {{years}}

    @@ -87,7 +122,7 @@ }} -
    +
    {{component visualizationComponent classNames='buildermod__viz' diff --git a/public/assets/img/infografias/census.png b/public/assets/img/infografias/census.png new file mode 100644 index 0000000000000000000000000000000000000000..fea1ee3d6bbff01f5304adc9d8c5ac7fd1a60a7e GIT binary patch literal 51404 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 Date: Mon, 4 Oct 2021 16:20:35 -0500 Subject: [PATCH 052/126] Release 0.18.2 --- .../autocomplete-chained-input-datlas.js | 4 +- app/components/geo-map.js | 12 ++-- app/components/multiples-graph.js | 8 ++- app/components/small-multiples-set.js | 7 +- app/components/zoomable-treemap.js | 12 ++-- app/controllers/product/abstract.js | 15 ++-- app/controllers/visualization.js | 33 +++++++-- app/locales/es-col/translations.js | 2 + app/mixins/table-map.js | 12 ++++ app/routes/product/abstract.js | 18 ++++- app/routes/product/visualization.js | 2 + app/templates/components/zoomable-treemap.hbs | 6 +- .../location/-municipality-dotplots.hbs | 69 ------------------- app/templates/location/-questions.hbs | 4 +- app/templates/product/-questions.hbs | 12 ++-- app/templates/product/abstract.hbs | 13 ++-- app/templates/visualization.hbs | 39 ++++++----- 17 files changed, 130 insertions(+), 138 deletions(-) diff --git a/app/components/autocomplete-chained-input-datlas.js b/app/components/autocomplete-chained-input-datlas.js index 6ea87bc5..ae6ab5ac 100644 --- a/app/components/autocomplete-chained-input-datlas.js +++ b/app/components/autocomplete-chained-input-datlas.js @@ -122,7 +122,9 @@ export default Ember.Component.extend({ }); $eventSelect2.on("select2:select", function (e) { - + let text= $(`#${id_select2} option:selected`).text(); + self.set('search', text); + self.set("buildermodSearchService.search", text); }); }), didInsertElement: function() { diff --git a/app/components/geo-map.js b/app/components/geo-map.js index 5c86f14a..a6702a1a 100644 --- a/app/components/geo-map.js +++ b/app/components/geo-map.js @@ -38,12 +38,12 @@ export default Ember.Component.extend({ screens.prepend(img); var d = new Date(); - var title = self.get("title"); + var filename = self.get("filename"); var file_name = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() - if(title){ - file_name = title; + if(filename){ + file_name = filename; } html2canvas($(`.visualizationComponent_div`).get(0), { @@ -82,12 +82,12 @@ export default Ember.Component.extend({ var totalPDFPages = Math.ceil(HTML_Height / PDF_Height) - 1; var d = new Date(); - var title = self.get("title"); + var filename = self.get("filename"); var file_name = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() - if(title){ - file_name = title; + if(filename){ + file_name = filename; } html2canvas(containerElement, { diff --git a/app/components/multiples-graph.js b/app/components/multiples-graph.js index 9f904d49..eb738a19 100644 --- a/app/components/multiples-graph.js +++ b/app/components/multiples-graph.js @@ -423,7 +423,9 @@ export default Ember.Component.extend({ }, savePdf: function savePdf() { alert('Iniciando la descarga, este proceso tardará un momento.'); - var title = this.get("title"); + var filename = this.get("filename"); + + console.log(filename) var PDF_Width = 800; var PDF_Height = 600; @@ -434,8 +436,8 @@ export default Ember.Component.extend({ var d = new Date(); var file_name = d.getDate() + "-" + (d.getMonth() + 1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds(); - if(title){ - file_name = title; + if(filename){ + file_name = filename; } for (var domNode of domNodes) { diff --git a/app/components/small-multiples-set.js b/app/components/small-multiples-set.js index 8dae4631..1ea66e55 100644 --- a/app/components/small-multiples-set.js +++ b/app/components/small-multiples-set.js @@ -98,7 +98,8 @@ export default Ember.Component.extend({ actions: { savePdf: function savePdf() { alert('La descarga tardara un momento. Por favor espere...'); - var title = this.get("title"); + var filename = this.get("filename"); + var PDF_Width = 800; var PDF_Height = 600; var pdf = new jsPDF('l', 'pt', [PDF_Width, PDF_Height]); @@ -108,8 +109,8 @@ export default Ember.Component.extend({ var d = new Date(); var file_name = d.getDate() + "-" + (d.getMonth() + 1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds(); - if(title){ - file_name = title; + if(filename){ + file_name = filename; } for (var domNode of domNodes) { diff --git a/app/components/zoomable-treemap.js b/app/components/zoomable-treemap.js index 7d59ee10..272f1f8c 100644 --- a/app/components/zoomable-treemap.js +++ b/app/components/zoomable-treemap.js @@ -855,14 +855,14 @@ export default Ember.Component.extend({ savePng() { var id = `#${this.get("elementId")}_section`; - var title = this.get("title"); + var filename = this.get("filename"); var title_filter = this.get("title_filter"); var domNode = $(`${id}`).get(0); var d = new Date(); var file_name = d.getDate() + "-" + (d.getMonth() + 1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds(); - if(title){ - file_name = title; + if(filename){ + file_name = filename; } if(title_filter){ @@ -888,7 +888,7 @@ export default Ember.Component.extend({ savePdf() { var id = `#${this.get("elementId")}_section`; - var title = this.get("title"); + var filename = this.get("filename"); var title_filter = this.get("title_filter"); var domNodes = $(`${id}`); @@ -902,8 +902,8 @@ export default Ember.Component.extend({ var d = new Date(); var file_name = d.getDate() + "-" + (d.getMonth() + 1) + "-" + d.getFullYear() + " " + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds(); - if(title){ - file_name = title; + if(filename){ + file_name = filename; } if(title_filter){ diff --git a/app/controllers/product/abstract.js b/app/controllers/product/abstract.js index 96fe5e28..df023a29 100644 --- a/app/controllers/product/abstract.js +++ b/app/controllers/product/abstract.js @@ -35,7 +35,7 @@ export default Ember.Controller.extend({ return sorted; }), filteredDataLocationsTop5ExportOrder: computed('model', 'startDate', 'endDate', function (){ - return [[ 3, "desc" ]]; + return [[ 5, "desc" ]]; }), filteredDataLocationsTop5Import: computed('model', 'startDate', function (){ @@ -45,7 +45,7 @@ export default Ember.Controller.extend({ return sorted; }), filteredDataLocationsTop5ImportOrder: computed('model', 'startDate', 'endDate', function (){ - return [[ 3, "desc" ]]; + return [[ 5, "desc" ]]; }), exportDataCities: computed('model.data', 'startDate', function (){ @@ -60,7 +60,7 @@ export default Ember.Controller.extend({ return sorted; }), filteredDataCitiesTop5ExportOrder: computed('model', 'startDate', 'endDate', function (){ - return [[ 4, "desc" ]]; + return [[ 6, "desc" ]]; }), filteredDataCitiesTop5Import: computed('model.data', 'startDate', function (){ @@ -70,7 +70,7 @@ export default Ember.Controller.extend({ return sorted; }), filteredDataCitiesTop5ImportOrder: computed('model', 'startDate', 'endDate', function (){ - return [[ 4, "desc" ]]; + return [[ 6, "desc" ]]; }), @@ -82,10 +82,13 @@ export default Ember.Controller.extend({ var products = this.get("model.partnersData") var filtered = products.filter(item => item.year === this.get("startDate")) var sorted = _.slice(_.sortBy(filtered, function(d) { return -d.export_value;}), 0, 5); + + console.log(sorted) + return sorted; }), filteredDataPartnersTop5ExportOrder: computed('model', 'startDate', 'endDate', function (){ - return [[ 4, "desc" ]]; + return [[ 6, "desc" ]]; }), filteredDataPartnersTop5Import: computed('model.data', 'startDate', function (){ @@ -95,7 +98,7 @@ export default Ember.Controller.extend({ return sorted; }), filteredDataPartnersTop5ImportOrder: computed('model', 'startDate', 'endDate', function (){ - return [[ 4, "desc" ]]; + return [[ 5, "desc" ]]; }), actions: { diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index 9768f17e..ed065054 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -20,7 +20,7 @@ export default Ember.Controller.extend({ return false }), - queryParams: ['search', 'startDate', 'endDate', 'toolTips'], + queryParams: ['search', 'startDate', 'endDate', 'toolTips', 'showBack'], search: null, range: null, @@ -38,10 +38,13 @@ export default Ember.Controller.extend({ var source = this.get("source"); if(source == "cities"){ - return false + return false; } else if(source == "municipalities"){ - return false + return false; + } + else if(source == "partners"){ + return false; } return true }), @@ -593,6 +596,7 @@ export default Ember.Controller.extend({ return this.get('i18n').t(`general.${entityType}`); }), modelData: computed('model.data.[]', function() { + console.log(this.get("model")) if(this.get('source') === "departments" && this.get('visualization') === "treemap"){ return this.get('model.cities'); } @@ -617,6 +621,9 @@ export default Ember.Controller.extend({ else if(this.get('source') === "agproducts"){ return true; } + else if(this.get('source') === "partners"){ + return true; + } return false; }), canFilterVcr: computed('source', 'visualization', function(){ @@ -637,8 +644,19 @@ export default Ember.Controller.extend({ } return this.filterToSelectedYears(this.get('model.data'), this.get('startDate'), this.get('endDate')); }), + + addColorYears: computed("source", function () { + var source = this.get("source"); + if(["partners"].includes(source)){ + return false; + } + return true; + }), + filteredData: computed('immutableData.[]', 'startDate', 'endDate', 'rcaFilter', 'buildermodSearchService.search', 'treemapService.filter_update', 'search', function() { + var addColorYears = this.get("addColorYears"); + if(this.get("lastDataUpdate") !== this.get("treemapService.filter_update")){ this.set("lastDataUpdate", this.get("treemapService.filter_update")); @@ -668,9 +686,12 @@ export default Ember.Controller.extend({ } } - _.forEach(data, (d) => { - d.color = this.getColorYear(d.year); - }); + if(addColorYears){ + _.forEach(data, (d) => { + d.color = this.getColorYear(d.year); + }); + } + return data; }), diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index 9c5ca804..69ea0c47 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -424,6 +424,8 @@ export default { "graph_builder.settings.year.next": "Siguiente", "graph_builder.settings.year.previous": "Anterior", "graph_builder.table.agproduct": "Producto Agr\u00edcola", + "graph_builder.table.product": "Producto", + "graph_builder.table.product_code": "Código del producto", "graph_builder.table.area": "\u00c1rea (ha)", "graph_builder.table.average_livestock_load": "", "graph_builder.table.average_wages": "Salario mensual promedio, Col$ ", diff --git a/app/mixins/table-map.js b/app/mixins/table-map.js index c146d4d7..f6d0976e 100644 --- a/app/mixins/table-map.js +++ b/app/mixins/table-map.js @@ -200,6 +200,8 @@ export default Ember.Mixin.create({ let columns = [ { key: 'code' }, { key: 'name', copy: 'location' }, + { key: 'product_code' }, + { key: 'product_name_short_es', copy: 'product' }, { key: 'year' }, { key: 'export_value' }, { key: 'export_rca' }, @@ -213,6 +215,8 @@ export default Ember.Mixin.create({ let columns = [ { key: 'code' }, { key: 'name', copy: 'location' }, + { key: 'product_code' }, + { key: 'product_name_short_es', copy: 'product' }, { key: 'year' }, { key: 'import_value' }, { key: 'import_rca' }, @@ -235,6 +239,8 @@ export default Ember.Mixin.create({ { key: 'code' }, { key: 'name', copy: 'location' }, { key: 'parent_name', copy: 'parent.location' }, + { key: 'product_code' }, + { key: 'product_name_short_es', copy: 'product' }, { key: 'year' }, { key: 'export_value' }, { key: 'export_rca' }, @@ -252,6 +258,8 @@ export default Ember.Mixin.create({ { key: 'code' }, { key: 'name', copy: 'location' }, { key: 'parent_name', copy: 'parent.location' }, + { key: 'product_code' }, + { key: 'product_name_short_es', copy: 'product' }, { key: 'year' }, { key: 'import_value' }, { key: 'import_rca' }, @@ -401,6 +409,8 @@ export default Ember.Mixin.create({ { key: 'code' }, { key: 'name', copy: 'country' }, { key: 'parent', copy: 'parent.country' }, + { key: 'product_code' }, + { key: 'product_name_short_es', copy: 'product' }, { key: 'year' }, { key: 'export_value' } ]; @@ -412,6 +422,8 @@ export default Ember.Mixin.create({ { key: 'code' }, { key: 'name', copy: 'country' }, { key: 'parent', copy: 'parent.country' }, + { key: 'product_code' }, + { key: 'product_name_short_es', copy: 'product' }, { key: 'year' }, { key: 'import_value' } ]; diff --git a/app/routes/product/abstract.js b/app/routes/product/abstract.js index 22675e3b..5c9f791d 100644 --- a/app/routes/product/abstract.js +++ b/app/routes/product/abstract.js @@ -35,11 +35,17 @@ export default Ember.Route.extend({ let {model, locations, cities, partners} = hash; let locationsMetadata = this.modelFor('application').locations; let partnersMetadata = this.modelFor('application').partnerCountries; + let productsMetadata = this.modelFor('application').products; let locationsData = _.map(locations.data, (d) => { let location = locationsMetadata[d.department_id]; let department = copy(d); - return _.merge(department, location, {model: 'location'}); + return _.merge(department, location, { + model: 'location', + product_name_short_es: productsMetadata[d.product_id].name_short_es, + product_name_short_en: productsMetadata[d.product_id].name_short_en, + product_code: productsMetadata[d.product_id].code + }); }); let citiesData = _.map(cities.data, (d) => { @@ -51,6 +57,9 @@ export default Ember.Route.extend({ model: 'location', parent_name_en: locationsMetadata[location.parent_id].name_short_en, parent_name_es: locationsMetadata[location.parent_id].name_short_es, + product_name_short_es: productsMetadata[d.product_id].name_short_es, + product_name_short_en: productsMetadata[d.product_id].name_short_en, + product_code: productsMetadata[d.product_id].code } ); return result; @@ -64,7 +73,12 @@ export default Ember.Route.extend({ partner.parent_name_es = parent.name_es; partner.group = parent.id; d.model = null; - return _.merge(partner, parent, country); + return _.merge(partner, parent, country, { + model: 'location', + product_name_short_es: productsMetadata[d.product_id].name_short_es, + product_name_short_en: productsMetadata[d.product_id].name_short_en, + product_code: productsMetadata[d.product_id].code + }); }); return Ember.Object.create({ diff --git a/app/routes/product/visualization.js b/app/routes/product/visualization.js index ff73398f..cabf07b4 100644 --- a/app/routes/product/visualization.js +++ b/app/routes/product/visualization.js @@ -130,9 +130,11 @@ export default Ember.Route.extend({ let country = partnersMetadata[d.country_id]; let parent = partnersMetadata[country.parent_id]; let partner = copy(d); + partner.parent_name_en = parent.name_en; partner.parent_name_es = parent.name_es; partner.group = parent.id; + partner.color = parent.color; d.model = null; return _.merge(partner, parent, country); }); diff --git a/app/templates/components/zoomable-treemap.hbs b/app/templates/components/zoomable-treemap.hbs index 25f879d4..a9e76b1e 100644 --- a/app/templates/components/zoomable-treemap.hbs +++ b/app/templates/components/zoomable-treemap.hbs @@ -1,8 +1,8 @@
    - {{#if title }} -

    {{title}}

    + {{#if filename }} +

    {{filename}}

    {{/if}} {{#if title_filter }}

    {{title_filter}}

    @@ -44,6 +44,7 @@ {{/each}}
    +{{/if}}
    @@ -55,5 +56,4 @@
    -{{/if}} diff --git a/app/templates/location/-municipality-dotplots.hbs b/app/templates/location/-municipality-dotplots.hbs index 674735eb..f1bb4c19 100644 --- a/app/templates/location/-municipality-dotplots.hbs +++ b/app/templates/location/-municipality-dotplots.hbs @@ -96,18 +96,6 @@ - - - -
    @@ -179,63 +167,6 @@
    -
    -
    - -
    -
    -

    ALTO NIVEL DE COMPLEJIDAD

    -
    -
    -

    BAJO NIVEL DE COMPLEJIDAD

    -
    -
    - - -
    - {{vistk-network - data=lastProductsData - immutableData=lastProductsData - elementId='product-space' - dataType='products' - metadata=model.metaData - varDependent='export_value' - graph=productSpace - height=600 - delay=3500 - showMiddle=true - filterCategory=true - title="SECTORES DE" - subtitle="LOS PRODUCTOS" - categoriesFilterList=categoriesFilterList - toolTips="complexity" - }} -
    - -
    - -
    - -
    -
    - {{vistk-network - data=lastIndustryData - immutableData=lastIndustryData - elementId='industry-space' - dataType='industries' - metadata=model.metaData - varDependent='wages' - graph=industrySpace - height=600 - delay=2000 - filterCategory=true - title="SECTORES" - subtitle="LOS PRODUCTOS" - categoriesFilterList=categoriesFilterListlastIndustryData - toolTips="complexity" - }} -
    -
    diff --git a/app/templates/location/-questions.hbs b/app/templates/location/-questions.hbs index 4cecbc9a..e3431b04 100755 --- a/app/templates/location/-questions.hbs +++ b/app/templates/location/-questions.hbs @@ -125,12 +125,12 @@ {{#if isDepartment}} -
    + {{/if}}
    diff --git a/app/templates/product/-questions.hbs b/app/templates/product/-questions.hbs index 1ead4fbb..2413f34b 100755 --- a/app/templates/product/-questions.hbs +++ b/app/templates/product/-questions.hbs @@ -13,7 +13,7 @@
    - {{#link-to 'product.visualization' model.id 'departments' 'geo' 'export_value' (query-params startDate=lastYear endDate=lastYear search='null' toolTips="rca") + {{#link-to 'product.visualization' model.id 'departments' 'geo' 'export_value' (query-params startDate=lastYear endDate=lastYear search='null' toolTips="rca" showBack="false") class="builder__questions__question" }} {{t 'graph_builder.page_title.product.departments.export_value'}} @@ -22,7 +22,7 @@
    - {{#link-to 'product.visualization' model.id 'cities' 'multiples' 'export_value' (query-params startDate=firstYear endDate=lastYear search='null' toolTips="rca") + {{#link-to 'product.visualization' model.id 'cities' 'multiples' 'export_value' (query-params startDate=firstYear endDate=lastYear search='null' toolTips="rca" showBack="false") class="builder__questions__question" }} {{t 'graph_builder.page_title.product.cities.export_value'}} @@ -31,7 +31,7 @@
    - {{#link-to 'product.visualization' model.id 'partners' 'treemap' 'export_value' (query-params startDate=lastYear endDate=lastYear search='null' toolTips="rca") + {{#link-to 'product.visualization' model.id 'partners' 'treemap' 'export_value' (query-params startDate=lastYear endDate=lastYear search='null' toolTips="rca" showBack="false") class="builder__questions__question" }} {{t 'graph_builder.page_title.product.partners.export_value'}} @@ -45,7 +45,7 @@
    - {{#link-to 'product.visualization' model.id 'departments' 'geo' 'import_value' (query-params startDate=lastYear endDate=lastYear search='null' toolTips="rca") + {{#link-to 'product.visualization' model.id 'departments' 'geo' 'import_value' (query-params startDate=lastYear endDate=lastYear search='null' toolTips="rca" showBack="false") class="builder__questions__question" }} {{t 'graph_builder.page_title.product.departments.import_value'}} @@ -54,7 +54,7 @@
    - {{#link-to 'product.visualization' model.id 'cities' 'multiples' 'import_value' (query-params startDate=firstYear endDate=lastYear search='null' toolTips="rca") + {{#link-to 'product.visualization' model.id 'cities' 'multiples' 'import_value' (query-params startDate=firstYear endDate=lastYear search='null' toolTips="rca" showBack="false") class="builder__questions__question" }} {{t 'graph_builder.page_title.product.cities.import_value'}} @@ -63,7 +63,7 @@
    - {{#link-to 'product.visualization' model.id 'partners' 'treemap' 'import_value' (query-params startDate=lastYear endDate=lastYear search='null' toolTips="rca") + {{#link-to 'product.visualization' model.id 'partners' 'treemap' 'import_value' (query-params startDate=lastYear endDate=lastYear search='null' toolTips="rca" showBack="false") class="builder__questions__question" }} {{t 'graph_builder.page_title.product.partners.import_value'}} diff --git a/app/templates/product/abstract.hbs b/app/templates/product/abstract.hbs index c1d8d4df..e5b96ab5 100644 --- a/app/templates/product/abstract.hbs +++ b/app/templates/product/abstract.hbs @@ -16,7 +16,6 @@ {{#each year in rangeYears }} - {{/each}} @@ -60,7 +59,7 @@
    - {{#link-to 'product.visualization' modelData.id 'departments' 'geo' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + {{#link-to 'product.visualization' modelData.id 'departments' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca" showBack="true") class="btn btn-outline-secondary" }} @@ -90,7 +89,7 @@
    - {{#link-to 'product.visualization' modelData.id 'cities' 'multiples' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + {{#link-to 'product.visualization' modelData.id 'cities' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca" showBack="true") class="btn btn-outline-secondary" }} @@ -120,7 +119,7 @@
    - {{#link-to 'product.visualization' modelData.id 'partners' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + {{#link-to 'product.visualization' modelData.id 'partners' 'treemap' 'export_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca" showBack="true") class="btn btn-outline-secondary" }} @@ -154,7 +153,7 @@
    - {{#link-to 'product.visualization' modelData.id 'departments' 'geo' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + {{#link-to 'product.visualization' modelData.id 'departments' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca" showBack="true") class="btn btn-outline-secondary" }} @@ -184,7 +183,7 @@
    - {{#link-to 'product.visualization' modelData.id 'cities' 'multiples' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + {{#link-to 'product.visualization' modelData.id 'cities' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca" showBack="true") class="btn btn-outline-secondary" }} @@ -214,7 +213,7 @@
    - {{#link-to 'product.visualization' modelData.id 'partners' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca") + {{#link-to 'product.visualization' modelData.id 'partners' 'treemap' 'import_value' (query-params startDate=startDate endDate=startDate search='null' toolTips="rca" showBack="true") class="btn btn-outline-secondary" }} diff --git a/app/templates/visualization.hbs b/app/templates/visualization.hbs index 40d2ed6c..e397a392 100755 --- a/app/templates/visualization.hbs +++ b/app/templates/visualization.hbs @@ -124,6 +124,7 @@
    + {{component visualizationComponent classNames='buildermod__viz' immutableData=immutableData @@ -149,7 +150,7 @@ filterCategory=canFilterCategory resetFilter=resetFilter canFilterVcr=canFilterVcr - title=(is-concat endDate ' - ' variableTitle ' - ' model.entity.name ' (' model.entity.code ')') + filename=(is-concat endDate ' - ' variableTitle ' - ' model.entity.name ' (' model.entity.code ')') groupByParent=groupByParent }}
    @@ -219,27 +220,29 @@
    {{#if (is-equal entityType "product")}} + {{#if (is-equal showBack "true")}} - {{#if (is-equal variable "export_value")}} -
    -
    - {{#link-to 'product.abstract' model.entity.id class="btn btn-outline-secondary"}} - ANTERIOR - {{/link-to}} + {{#if (is-equal variable "export_value")}} +
    +
    + {{#link-to 'product.abstract' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    -
    - {{/if}} - - {{#if (is-equal variable "import_value")}} -
    -
    - {{#link-to 'product.abstract' model.entity.id class="btn btn-outline-secondary"}} - ANTERIOR - {{/link-to}} + {{/if}} + + {{#if (is-equal variable "import_value")}} +
    +
    + {{#link-to 'product.abstract' model.entity.id class="btn btn-outline-secondary"}} + ANTERIOR + {{/link-to}} +
    -
    - {{/if}} + {{/if}} + {{/if}} {{/if}} From ca01d7b63c31f7b418cc0177aa6363217133ac4e Mon Sep 17 00:00:00 2001 From: Diego Fonseca Date: Tue, 5 Oct 2021 14:40:40 -0500 Subject: [PATCH 053/126] Release 0.18.3 --- app/components/datlas-table.js | 4 +- app/controllers/location/ruralactivities.js | 269 +++++++++++++++--- app/controllers/location/thirdparty.js | 2 +- app/controllers/visualization.js | 2 +- app/locales/es-col/translations.js | 5 +- app/routes/location/ruralactivities.js | 9 + app/templates/location/-questions.hbs | 49 ++-- .../location/-regional-location-rural.hbs | 122 ++++---- app/templates/location/complexsectors.hbs | 2 +- app/templates/location/thirdparty.hbs | 2 +- app/templates/visualization.hbs | 202 ++++++++----- 11 files changed, 460 insertions(+), 208 deletions(-) diff --git a/app/components/datlas-table.js b/app/components/datlas-table.js index b613b5d8..c0c4127d 100644 --- a/app/components/datlas-table.js +++ b/app/components/datlas-table.js @@ -265,7 +265,7 @@ export default Ember.Component.extend(TableMap, { "fillHorizontal": "Rellenar celdas horizontalmente", "fillVertical": "Rellenar celdas verticalmentemente" }, - "decimal": ".", + "decimal": ",", "searchBuilder": { "add": "Añadir condición", "button": { @@ -353,7 +353,7 @@ export default Ember.Component.extend(TableMap, { "_": "%d filas seleccionadas" } }, - "thousands": ",", + "thousands": ".", "datetime": { "previous": "Anterior", "next": "Proximo", diff --git a/app/controllers/location/ruralactivities.js b/app/controllers/location/ruralactivities.js index a0e6ce65..79cd2a3f 100644 --- a/app/controllers/location/ruralactivities.js +++ b/app/controllers/location/ruralactivities.js @@ -1,14 +1,12 @@ import Ember from 'ember'; import numeral from 'numeral'; -const {computed, get:get} = Ember; +const {computed, get:get, observer} = Ember; export default Ember.Controller.extend({ i18n: Ember.inject.service(), featureToggle: Ember.inject.service(), - queryParams: ['year'], + queryParams: ['startDate', 'endDate', 'ruralOption'], - startDate: null, - startDateTable: null, classNone: "", tableClassNone: "", endDate: null, @@ -16,10 +14,19 @@ export default Ember.Controller.extend({ showMultiples: false, showTable: false, canFilterCategory: false, - source: "landUses", - variable: "area", - vizualization: "treemap", - Title: "Área total", + source: null, + variable: null, + vizualization: null, + Title: null, + updatedDate: null, + + observerRuralOption: observer('updatedDate', function(){ + var rural_option = this.get('ruralOption'); + this.send("selectSourceId", String(rural_option)); + Ember.run.schedule("afterRender",this,function() { + $("#selectType").val(String(rural_option)); + }); + }), firstYear: computed('featureToggle.census_year', function () { return this.get("featureToggle.year_ranges.agcensus.first_year"); @@ -51,7 +58,7 @@ export default Ember.Controller.extend({ productsData: computed.oneWay('model.productsData'), inmutableProductsData: computed.oneWay('model.productsData'), industriesData: computed.oneWay('model.industriesData'), - filteredData: computed('model.[]', 'startDate', 'source', function(){ + filteredData: computed('model.[]', 'endDate', 'source', function(){ var source = this.get("source") var data = [] @@ -67,103 +74,112 @@ export default Ember.Controller.extend({ } else if(source === "livestock"){ data = this.get("model.livestockData"); } - return data.filter(item => item.year >= this.get("startDate") && item.year <= this.get("endDate")); + return data.filter(item => item.year >= parseInt(this.get("startDate")) && item.year <= parseInt(this.get("endDate"))); }), - filteredDataLandUsesTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataLandUsesTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.landusesData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.area;}), 0, 5); return sorted }), - filteredDataLandUsesTop5Order: computed('model', 'startDateTable', function (){ + filteredDataLandUsesTop5Order: computed('model', 'endDate', function (){ return [[ 3, "desc" ]]; }), - filteredDataFarmTypesTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataFarmTypesTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.farmtypesData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.num_farms;}), 0, 5); return sorted }), - filteredDataFarmTypesTop5Order: computed('model', 'startDateTable', function (){ + filteredDataFarmTypesTop5Order: computed('model', 'endDate', function (){ return [[ 1, "desc" ]]; }), - filteredDataLandSownTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataLandSownTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.agproductsData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.land_sown;}), 0, 5); return sorted }), - filteredDataLandSownTop5Order: computed('model', 'startDateTable', function (){ + filteredDataLandSownTop5Order: computed('model', 'endDate', function (){ return [[ 2, "desc" ]]; }), - filteredDataLandHarvestedTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataLandHarvestedTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.agproductsData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.land_harvested;}), 0, 5); return sorted }), - filteredDataLandHarvestedTop5Order: computed('model', 'startDateTable', function (){ + filteredDataLandHarvestedTop5Order: computed('model', 'endDate', function (){ return [[ 3, "desc" ]]; }), - filteredDataProductionTonsTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataProductionTonsTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.agproductsData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.production_tons;}), 0, 5); return sorted }), - filteredDataProductionTonsTop5Order: computed('model', 'startDateTable', function (){ + filteredDataProductionTonsTop5Order: computed('model', 'endDate', function (){ return [[ 4, "desc" ]]; }), - filteredDataYieldRatioTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataYieldRatioTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.agproductsData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.yield_ratio;}), 0, 5); return sorted }), - filteredDataYieldRatioTop5Order: computed('model', 'startDateTable', function (){ + filteredDataYieldRatioTop5Order: computed('model', 'endDate', function (){ return [[ 5, "desc" ]]; }), - filteredDataNonagsNumFarmsTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataNonagsNumFarmsTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.nonagsData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.num_farms;}), 0, 5); return sorted }), - filteredDataNonagsNumFarmsTop5Order: computed('model', 'startDateTable', function (){ + filteredDataNonagsNumFarmsTop5Order: computed('model', 'endDate', function (){ return [[ 1, "desc" ]]; }), - filteredDataLiveStockNumTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataLiveStockNumTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.livestockData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.num_livestock;}), 0, 5); return sorted }), - filteredDataLiveStockNumTop5Order: computed('model', 'startDateTable', function (){ + filteredDataLiveStockNumTop5Order: computed('model', 'endDate', function (){ return [[ 2, "desc" ]]; }), - filteredDataLiveStockNumFarmsTop5: computed('model.[]', 'startDateTable', function(){ + filteredDataLiveStockNumFarmsTop5: computed('model.[]', 'endDate', function(){ + var endDate = parseInt(this.get("endDate")) var data = this.get("model.livestockData"); - var dataFiltered = data.filter(item => item.year === this.get("startDateTable")); + var dataFiltered = data.filter(item => item.year === endDate); var sorted = _.slice(_.sortBy(dataFiltered, function(d) { return -d.num_farms;}), 0, 5); return sorted }), - filteredDataLiveStockNumFarmsTop5Order: computed('model', 'startDateTable', function (){ + filteredDataLiveStockNumFarmsTop5Order: computed('model', 'endDate', function (){ return [[ 1, "desc" ]]; }), @@ -216,7 +232,7 @@ export default Ember.Controller.extend({ }), rangeYearsTable: computed('firstYearTable', 'lastYearTable', function(){ - this.set('startDateTable', this.get("lastYearTable")) + //this.set('startDateTable', this.get("lastYearTable")) var min = this.get("firstYearTable") var max = this.get("lastYearTable") @@ -319,8 +335,8 @@ export default Ember.Controller.extend({ var year = parseInt($("#selectYearTable").val()) - this.set('startDateTable', year) - this.set('endDateTable', year) + this.set('startDate', year) + this.set('endDate', year) }, selectSource(){ var value = $("#selectType").val(); @@ -338,6 +354,8 @@ export default Ember.Controller.extend({ this.set("showTable", false); this.set("classNone", ""); this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-graphic-tab").trigger("click"); } else if(value === "2"){ this.set("source", "farmtypes"); @@ -352,6 +370,8 @@ export default Ember.Controller.extend({ this.set("showTable", false); this.set("classNone", ""); this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-graphic-tab").trigger("click"); } else if(value === "3"){ this.set("source", "agproducts"); @@ -366,6 +386,8 @@ export default Ember.Controller.extend({ this.set("showTable", false); this.set("classNone", ""); this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-graphic-tab").trigger("click"); } else if(value === "4"){ this.set("source", "agproducts"); @@ -380,6 +402,8 @@ export default Ember.Controller.extend({ this.set("showTable", false); this.set("classNone", ""); this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-graphic-tab").trigger("click"); } else if(value === "5"){ this.set("source", "agproducts"); @@ -394,6 +418,8 @@ export default Ember.Controller.extend({ this.set("showTable", false); this.set("classNone", ""); this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-graphic-tab").trigger("click"); } else if(value === "6"){ this.set("source", "agproducts"); @@ -408,6 +434,8 @@ export default Ember.Controller.extend({ this.set("showTable", false); this.set("classNone", "d-none"); this.set("tableClassNone", ""); + this.set('startDate', this.get("firstYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-graphic-tab").trigger("click"); } else if(value === "7"){ this.set("source", "nonags"); @@ -422,6 +450,8 @@ export default Ember.Controller.extend({ this.set("showTable", true); this.set("classNone", "d-none"); this.set("tableClassNone", "d-none"); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-table-tab").trigger("click"); } else if(value === "8"){ this.set("source", "livestock"); @@ -436,6 +466,8 @@ export default Ember.Controller.extend({ this.set("showTable", true); this.set("classNone", "d-none"); this.set("tableClassNone", "d-none"); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-table-tab").trigger("click"); } else if(value === "9"){ this.set("source", "livestock"); @@ -450,10 +482,165 @@ export default Ember.Controller.extend({ this.set("showTable", true); this.set("classNone", "d-none"); this.set("tableClassNone", "d-none"); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) //$("#pills-table-tab").trigger("click"); } - $("#selectYear").val(this.get("startDate")); + this.set("ruralOption", parseInt(value)) + + $("#selectYear").val(this.get("endDate")); + + }, + selectSourceId(value){ + + value = String(value); + + if(value === "1"){ + this.set("source", "landUses"); + this.set("variable", "area"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "Área total:"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", false); + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-graphic-tab").trigger("click"); + } else if(value === "2"){ + this.set("source", "farmtypes"); + this.set("variable", "num_farms"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "UPAS y UPNAS:"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", true); + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-graphic-tab").trigger("click"); + } else if(value === "3"){ + this.set("source", "agproducts"); + this.set("variable", "land_sown"); + this.set("firstYear", this.get("featureToggle.year_ranges.agproduct.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agproduct.last_year")); + this.set("Title", "Área sembrada (hectáreas):"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", true); + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-graphic-tab").trigger("click"); + } else if(value === "4"){ + this.set("source", "agproducts"); + this.set("variable", "land_harvested"); + this.set("firstYear", this.get("featureToggle.year_ranges.agproduct.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agproduct.last_year")); + this.set("Title", "Área cosechada (hectáreas):"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", true) + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-graphic-tab").trigger("click"); + } else if(value === "5"){ + this.set("source", "agproducts"); + this.set("variable", "production_tons"); + this.set("firstYear", this.get("featureToggle.year_ranges.agproduct.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agproduct.last_year")); + this.set("Title", "Producción (toneladas):"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", true); + this.set("showGrap", true); + this.set("showMultiples", false); + this.set("showTable", false); + this.set("classNone", ""); + this.set("tableClassNone", ""); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-graphic-tab").trigger("click"); + } else if(value === "6"){ + this.set("source", "agproducts"); + this.set("variable", "yield_ratio"); + this.set("firstYear", this.get("featureToggle.year_ranges.agproduct.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agproduct.last_year")); + this.set("Title", "Rendimiento"); + this.set("vizualization", "multiples"); + this.set("canFilterCategory", false); + this.set("showGrap", false); + this.set("showMultiples", true); + this.set("showTable", false); + this.set("classNone", "d-none"); + this.set("tableClassNone", ""); + this.set('startDate', this.get("firstYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-graphic-tab").trigger("click"); + } else if(value === "7"){ + this.set("source", "nonags"); + this.set("variable", "num_farms"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "Numero unidades de producción:"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", false); + this.set("showGrap", false); + this.set("showMultiples", false); + this.set("showTable", true); + this.set("classNone", "d-none"); + this.set("tableClassNone", "d-none"); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-table-tab").trigger("click"); + } else if(value === "8"){ + this.set("source", "livestock"); + this.set("variable", "num_livestock"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "Número de animales:"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", false); + this.set("showGrap", false); + this.set("showMultiples", false); + this.set("showTable", true); + this.set("classNone", "d-none"); + this.set("tableClassNone", "d-none"); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-table-tab").trigger("click"); + } else if(value === "9"){ + this.set("source", "livestock"); + this.set("variable", "num_farms"); + this.set("firstYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("lastYear", this.get("featureToggle.year_ranges.agcensus.first_year")); + this.set("Title", "Numero unidades de producción:"); + this.set("vizualization", "treemap"); + this.set("canFilterCategory", false); + this.set("showGrap", false); + this.set("showMultiples", false); + this.set("showTable", true); + this.set("classNone", "d-none"); + this.set("tableClassNone", "d-none"); + this.set('startDate', this.get("lastYear")) + this.set('endDate', this.get("lastYear")) + //$("#pills-table-tab").trigger("click"); + } } } diff --git a/app/controllers/location/thirdparty.js b/app/controllers/location/thirdparty.js index 8da08346..5671cc00 100644 --- a/app/controllers/location/thirdparty.js +++ b/app/controllers/location/thirdparty.js @@ -17,7 +17,7 @@ export default Ember.Controller.extend({ linkDatlas: computed('startDate', function () { var startDate = this.get("startDate"); - return `https://atlas.cid.harvard.edu/explore?country=49&year=${startDate}` + return `https://atlas.cid.harvard.edu/explore/network?country=49&year=${startDate}&productClass=HS` }), diff --git a/app/controllers/visualization.js b/app/controllers/visualization.js index ed065054..fc9ba6ad 100644 --- a/app/controllers/visualization.js +++ b/app/controllers/visualization.js @@ -647,7 +647,7 @@ export default Ember.Controller.extend({ addColorYears: computed("source", function () { var source = this.get("source"); - if(["partners"].includes(source)){ + if(["partners", "industries", "products", "agproducts", "farmtypes"].includes(source)){ return false; } return true; diff --git a/app/locales/es-col/translations.js b/app/locales/es-col/translations.js index 69ea0c47..5b34a1d0 100644 --- a/app/locales/es-col/translations.js +++ b/app/locales/es-col/translations.js @@ -516,7 +516,7 @@ export default { "header.product_space": "Mapa de los productos", "header.production_tons": "Producci\u00f3n", "header.region": "Por departamento", - "header.rural": "Preguntas: Actividades Rurales", + "header.rural": "Actividades Rurales", "header.subregion": "Por ciudad", "header.subsubregion": "Por municipio", "header.wage": "N\u00f3mina total", @@ -795,6 +795,9 @@ export default { "modal.visualization.p4.municipalities": "para diligenciar un término de búsqueda en este caso puede ser por departamento, ciudad o código DANE, esto hará que el componente y su información varíe dependiendo del término buscado.", "modal.visualization.p4.partners": "para diligenciar un término de búsqueda en este caso puede ser por nombre del país y/o región, esto hará que el componente y su información varíe dependiendo del término buscado.", "modal.visualization.p4.products": "para diligenciar un término de búsqueda en este caso puede ser por nombre de producto o partida arancelaria, esto hará que el componente y su información varíe dependiendo del término buscado.", + "modal.visualization.p4.agproducts": "para diligenciar un término de búsqueda en este caso puede ser por nombre de producto agropecuario, esto hará que el componente y su información varíe dependiendo del término buscado.", + "modal.visualization.p4.landUses": "para diligenciar un término de búsqueda en este caso puede ser por nombre del uso de suelo, esto hará que el componente y su información varíe dependiendo del término buscado.", + "modal.visualization.p4.farmtypes": "para diligenciar un término de búsqueda en este caso puede ser por tipo de producción rural, esto hará que el componente y su información varíe dependiendo del término buscado.", "departments": "Departamentos", "cities": "Ciudades", diff --git a/app/routes/location/ruralactivities.js b/app/routes/location/ruralactivities.js index 5685d708..be5d5752 100644 --- a/app/routes/location/ruralactivities.js +++ b/app/routes/location/ruralactivities.js @@ -19,6 +19,12 @@ export default Ember.Route.extend({ agcensusFirstYear: computed.alias('featureToggle.year_ranges.agcensus.first_year'), agcensusLastYear: computed.alias('featureToggle.year_ranges.agcensus.last_year'), + queryParams: { + startDate: { refreshModel: false }, + endDate: { refreshModel: false }, + ruralOption: { refreshModel: false } + }, + model: function(params) { return this.store.find('location', params.location_id); }, @@ -345,6 +351,9 @@ export default Ember.Route.extend({ }); }, setupController(controller, model) { + controller.setProperties({ + updatedDate: new Date(), + }); this._super(controller, model); this.controllerFor('application').set('entity', model.get('constructor.modelName')); this.controllerFor('application').set('entity_id', model.get('id')); diff --git a/app/templates/location/-questions.hbs b/app/templates/location/-questions.hbs index e3431b04..f22fd2bf 100755 --- a/app/templates/location/-questions.hbs +++ b/app/templates/location/-questions.hbs @@ -15,7 +15,7 @@
    - {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'employment' (query-params endDate=lastYear startDate=lastYear search=null) + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'employment' (query-params endDate=lastYear startDate=lastYear search=null showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.industries.employment.' model.level)}} {{/link-to}} @@ -23,7 +23,7 @@
    - {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params endDate=lastYear startDate=lastYear search=null) + {{#link-to 'location.visualization' model.id 'industries' 'treemap' 'wages' (query-params endDate=lastYear startDate=lastYear search=null showBack="false") class="builder__questions__question" }} {{t (is-concat 'graph_builder.page_title.location.industries.wages.' model.level)}} {{/link-to}} @@ -32,7 +32,7 @@ {{#unless isMunicipality}}
    - {{#link-to 'location.visualization' model.id 'industries' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear) + {{#link-to 'location.visualization' model.id 'industries' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.industries.similarity.' model.level)}} {{/link-to}} @@ -42,7 +42,7 @@
    - {{#link-to 'location.visualization' model.id 'industries' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear search='null') + {{#link-to 'location.visualization' model.id 'industries' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear search='null' showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.industries.scatter.' model.level)}} {{/link-to}} @@ -61,7 +61,7 @@
    - {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear) + {{#link-to 'location.visualization' model.id 'products' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.products.export_value.' model.level)}} {{/link-to}} @@ -70,32 +70,33 @@
    - {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear) + {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'export_value' (query-params search='null' startDate=lastYear endDate=lastYear showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.partners.export_value.' model.level) }} {{/link-to}}
    - + {{#unless isMunicipality}}
    - {{#link-to 'location.visualization' model.id 'products' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear search='null') + {{#link-to 'location.visualization' model.id 'products' 'similarity' 'rca' (query-params endDate=lastYear startDate=lastYear search='null' showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.products.similarity.' model.level)}} {{/link-to}}
    - {{#link-to 'location.visualization' model.id 'products' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear search='null') + {{#link-to 'location.visualization' model.id 'products' 'scatter' 'opportunity' (query-params endDate=lastYear startDate=lastYear search='null' showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.products.scatter.' model.level)}} {{/link-to}} @@ -110,7 +111,7 @@
    - {{#link-to 'location.visualization' model.id 'products' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) + {{#link-to 'location.visualization' model.id 'products' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.products.import_value.' model.level)}} {{/link-to}} @@ -118,7 +119,7 @@
    - {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear) + {{#link-to 'location.visualization' model.id 'partners' 'treemap' 'import_value' (query-params search='null' startDate=lastYear endDate=lastYear showBack="false") class="builder__questions__question"}} {{t (is-concat 'graph_builder.page_title.location.partners.import_value.' model.level)}} {{/link-to}} @@ -126,7 +127,7 @@ {{#if isDepartment}} +
    diff --git a/app/templates/location/-regional-location-rural.hbs b/app/templates/location/-regional-location-rural.hbs index d72b1fba..2e9fbf0e 100644 --- a/app/templates/location/-regional-location-rural.hbs +++ b/app/templates/location/-regional-location-rural.hbs @@ -1,12 +1,13 @@
    +

    {{ruralOptionValue}}

    @mDb6cLG4+`EwaN;^}WlH5rN}4Chb%TNOP29Sa6^<&n>R zaDn#Xk=-^%^&tcPe+UDlm7;p_o(H?58hTUtjy27xR&M(g04x1PmEBgTnVFjqH&Ek_ ztjB>T*iJYZzK3qWhF5KdR1Bg;pDUp9Ig(9gg_ED^100}UEC3N8c_ShQV1g6o?a9c( zsfdR~pN#6O%F%(zY6LcwJt#$Q8iMQB#>laG$GpB^fCu+>8hD^48a&=o1w$;d%;3Sl z4d%YldO@oboE_tNw77b)WS_0OBLGLDx?2L&M&zZeZ=L)6u;qfM8xP8&(R3M1X9w@W z_0|C&`W@qhcp6(UlfMmChq8C7_?!E{%WWBd>AeiC0e;72N7ceL!#F7UVFX^vS3vP_ zp?LXGbrd@W&Lc@*!2z9NQPOz^DRB~w>>2EbR>Iv`do+Q@;5e?vz3CpP_n5jX3nQFO z-w4~AJFxLunCjJ{JsEghG%4Q}iafsMfL-|m*p>6D;EV`YVaxb~fO?LAdhJoESrvcf zyCE9u->Y6A21->Qa2u2w$U@V6;f5p<_8@R9eD)qjzTyVhrT=3SDwj4PeBoPvwW%A( z-cyX~mf(9R@c7~a(!da?5wQ-x=#c00>QYN2zK{H z%U}wv;TmKui^kSA1e*|cUR;3g2t}e1eHOB=v!k1SV^NG)rAWNoF)FvB9=IMn2B?Qd zs~$eHGj$aRLAM^&Ll*e-Wiok zz%-#0doV=xa0!~CR$V%`9qy^+xJ7l*<&{fk6bmn0ipNhIms+^!m=5{F!Hh$el4Y{edk?b6|o2O(kx+S&E>A>;+ z!-iDz7h@8*Ek8U?BxIP$_|$4VKAGK;E*YFKtv}zg92fC>9 zdi?Zaok3o_c*?5FsObvSS%==%J-TVuJ9J3?a(?>!`S5t@Di8-&k<-<}#U0vmoyB8o z=YUmZCV#v729Lr_Z(`s;SsMUHB%vPcr(isJ_yKMo8>$|FMP{^#7k1G1AR`|H@H2(| z6STdO54`Y{>OmJCyqBwfsgTB-f@-FA;PEce;_~Cv^}=)oG6#r9CzIoNWa(0XU=^ai zALkmCfDxSoaHVC)q{c(Q)bD{3b*h46o9FG+n(P=jc*tPKi3Al$h9|-uzyWxT0oVN7 z;?w6wYH=d=0yE1HxRthpnuhoA?!vHVe?Pz&%#)P5R&=Rtm=oF^FG2{3zZ$VwH zSJNs7o@>le116g$$l*g(*|~DKXbatQA?Azr`W<*KtdEwS3-{4>>9+65IN`Z)@eI)i zwZm83(mr%(i14QHY)rSkt+e2@Z39LdcfIM%IdIx7FTDsC#If*t@LQ`8^_xp)@7=x9 zqqTidn72>R={GvK%M{dJ;VM(GY{3zJDllSO{veOKnl3{!92g63rpn=F>aHj(mjeAc zqxh@uj|pwo3+!BR6k1>}p;+`jKE^lsta@@=kXJ9T{HW0W7PS8b6)5=jY}fCYI-4%r zvtxfEDq#_50)Tw!xBV^n`8?_*uDYym+Lk<&*@(M9uvB(MJS8>~il&Knk4WJvRtZEar;Of&a|2Geg16v>Kbvym`#D=#nyZlhY5|HzOqWV zO!OA5LVqJCp!ze^DW@l|S}}F0cFBU0>A&kiWKJFTTk%A#>hI*>1rPLS035#IYOMuu zSBw9Lw)X&QVrlz_cN4OK4TKT`n79d|Vn;+#tjAse6)RRmRP3l!JJ=QMy%$vUSgIvk4wO<$a&)d$0e+H9KTxc4l_UJ@?$TwdYlFxYFxTuj7#h zbtX}QgAA}IP3l`rDsWmfh2y1K!EdA@Wn5mS=kB+j+NII+vXBdE_g6rYN6K_D1tS^-%GW0%0jCe(o!f{nAa$0>^?Wu9rzPxcY~q@f$%}d03)OQI)z)VV3Wxh=U!5&a<2WYUt{B4j33nUWZ zT2yx`ft&&Aj{K>`jX+$9N40;Ul2y_MwLHgnXe;G+35*V6=cEBai096yKbT#hAdmx}eV!w49z+d2B(ZoEA_RvVJZY6Y<= zfJD~P7m6o~Ggs`{tIM%;WtvN68q=X2;zQZBQX-z(SKK|SF=B(nbRQHv;FBkaWu$B} zoW8_MFF^@#D%6ir#W57Gh0^ZkGNVx@$6N=`0m+HLFG&Z5)~Kg7l0MKXHkaTyaex?+ zC%8w%n)-i`q)YuM`_iu`WZ6vpukxI_QA8{mnop{lb6X?#45_CD({LyhU4{~;d|>od zukvD5(ScL@lZvq<3zL;Z98L&iy;<pPGHZGPLkR`V9VwePgbF^U3}2DOGXXaSW5Er2wr={=PO zMJB{XvtBm4U5ger6x+B+5~5NXBt%WazKe(=t5jH2>_BA|LLWdPLHhR?IMwQ6`!s$8 z_{wUCyQqo#{YwvsKy2BqWWM$WC)PYjT-?bo`U6K7FW+g5BD`X1#ITto^xC6?;ONI5@g}XUR>Y$p&pMx0Z}m%w0Wa4TK)J zhhl5ReeMBit+>Wdm^;z1RvfE%&kZwm#G0xp4pK}XKO@qYpRr}yT7x$kghcUtaYqOh zi=@)?VtqZ_kRkYp^}3y|*DW84x6m1E9c$7^GgwRemMG$-W^zXv(q zr8(iyQ%*^XB{GOxQi@SQruNdndk}Udr}D*k?(SCw@y)Nwow(iMz%QbeLcCCgOy`cXGNK@qQJQ!WGMXREGMY3JCp5u8G|$ ziM16ih;xEm8$?v3+qmYCsh%W%7Bhnv@8OX6mDfZZ7fiJ`{)Q@XYJNa_->YsbKtFJ) z@U1Bc+Qft0Zl>Uv+Mse24<@}dao@XVE?FP83p7VW&+KtG*RGm3cPYIjCr+Q9G*hn` zMK8)m({_mn1QG>HT!6pv0Lp69bg$GF210*?)J#^~sf!(D4VKVj*aZWvW=Oh3> zl#-Plc}N;dG|Dgm~fMEgAa|69SC1QL?AHH~a^s98(FU=%*p-YOAdVHsa_S5-@d~s1L7H73&aZ94 z;HlH+&Ygi<@SK$^6IbeQNcUi)X%l8$`NOP#waj{oMJgJi9cHQM^q~TkSd*lp=Rhht zXErbWrc%+TEmF}LLwO22%u>wIc$2`c1DgAH zN!<-=NC%0GCsfFFbBr)Cmp3^^3VZqqdp-##fN0D@`iUTZaP?TzS@3-CFXMN`e>IKz z>U8XeaIBfI{yk_!8kEBIT-HfQ=}Q-qx#LUF@vn2}LNj;VBuB^Z4dYWV&x|RQcH9st zoEj)~{GpzhJI}>4zqI3uPQoxxAl&w(7kiPo?Ry92+bMn}k*x|bk#|!%J?YzG0qB7aOKFVqnTXd=^ z`jf*;>gWc9$8_t^VefKB5_P%_v?Iz#^7>Cr1WnLA4R>JgW@_;SjDBc0y34H?!q zs<+;&bLRa!=QH0PI}tf#yD{T!pR|rC9Tt^&Mll8Mn!P&&7V%xs&M!G7qOujNWOu@J_KWxb6Bt*r2LVSF|y<>R0cG zs0~u8pJ5}r-G6kSL|}z2jRfW0jY>MYVKcgsM)$==Yq-6cpkLgt137()%z1JkH7R04 zW4c0W{A}!DLp|a{Q(+7&LgDud$oP8$6%#~1rFs^omn9bqNE^)Xy7)h@27+`oSWn`h zwj*5)vgp-d`Ck3zGnT7Ck0nD|NTweq8m3lO)bqU0jTMLEY7mexSRW%@4fe%<$-jB_ zX5nWb|6R2YIniogVNKFNzwf{zATqI^6jMfxm^DgYx69$P)Laa=@}@!@#m!!oxOv`M zYcif&jo&fc`K{;Dvh|yPoi$^Faa*Bc$?%~IhUvwoo;5_PA;w=?UFH(UB}LDhWbF^+ zcl9!G+#BHbw*%n^$wIPamw*JwQIgejc(U4yCr6jiA~k8sQl!*ENW{xEk&{o$c85fM z0`7X1kTG8%`@98Htz`%ecvH|4Dz}JNO|_OnD6D{W$-H{XQhrJ;eoCS+ zr6#{IUvTNpPe~A_RN|-17gl-;#RsSg8MJpge;dD!U!Q|36E0Nawf>Mj_s3-_K!A_} z)fG99vxrKA5e7zP^f>vfH3Hf zH|M)Qpv-4UOT?6Wh9~V{S^+mDr^Q5d4xqR*(GDg`=)4aha_wDWyN^J>#8t^aSY2j}Q-f#1>-)VXBdtU=<^XR5Cn64po}ueBB9q$QbsX+{(@_t%ja^iGE<>EgpyoD zm+}zDsQ@{=AZcvLO?nAeKs5%f-saS&2mY+zbNRuK8YpK4wm%3z`vj14c*eL!MZH%^RupxRZ!*H1j3$Dd0Xq+lem+4?h!~*51ZEg?n6PX-v21Xcpjt~b+C#eEbsO|aY}r~Nc4*-b^GaQH zMB7&T`0V*R*Utz0`gZQos&(g+Sq3m4pA%3aHP675@*>V2*t|thQJTqpeRj0)WWSQj?BXl_U~Ho13Z^tIBb;<3+bF^$n2Gfg;mo+^Aj>m3*bkUZDxE z_KeRbZrQ{(*NOZ}Gyq&00Ip1Jzw|pJ9_U{HaP{UjZ#N6+M}_O?!&o4w*Ih=!nb3`O zJQ8~5@I8qgWc$yV&QUo28o=vb0AxqR_~LUT1ghjjdF{cJi#_1#XrVm`ju)2TUU*f| z9J~X-HKMp0<-8YLi*=Nrc@lV3h~|l!>uXxPfO9#V5Di}puXn>r&t=L8>)|x5WdWhaSQ#rA| zmONEv&$!aDims}EhuYH(;#N{$n}6kE_9BD$R9Snm|8IFZXggiGO)nJEOh#XKG1Ym^ zH-`xm4NRGYnmpr$i5RiQUr0Rdl_MB@=zBP6tUY^b&DtHtSNvoh1OVuD-bw7I91krT zid=*FP{cd?U3dA`*tGZ%PY(WRe|=eCeK6srX1lKmDwzh zbyb^=WO)}d2GY(Ku6-c#mKQ`@V|CI(TqQEp?2<;jt|fJEui=9Lk^*xC(gH$_H6fpa z7fop{xB0nzuqCxNL>hSZac3g$6c)rAj&()sy23hsaaC+a*8>b{iL&M$J(?fwaz56Ws7y+Tj~@#m?tE?Vz?2IY_9mY-UKJaFCRK9= zu>k}24j^?SN+WKBW3L|Yj97@1oLoNxV0+ndtf1pMFna1KHIs47u2K@0JA83{F^UtH zh5^ViQw^GvrfZ3rJmknxQ5ZrhpmjRxiGvjRO_DC&Bx?ZQ-@QbVbIq5ct5MXGRLB*i zis>XZNiZFwrp3ZwTI_b(fWUx|fvqsko$#Gc@Kv?w5z+@oNFqH#`cTc+!*6*|8eB;f zq#-W}q&|rOGPD<`NC&0*F<#5XYm3l@L^OW^Wk;dxG?>0c*;Q2hf|Q{h9f4q<{~8#7 z6V#bNYj5I0w$hGf;{{i*Y}(QCz%#n$i(OxfPTrzl72-<|s_t66twL}6w`&^`Mtj@Q zY;MTXVJE4>t1zPz%{@NKC0$H?_TXSh8-wO}P5;q-CQY3?cN(QwtXZ45T2IPm=K;Vw z)qgGOTeggzIO378S_dQ#$3^iz^LL#A=E4y5W`5J+4TekWP93?fr(ys`aiX$X=ShRd zPlV-9hyiSvz5NE!?Ir;RvZB=XW?*oy6yZ;iFA%f;RLnfHaWkK6uJN!`V+W%+6ZsqI z%NJm{Gq6X`6oHJM`KDbgnUekVlhbB04jat&4GQ@Zd(E-UpgH}r@B%>YBwfZEr6vv_ zEka3j8JBYj(*khZSQDZqZ?N7p$HbQXg8io&OkLx&r0P9o22t{42kbBj`I4OQK-3A@ z*>nNt<3KT*L|{W^T*)nJb`G`FB0-?sgNaHy3=~XZbT?JLqs;g_GcB zqz>j2#;P!Q*wm^~{DMD|DcwR!R*&LM8fp@+GZ5^HkpfQri&QiYrjvGI#H+)q*u?{Y zuv90yHC=uYV24Ifc4+3?-8{7l{iki+2C%K`MGlG2Fij!2Abqvq+9U$SZxQEMifiFz z(+LULssRBYYJ}_-5c0lgYn%DC0UvnM2~y340PHP^9Y&xLw{+Fk6{-4%$wB^=gFA&p z7%$dQ7&LHdJn#ZcPNDcwsXjs3D&ufuRO6})4htG;xLQl`{=#pU ziHFYAYbUQ%&p;btSVKJkyn0J*gdOERo#w*w;PdA&w%dNF0DK12DokQ3wqTQWK7`j3%{ROkFt5 zL6lIEIHe}7vE=|6kFxHt^Hmk^!R*|!CV=qJW9pGi^_U9GdQ6SM0)*ZZl>z)`1*N}h zXuX#-iH;JN)MQYA1i8s5Y0}g$KHXI~V`gMN&5tC`J5<1pS*pw`6h!jlqrNY(FYg~nX z&}w>JP zmhJL~-h%959)R!t&H&;2#%vbgFA{G6$BUvm4|ZS~6iN+$s`^K-5s-gEeN^0id9tt^ zz~K+6U3asFN&GuvxJTUH(}j;)YacH>~>RSNBh>2sutbj6#zIFe)$>=jmHH#rrG>5)1@dZJZ*H*0=C_&SNo;re*na3WiKo`{ zX7LFCGzBkRz$@n|)GjD*ng}w=ltThC-XP(3Vnfr5%bRld3)jqVIRQa&rZ2uFb6~Tf z^u0d?XNuq9c<{i-nN9UMS+3jkmEt%-+y;sZu`R83760+)l68nRP!!GYDCvh6JV2$f zChoK=w%>ZK!u6M8y>(#J(TQGf$ZTM}6X_i%j?aYIh*Z9!(wlf;;5?ug1Ov6u6zK(! z4%-M~ulD#wU=+iRgFbd5orCSWsJ$IrTwsM_C9Mf~=>SN0Q`@+ZVnubH)YC*Q)c2!- zTUDr7cjYhH4+_*;Q430m|xiqZu~W?B00WcrQ7X+}r$ zxmfqqj_ymd9o=%u!KO+p_&I=0GbQ3_II-SoK@~oMetJCk+OXRR*098GO?1kljiBu* zbkF-_wAcjfOk)DdP?St{#NA0E)ee^wvwQ&tVPr@vwg(@&GHEx$AOc||F3O^1500HV z+vcrXRTx4b+4QAn0?bHn4cbDjk_7{cuG=b#r?Z0mUqZ^3lb{hJHkro zBu$ANx)Bno5=(_SWyKdt?2x?9B~=&4z^F6R6f)5J>AH$TP!)m-Txyc|1ls6x<>4+Uq61 z{kCw3aEEZPQlmSK0p`$vdApKEl;!{;MK6kLD%EENkgtg+Ncd0s<5)8l(M6PpHS`2a z=!}$^k%!}8NvEQe%!(?5Qv`0`n*6iQkl zLH5U8;J2j|#>-UaNlxlY5`|6v=(P!l%kw{pbyPW)=8ux{<7ob$#JiaS`i`Mb{8j;N z=21~o+^0(^gZLDdik;3BXu5}x^{okh{iBVl|H3AhxFQWa5)DOwG~ar~3$O~&C{ma^ z?w`yQ&HJvDV==HqHHDz=!vQyn7wQP43g^I(gS1sMIPbO>=uGPrM*0IKxVx(fq$f+0kY3Wl+ z?Hr90+l&Kobs#0$4P2##q=yq3rX)Q~(_t6sH@+MU=8I)G_3kvDOajV02?n;tQbJ^( zY*PbV+Ua{aK%7Lld;$4{&-UR+15<<7g2!*X2RZUuAPtKfC~9-+P~0I;zQ&O(XJ1DO zuj#e?B=LC-K2Esh`hGXaI|B`&-0(N1N~oK*$HQ3${9_GA@!`bojcCo038qSvX$vCO zAVo~S*dD%o?8%rT@O=W&D$2~AP>g(-(YuM7=6oPaKrL7R`AP{Poda}t=Z=NTQ;eC7 zuAS?ATXEoEat16qNR|=|B3O3g#a-IV4HUEEC(oIrhfLiPoX`)`dN&$9BYH}lvE6gn zl?afmuB{g`-&nBROwsxcu|5bQ!*>Thec-@{5*fk>B*3`91Hv=B^f9Y2j(vsQvdOeg zd#!j~L*e6#th$AwwqjcxJB|rFOkcPbzR9CRt!-qJc3#CdM8O?cmb!A&GHc0qfVhje zg5}^U9#F=`51tq{&6>E@6a{6o#iNegp*GrF#j#4U%$&wY1tr%3`nb#{c-(hVPbymDj}4P zPO0m|fuwef+xH@mQrL$BL)C*rPRFht*$U*;m&8l-3wv1A3?%&vUU=q-nyMY@{>G`3 zk3s~-@mlr`N+*gUO|^>~WxwW97HwX-ZYf3xNEhm$v{Vg9%@d|XB}B}CJ@VSH=iYPq z_?`Q8r5+Y+9``JQjYwy7rpFVYj0|jRY2#9%MG!>)ai<^f%DNIJ}E(#S{;rRG67 z@fy^~T+LK|pyJ_Ecw+rQQi${HgV*uw&!Yl^i<9%T)rQHW&m1OXT`-M8bqP?j1 zdjX9?19@8{zU7E~?aPNNV4?V0}hnXXC3vssFyz+3PmVetzGZfrS9 z$OWtX^M`lX=IyYzC($L}&V_6$rQ>S7vM3$b{WA&uAcnpZooa~9DwAK}2&cHI7Vlbv zj2jkUCgYl5XtdlH6MRgph=aPX3vLQ!;G3q5CN<4urG<8PZD3SG?%rO%^Rht`F(&iI z}Ow69Ybfj3rkvJ}m*a zfL`+C2)As@?&bUSg@-!h-q);s|7OPWO48_49*HDfyrAdNw|jhigb~n}l0j?0I#zpg zEl)o~SdT29Wy6ZFS>Tie*Wmx*>hWr{R$Ng zMtU|7E9p$ygW7BRPhGjZC!}q&K0)mV8G`l$fl4rN5Wj1J+b}`u7=b{H=~6=i>DOhrPNz2QlPNqmY+DqsI0uWxK{f+L05z$!b98 zpU4p=4^dU@@pp2>UyUvXQ}!#gcDm;9fU!So?IawhT01~a|Gd-vqpisa{NJrgHWyw1 z<&PGv!(inR9>A#w(7ktDbR_unbC)NrTn7`y;y7w9DX);KL`P`PrS8v2KNQ`x zZP>`39fzl#HK>P4l~*DYpyA^WjQv5TRO=O5t82DYYoj~mgHh`ksn)ru6{m$8Wi>j9 zkF@7@@6R|!YwSO=XOL9mOUW9k#GjmO;ZL4iffY9p2AIf;;@;X)-X!>dU--26&!*Hj zP8oo5y@*pw0wP)l%%O_5*F=E?fZPL-ZR|atiw&01J8Z%2{rit+>h1*I12wR2Rq&M? z8i-Rr?JMQ`<7aOi+Zi!9Y|QAO2t(iKsL7+pPKqfrTWp|xc_S6O^zG%#BkI)b*so=q zu7`7sY7e-SVo6K^>HO6RIFB}qfGN5j9?M#)3xH-ng{t$Vdy_RDKmUp#Mn-M4nT zHuVf|=W0{8rlh8B9X(|5m{CK9jM=uwP)|&UiN|be;*m5i5|$GsloFKk1r`2N&lmh|UE@xIe+w?JCKM5M1378|pOZ9ldXC#6ix93%~V(Y11p% z4G`flRi|p=N>YqHk+!x_3t0^%#Vu?}F_&I6&fI0)*qZDj_Bxx*7R$=ZykvFYNaVDvK<+DVAP<+P%TLKK z$iG-MgS(K!R@bfWTIDGOMJL56P@P(H0bCbuD0e|wR#{G2U0GMzK-p6{Q@KT%YRy_J zt@YOBt)r}0S?{wxY<=4L9-Mx(wF$IYY_rKlyCrsO>`vQVvwLFqyIP_4P&ZSzRd-W|sKekuBm!Qk z7pa%2x2O-QkEt`%Pt~v0g>WUJwRg9#1fSHt_Vw+X!z*<+`(E~=?I+nM!mY?M`!)8d z_J{2+**~?gQJnI4&e^54ig>bIjonwQXh86aJc7?hj6TsOvVyWwAh8V&PnbNM~oN*8e_o>0>s4HQM37ySRh!x&I@cR`gt zw8MtZda+Vtk-AWDe+sIb=k>I$X}`id-Nbm^aHV&0`3x^kiR~C={JL9!4iJ2pFcSM_}Hjlhi)`3U3TQ?DczG_ z4mEGqBCJ8!`cd0r0s3Pn_8!nx=l!hjQ^Rhu0v={VHiWI+tJ|@4<+fjUOc*gNcGR>f zhM{6>7-tC|ylMaL&6`)RG#-ySIbon~*wDD)@P#5dJCySS@j=&?BvFj^}CL488UE4+{kc{i~ota;0*eKv+|$#2yiK!dGFDq zz-!)d<7dyDWSlcsku-nl+%<-U=?c>5xi|+(uF)sQDwc0ZS-e?)cu&NDu<+3Xh78(} zGS(Q}RuQ`IT-15JI!On=oRqwCf+Gp0TK^-dW=e4_g~}q}>y2G97=PZDUE+;v+hF{8 zOS{BmC9VLP<@J)-#u!cEoM;oZ>y5_Z!C+r(c=w#x>QzZPc+X=^ z?lpLoX$N-8ZEjfH9Lb^c=HzV$4dlA1r{ZbxGThZqDtB#|CPYP#3Nwh;i+d>OF8MF^ z+-|X%wn5u7&nFqleXicbHr*QQNxs#CtHBM|8pXTZ<26@LJ<_ZGjlD{RQTj@bp8p%> zstW!I_7?#Ea2{BI3%mV5Phefz{hlxwo@Et0G4t`m)tRSGt`2P6aAIH&c$$lyzi^7N zm2&2W4Rbc?&z#wGHGTNzu!TlC(B*g)c!=z|jytw1mM>edbhi*c0qnt=O7*{@_y59e zRDo)k0n~}xZYrl(kUkq|MRKb(VB0FiZ3>9v0(aP^SaUG>h7UhGa6uo#_Tq916?`+m z?MGDzE!KVmqx5$M9tqwBchnm;W!!nHBkC%5At~+MqI#wFJ3@>0ACNP~U)R3dfOY|$)31Wg zpdn#g?$Mmj%U35RLjKWFId|H$xzqGb+IMUb{YY4^Q{APAN&nB#@&Nl7R0Y=x5P^q` zHIzkh+vgyKb36QY<7A3=n$B$BdH$-7*mz$RwFYq!@D*yXu?@82GIoUb=rMdi7b5`j zB`su+4GvM)5KV|Zvgqk56xE2!qdb_s6L0G-st&R^6ARoXBw#gNl?qaNr9yuCjl z<*&r#i0ZAz*oBev2h6jEAM(}9R;@BXtSLb8vA7;6N5hr7Q(z%EdSYCxL2M+pRro3M z4kpc6XS_aj+la2Zw%tSgx&>_9ItZfxL+UbPvbU~m5hot{52sFUDlCJA#E1)+$Fq~nuEJJOCCUhxxkl7m2S##HOH zF=j8&qrU=nbs)n)I3AyE=RG|EB{-6au3$65%YZ54qghj`&LM?y`!;)-~^ z9%-oDxNe#-Wzr;QRUL~DgXhD%x-Up&*ro*B_>0MR$*Fm^`~<<`?FTJ>Klsn=i_4E6 z=?78y+A!VI7s6b1V3DVv;gt(AY=C=LgUC3KBeFI!XzV3c1JwnFAmAW(?e5e}T~4DD zmFjjFGoruYU<1XkX$My9)1TZDJt%bOgb-tJ?Ms|0rU&)M$Uw=20lCYWOri4aDO$1o zT}ak6BTer@yuAXc&ZVg<2+fjC14e^<`S7rVTDe1`ed^&OV;in?iEoh7d3 zRO3c9rL} zH_p7cbGfhIQiJ#fzOM(5#oZi2?PIt`bGi=*(02_)&#UL_7{sLm| zWDe+rGeMQ3R+cFv0cNUm|Fp79)qSA<4ni9>vD~M**~Ie3k#LXMseO;S`mS9z9t_2bn8}e* zka%_@(I9d_hgBQ}VNdGPa@Vr$+YIoOI~)gGHn#}ss<-wNe38!mKIn2>!*;)f8FB*@ zN4Fl^cSe8lSUAK^%ZV?-#HG5pd2tJ(4QhzwfyUj73yYaW&qh+_QQ=c!3t#iquZjw< zI(@tLF_dUU7Suwu)ILT#fuGmZaup&cklh+}Yb{8?H@MY<>ODlb6| zK~~@gF+YiISH^Cw_Xg_`zH_n6>}o=s9*Aq_QGpz=81`6K->g#lU!Vh3PP1-$uM)8q$_1meZwu27HOrp4#_;kLRy zWz9Z|)8^4ib-D}MT}QSn=Ix$++J|2|VAT-AM==^G^hXk-ShHu#O(?d zDEr^d>u~DC#0Ava$oz?_%VK{_bN|b5dke1%a5W5PzLF0c6*;efftd5AKup*bkN}}; zBTfU*pa!u{a^e}Q`*3`5TI|fJ*$7@W{-}T}@89m8MQ~OE@pjRl`mBaQAEHS&I}i4a zRk_p@RD-Bqd#s?^xQJIdp&B@MZbl3Pu_da&a`^$GzeDWd-1!&LHdKW351r_jCf2ws z+Tl_Qx2YreYozQEURA2k?xa+S#|NP%FnO`mAXh7TK@dg3iLJ$7?l(MtMv-ervLIJ;g9NImD)%5kRUMLwx<94sy-ADj()HKZ@Q|)A<+r9T6wUzG z2?3i-l`6n5?sM2@!;(3@5k}SE^>$4h8BD!@Cww4NKpmL*NxlVU6Uaz0;S@1=j;)Im$%9p<9Fs0?YTWz>>ohI180vIaGFd1S*C-MqCJpxGC-05l2HWRk4Rvv^7IhapetmrP)ah+7 zKh}EViNO!_k25cv*o?c>ggCf52BVJKB9LqxvQWi)^+zv-N_jD5NT0r=hpNW%a@D=2 zuuZ4B(VDnBsTA|z;dc(4{))pCI1|N>qhp7d8SO$98{sBRnyZ{ND-fL{VSrtTX| z{m$kS>&MwowhN>gw|SllZi;v86I5o?g{EA1p|3%*sOQ@nVwPh1=$UYCK3j5bj_b;G z)4Mf->I1C1O7<3N;0gnhG_}aEUb4Hee7R*+!@si$dDwT zu`1{=KxB~q0!{L56mI^VVg`RI*zitNO;gxf!8scBWFLljT4;fkw?L$uT{39h>sc(||$#7fE|)>S$6kR$+j zNIt7h0hZN6zo5_T9Qzt34j0m~J+XdPB5@F{}`E3vcu%{mmW zU@NPnF7GAXfzAxXK2k$E{sVA}KB8LeBRW)uPv%j=92K>uDEV}LEPYr{&5g$@;#LLU z)L*iRL47`hM<9Pf%mPS&@^q46G_*LncrkVjr-FWmmbgH_LuZ6rnw_d|n?vB^9frrE z=EuSrcU(4aaZk*uBo_Kf%)m)}Tha!&iC(aI@kWCuHzQ`&s2H7!e0YapbCK^ft%01- z-Ht?NP&q+rMMdN}XTC_{MYIEwAMc9*pE6-R^@^r)+7F~)AMs_s)KsX!dtsqz0+r&->>4)X-Yr`Asxb8$)gEK7dy0rLVPgj9F-Tc;$kdR0r<9K> zG~KRW_rR$J994Eef~26T9vIN5VIXKLYHFno#?vsBRbjQ+8t+PS0IKS-@IJ?wYQZ@- z?9Y0V!Nr~`u(wW14~1qhNkV?9Oyx=P<2gmzhd3 zf5unt&Qz1_VrnzFOe?ky^8`E9hhiND)L|hl`47S7x$g9DWmqjpY*#oA7Y$2nNA7@5!FZnZ+f6P>n#+i=w zUxIuN#)pnQ9rqssTcf0ejy>XH#46bvjEQC3>Dd1m(66#`UyLgq`yT@x`yr^e7ruv% z^FIW6Z=}<)$GHC(Fy?udv44yIO;}@|-^ZPf{g1()ahFX%8Xfx|108!hS2U*IP22x# zOuwDB|8Fr}lTla~^!w@hpkqY)`oG0={n9n`Z!y-kY+%Vd**C12fp8vPqa+L8c^zY| z#dqU3BggLo#C5T5$|LSh$3r#=@2L@EPayv{X+*!fjLjwUl`-R#g{PmFYx`?b9CMREyg~idx7ppDfU8qnJN4I zH}43s|Ab~zOOQZH*>ILI@;CA^Oy#R1(fkaToJ(=p$0-DSq9+fFoXog zLw=1ZC(ic~V`4P&ZG>Hhc@e|$4wGXjOfb_lf*sv*=z@I>&C;BqOvrmzlhPJ%gr zHxiufhPBv@scGq3P1$ayxjcqx&in_k;}!aA1Z>JfJMGZ_Pv~QLz^SsBw;q7K?&w1o zz;YGfdl35GTn1X}KY%KLBY_+QI04mcR;nMlvLF@WC`R#5nb^NIZ(@he6t ztB*5h3+A92)-2sWG|;o@AfuMfChTiz&*UO)AOeLeqi`+_Ecrv;9`lSdNiIkFQo!bK zOm`~*|DR=)@)3x8OXbU2HAFlf`_v8asw>7!hxM0&y*32x0`|xq89O!;?S~+Z2D<<2 zG0uQdHD#grpTfqTh%M(DTZC_+dn6xgg`P>Hk>}2M;%sRt?}-0fF*bO&B`e~8z!iBH z#7>NpJd@GLMf4>P{f|d{5ar(E|3MfB3Re-!RVd#I|9hAGA*;>6m?pko#yH3qF%D>} zrK~?f6@*cEHwW=M^b=zUc&3uZ_YTJ4hw&^uS1@j6>6l65M8}4n%k&(eF#NA$Pt!G zZ>8%BV?g^#=d$#hq%^vo==p+qmDU_xTXY;GSY7gmv<~Qen_-?grm)t6C$ZJhw>b<; zVQ(q!LSyNiJ;*4qcWrSFsAQc=im|^{GAo>&^#2&N^BQ3)`n?NqW(3-pfKU;0-J0=a z_b|4AUrL!4a8!Z$+l4x{C_f!#=o+txJ|Aaz`7V6_B-Dv{#n^V2zeSlv2y|bRwTuUy zzZUqui-6TQBc(AYJ-6w%85o|fFA3M04p_ecVGquRK;U$0{7=^>@IW>L<1(75ZPl3R zjB`UJn}`05#=gP(^7#xWSE8PG(pu%g5oZ{l*^fHqEn5e6Wt<0$iyXoDjp!d80ZzFU za+#76#txAcW6jtC7HAo)H3sv}RAFi`weU9EyiI3!rmCeR3k=!@Z#Xh8jE*rd9*igQ zyci!TU(LuE4)3TLC&rm^W%P`ZDbG}5sxdWzUH{phoKZ3=#-7nIZcJGQkd~>;RL9v- zhw&ZIKWY%$RC>0So`KS{^T3EvBiSC(Gemk0l%B)FBl{0vM@!H7(sP&e%p5UvaDVo# z^!y+_i=^l8BO+o(${6X%Nl#np=`>>0fDtk`WJbyi(zAl}tSUXdMxGY?Hj*y;_(sOK7ly@E3Wa&9wdV-XLl!bWu%9cydwbC!47k1kMjTTa#^eu+S|WB9i{ZYKaq^`&j0eH=NK!UW3@H^Na=rnYNYg^pJkZ_z&`w$&P*>Rj2Xs6GUJ)4Od_+GSnhHt|eY;iBm1{ zSxfxD5*L_b8E=U#^~=1??aCTi;s{H;(Gq7^;yiOKZ(xaMTjG1>*s6jhZfl9VTjF7i z%xW^u>w~gGvc0lRvSit2**@78*;ZMKY@2Mm>{r>|{2cVXela1#5hb8t}>hI8zn3`$1UoZ5V$x zT#DPXVOWE0*a3L@vqSL=z+G6zv_~#$)f^$v9Al()NW*wrc_B2B`d*q+7QOPZs{T`& zH6yn&;Lq*HRQV^y%F0^$qY_Ks>y$sj{k_2Q_x`7x(}3#tzW?3$DQ^p~k@O$_4*rxo zld+bs{poM{Px;}DjeO!?{$hVB(GsUhufP3u{a%KZH)UARPcSM7dOBuuH3CLQZk}yD zBa?eGI(9WXlbyxRX6LYpY!W+{oyX2+7qDyCwd^`}J-dNj$Sz_RvrE{e>@s#ayMkTG zuELuJjJYFD6Akvg7IWx|6Qc}j8^#W2N3bK=2zC@ZnjOPN0`FHa{jsYCu#MPWxF3DM z8~^m?KlB2nZ!pgPROdhUO12+&hmGteHksYbZeh2wDeN|OJNxVZB@KP(gIbTV$JrC? zN%j4F48O82ocd@(KRCW)$_y3ZHoBCeVx{uw@9$*i$ zhuFjH5jKrI%BKHc(y-^o|MxI}Z3%pm!i&SQBeFEvQCYg|82Z(mQL#P$X�jl2v0 zG@4ku8uluChs|a4*nIXQTfi2wpV-fA5o=;awnWCtWHPx-0oLyp zm8r^u%CFXpwc5I@wTHF0b$9E5*7L2GTCcX=Xq{rc%X+`{dFy-DZ>@i~v9&SS)Ujz` zGuCFkO`1)H%?n<}Tk~q(o%iJZR4%H@Dj$`fD#O;<*2}hzZ3El3ww-N5ZNqIB+IiSj zxAU=UY1iFuh+VARY`evFEA7_Xy|8z&FKh2%Um0?oL6F}ZVL#q}wtb5IdHXB}1~Qw@ z4y_#m9XdPoaR_r5;t=5w?J(XU!C|JuT!+ODD;@SboOj4{xZ#lH@Ydn0Bjf1gSlKbe z@w8)><6FlMjzvxerwUH$nrKb3X0Ik)b6S(3d7#PC zik+RD%Q|~Hdpi$v9_>8YdAjp_=cUf;owqyhcRuc%;e5mSk@G9(56&j7lh#|? zT{}b@shy~us@Z#m&XwQo+T`#m}XQOG_7jmmrs3E(2YL zxr}v5bXn_?>T=rUmdgW|ESI+~A6$xDWv;fa&0VLv&Uanvy4rP%YpQFSYliC`H{Q*` z&EQtSt%=(}w^+B0ZYgf3-5!;(F5^_DdKsTGjmoqx)1ypyndmah%cPb0UFV?l()nTK z)GK+x1ed&FrXv1N$!DBgIk-g~DS0D1hE$eKL>evig{fci9;M#19woVdDTTo-DP*)I z`HX8x9#f{IhzY=LC%EJz)2HMEvmKc9F4Xc4`)p>(TXt^AJ9d6aA^Wr>pM4K1XiUjh z+1Qe=IMITEYxe}!J+ut0&?2`G~V7?Ta$B?q^#LdKQ7TJjA118X+FBwuDz@=E4Z zQh>X+6KZ*fyR|*;ft>7M$t~I8l9%|3_p-E-C$gg`cMQFkqwkNA`UStfFz$>)$#nGk zHQKv{UOJ&Y71~jurw&q2XQ7v~OTJ(XuCPfZAJFqc^!zKk06o82@&dgtKtJxWU(hyJ z@=0c0@)~{0L7yI=PdxfmfG>N8{@g=1$qv?P#(w00!xmS4mH+D@)F8cHYZCwJ~ z;4z-ocz!^+ub8aegA@TpHPm@K8sPgLZLZI)Wh7-(!nK!=_$SO6>o?b z6&p4dzhxLB9=`;viMb`;m@5cb2!9~RF@{Ra8=Wf`%p{8ucfcA7E-|65Lez7US%Z4F zW2S#aJ39bhcLE;oLS7E;&hLQPlSyo$e zO6sW!xFU-=a430*{$ykSd|}EV_Og6YPs~y{(uN_J$FBhOS3~_DP`?`Wmq(x9qm3$- zHY%fy$7sVEyZLvvT?t`(wni_DP(wM(4A`Ou9o}|F?+keJE$R%$stQND z!w}YBM9tr0LPls2NY33V$`_b1f-7VBb7NfxuV5*!U7PVLbt{CM2^dlIv(g$C=9V^4U)@Uhv?8i^+T=dkJX;sp>vBm6c2cEnGb?(HBH^g6i~hdFp8kw4|A_B< zgVGnU)(R}J#0*jX?fLh;`Ts6O@mDB?o>I6+S1N@FUod+47>Oc`#3#lbF`c#g7`rC; zKLmMGabkG@67(+l2#Amei0}yzArIroV)iMVt%v<%q1H?<%%qf#UylC(t?OY8)xz4Sjq>hjr8e61L)&f9 zH=5EBJ!yuXw1PHKBjE6^OgqHj?x4QLOd$SmkGKPR-Vvb_LKlQ?*zw&lHo<^LJwRvZ ziQm1@PH*&~FDRQKs6QO73`Y7e#Ic}=#-Y76fEc?_?l9g>N8KNp#%wjf;0EAeH^iwQ z2+ml0+_gF)4no{R8n>RHS-65?;R;HHE9e=npk=s%cH#OD-z!6FYK*7~vmXGuZh8D? z!&JbyRz~nf@ImN_@$7|pn}+}C-kpzl0m4FrMF@)#mLi-*IFFEl@EgJvlzo8s5yBIM zX9!tH`vWl8y5t+nBiJIS5yG&V1|SSV2uB!7_akP*9<$+ynQ+8R=+QeZW}!01xB_OO z0%pMxGvJ6Ba6tbZFawU50Vj;AEk?C6M$HkU=72A(hk4+oIkd&w_IO*3686X`BYiu) zi3CU#&7SBbRuOjaR|%q+A)y>?yP*UfEnBIq6YBHD$yKl99MhoW46~}_3~MOa&$=Uc z;C~;4Itc$?duIYKS5YSVsuL1I5|MynKp=oj5CH-Afr%g*g@AyJ4jDmKQFw#Pdnn7W zg-sL)DENHpj5CV!R8%$xkq9El5*Aq`BuD}zkdSbb+}xYH=H44U@BdYu>Z-GJ_v!9? zZ-S50zv@$`mao40>f37R(+5&!H{@b1&~~IZJA%bTdbA_;cO$khJ$gSl?Fml%(4*by z(eCtU8m&#EN4wLbx5Gn|;h(MHpDp2^t>K^T>E&DL!@ls%WO!yf_+<+GvID)|onBAV zJF0iUD_g@S6X27{@W}-DWHLSY5V#x@{{<*xlfE>kZN{JxHlPs(fGI1*B9$LxK6kuG zIM;_YgYp=QiJnp94J%oD+f1vyWgog+Z6aGwCM0lR?BB3*0 zf^4)S8|}zOJF?NP-x&X1AAn7oiN!jMa7_HPo)s@ZW|ko{%k*anrxHF#IGym7_$7Tl z%@n>+Y%xA3k^cHfrCU+UR%S>*wbw&GQ zAnTF}uF6BB|}@ zo%QuemEo4HpHEp*dDH>-DB#eakw zwu|v4&f)sB}XILb`*6)4^Xp6eL97r}AB;J8KnD)=o0mu}Pl+mW+7;sxN* z4j#`MJho4I@91Z#DBn>ujsBcP>A9)7*dCLdYY%FP1_w(4(#mrG~s$` z5Ai%usUFwB~UUEbd#zWaHpyiL?#v70b(XKa>Zfg!DI$YKl;a<1}|A8R5V#y3& zMA3H{d3p92`dGRTW2oH=4n~t>tE_eDPxa#(a;=VUPx>J8*$E~?^h3BttVJ5G9n*2h zl#w`klIFB6um7*Qlfi>mpK5BTn(X>g>Hk;Z3s-o z4th(J*t>+QL|R2#_EE0`_$v}#m!0;Btd+^kdpaws%i?FrT}i9!nE$?D;P(MrEcOs% zB34H%o%G^GaO?w452cqIsWjYgAik8y?UUdqviKrpM3#`uKx+JGY!>Z+1=$I{ok_Ub zXzd;7?@rKnrg$IZ`={|dwUM`glWzl9v<=Y=?lXCwMf}I`RQ(cL(W5?kWG&7P*pQuA zZP^#nrOX{sLU5 zxC{PQ__c~vMRUcyjL7R(K!Nxf{FclGH(eAzOU{b;)p%Xp5&tn>!}sr@=QD8Ins|NO z8TXOWA1@<+W&CKoAbv4^idoIy;1w@HlHE0d*6JLCJ@DK* zp1RO;{qWwae6JC?rd(V665k!Pyo~g2IJS?no$zRX`~;y24q@A)6OS*FcEEE9GSrQ{ zEMkYW>V=K2d&SSii-5R-@I3Rw$`wCG%F@cC95AtqmTOdqH5oI)+SF>rXj&Eckivwp)3HxCb= zq%;0)yc8STW_`zSW`_Oeldsiiir2nARvQK~x;kw=z@(j!SQMnWlfW6U+HhLWjh|)* zBX`9Y*d+YCwP5jxD?sVxVBSk=59vMl0v-4(^GILJ+~j#zZaD7NJM})Q`1i)6&HDLx zxg&YSPX@D&q#;J?T%(&_gaT_Asd?;jnTygwp>E?FuR^m+ep~z?bF$~+$6D3$VLz>& zwlqoF7Jr|)PL@hwlc8A%XL#bAyiu%DZG=l&mWw?wd;c@>VUTJIZ8*N+02!6vzz2We z-iK_jbKaYW?{x>`)osRbrM144Mn+Al%<`AB8qfudSInA9r`Hj*^8%dNO-@B`7`<`_ z8gM0bWc6SbpGUYqgcO(ZnZ*;Zm(xz}c{uOJ*LZ-rVrAar`{3H~^LR7w40t-3=W}ij zI@RnInycdVB)wV=Mem2Eq{n}@wK*kVSF38wgdA3*c{d{-%)Umm?bk+I#se-fZv!T3*M5MXW);l zHFqP0W!5}vwJ{udP_5Hx(=5E=bVqOcRq0twAl*a;-9XeaGBu zO{kf}+QsR1T#f%gznZ^XyV8p2ZRhh_?Ucu~`Ia_jO=rWK!2$oeB4w@eV>9h<`gM>p zqZM1zW}ALLo5!%CsW-A0BKuSD@I$O(JS=?8KHsxES7sp0*ZRy%mHBOJm)S>ZVAd`? zgqOyNg7n474|8!IEw%58SL2 z+7fuLRPtpcjHl3&mRftctGXyQ|Upp2gJhDcr(Igf#Y~^_cl~OWvP@nT77si|*)@oIhoF zC|sRNtx$*bvD7l$zb>6#)K={@&L22$b&yd?M!2#%n%i-x4Xs+P*Oq0iw{T1v8dgNs z!~@xDweM;8wVoKSes(Md;g}2$)vDE4p5eqmb{nhhOFNF26i;`bKaw#hl(S+`&RF~5 zY1c?e^Lj|M5W(VNC9b+HYgIq{9(!KS(?_J)ShMxMd}}fK*fcCgYXB}!>Kh8JuR)<< z(VXetB4-AaqNOWZQ>=Nagx&XZ(rjkD z%g`U;Da16uQcv+MQY^laox)qtg!ALy#kcZo_79DX?z8sI;Z+J~VWIeL;F^syI{uqZI>B8?G9Kxjkz`&)NQB*B^-Ql{hEF?`L)8NzNPmBK}$Y6D-_s zY?;=+@wxd}Far)`!09~rO4dJyZ7u>dC4;r3i9vN!tuy^T|kuayxIA_O< z_XG81hLP~F+oOh$o|JRMaz?e4%X9oV>x^3%NehA+!wR5nb^C=Acv*hNW<5Gmlu}E#u=>)x3RLeUucG}7uW%yjrFbdrWOPC`Si_eNH8Lk9kWlGyWvzyI zde)ICPd@AIf_-Zjr@ow~UddXKoo_7WcQB9htFcG%+wX{P=ZO<)&0MmoF7+&*GDlj( zTjxq$@NQ+*(^lZ5+(YrNGyv6(M)rqk09 z%RI^GGDqxpoWzst0VlsmDFb1&$~bK>TJ5=ZJa;%fEjiBih`t;?yBR`u?U%oUNk22Z z(AqQ03$ZQ_tC5nH7Wk&?X?+BJYKN2Sp?hxR9{SYAAL@iciGR`voJPtfdh|wY)?IMU zAmhXuNFxx+l?CcT>0i0hQVPq(iejzugmf^+lUb7F>3 zARUZYN&Z8^{sX&rue6>U751rRB>i}VIF^qyUW>|?mXgwLZ635r*%u6|Kuuo&xBMKbd)7Fgwnd z%BH{vH8fW~4_OMl6z_c*A2FxX%25ca1i!R!7@~{X6CKXVHQfGkIiJ(jADMd{o{_h} z1s8tq=Jqk29u#RHnr=HkHVuHPQZ(H{l|rfHO-0HCDY)%E_{5yGN+BtE9rnbfKXa8W zQTDl(RVsoZvkvdgN{M<@_O{EEuKY47onF*d{WRnkD-RA;*SFF$p!yK=B^sUGp%Hu1 z6w1R)r&QzpbUN=WZRoN%u$#C-tUVqP9>R!tj047F4E&dRXfj$=$II3Yy`dzfBV46% z)}9^(vt8eAIZcfeiMR8AS!>{JV#r#j%V~HLnBm9VA3n^Q?H<3l_!TUmb(-#ytQQotKCC>#~$x-HM_fZ7ftqId+~=` zr%|7M`+&o*@q3nMGJ0wAv?gGr6Y7dTEn}Z;u@M=LZ-OeUOd(~+K^BuNp;r2}%Czn;3!`>9yqm@4q~5_X{!ncm%IST$G+1@?`m}g_%kmJk>EIpgl{du^ zlU2v17E^f3$n$WHhoeEGccE}NdKo=5A~slXL@Rf*H#y|j&C&a9vR+_v?HRNcjcB#v zo-@8ni*w4R3Uxxc%TQ=S8cxVhX1zLN6@gWgLqllr^MhEv!qo}vvpM-4uDgVFM=p*H ziIIo*DmSlP7ms?&&GH1 zmd!^zMECn^cK9FW7a#NDZ^hq?zaD>wQdbe~WG~?I_}=(J_Lb)Hc_4m(mG#Uo-#oP9 z7{6)1)#ijX*_T=)zXgfE?`pCCd1HLDdm`s&@sFV4*!WJLmcY4-+``i^(7?!&-(85W z=d9u#@y(nLzB!)F&c;CeYk`s<=X^@GU256Av|?#kEn39P-&ott*G;Eb3yoZ&jpUN~ z9Z!}0WH^jdM6B-(hT6gIF4!9Go07TxFAL3;sC^fmz-qLdx)=NnJ`SteHEnK2rfN}$ zf2p!9pktGMmuVp^6V8Lt(LK;?DEuvz$Y)r-2uDd1Jy?H~lG>sjc#@R5l4i># zrBlBzOE|Pp=kuoN;n5{cm5C3b}CaS%}W z#Uk(oiv3-Q`CTHsXMStvaS_cNa&cOZB42@>^R*g{fdg+@<0HTAZHRyJEzvWflzESf zql2+GNLBN&eN7*;ZA%-TA5Gf}!foUc(AfD&Qc>$}gJCSlHHm3oeF+;T>^cY)<^T z)a+egByd)mk*d7&EL&2Z<9muyN$0nx_Map0f+{xIr4`qymWnR3J7Nhn9AAVQr>HLV zM)*w)@w}pTYp12{gqxRTc|~Bztb=bk4TZ+74K+KbPH#UZ(^Q$BeToj;bs4n zydM+pkkM$`0TP=WkTYL{;6>stQnb9D>@NMK{P-sE;?_(7oVIlNc!0GV^`DOP!X5kAc z`4Yc6U&slYXXxV^qfPMe)aLc1CEF^V)FN;f+aG8l#2i<^AK>-X+g)f>cB{2tJw24@>ZQ^->6JFiT@H@Zu(k%{EB|B12^)U1 zmeUMrsMVgr@j=Q~0CTz&jh50r3BS_|*J6cv9PF(L5))|2PWU z&c};+1zjiW88QcihwU6t>K5&LlPbF79=J$mUNWx`PfhgK{ltw75YN1~A&-emF|*X} z;`K84RDQv0ynk1|=$=?0-eKr-y{2+$d78PLa(Db1k$yw}`ZZW75jq8a15Xe7dVV(M z(>BeRUl;ZGc`fJD=pWuA-+>1l=GKabBj?MB)`tI6K6LuYmCd)=h_$DclB4R{tABTr zP`_mL63AEOtqa8z%Gb?%L-{hzq!hQGpIsE`z((3bDP|Iqt z;TVfX`Vf}QzcnXZdkssLjbp*Yj+rw_&MH)|iyji49?&FR)}CQ5ma25gP4TH{WRaQY zn7J`?`=pDY038RjjO6-{;xGlj6IE>4LbIbNlC~_}t0K&xjY!$kF3;{Lx+ikjQRI6m z8XcPZtB8y8X)=<<9+HPtFBUJ&mdK}MOVobGD;0mJa33UJ6OI!ps?5K$BUU`C%EKAC zlsr9J!wH{yH9lkMH+M2$l+t#c2%jhWTiDjH89BODhwQzoG*3Hg!+b;j+c@cSbvQ*i zq25d9XLHhRr^`0~6!fhLf7i8ZWCG10k`d}52i@ZC=;dmayJzX(Yo+03S7Cj*)?%LS z#q-ECbTsJvFva}}7QOKZ>oJcp35K8Sh5*O@) zyRrt})2Y$8JNrv7u$5JrCtMwOH|tGLxhHqGu&ih7@uWZeFE+MwG2v#Q^%P;_U{t?5 zUI9XCWy7T-Wv{a8W8UgSnbd5mI#inzQXyT|k8V;jXY14Dn|t!uR>!11WSK=7Nt2a| zO8<$oBUrz7zJ!^VS*ex1JP$Egf5_L$rWE^{*;2KiLl|LS^3)1*Yr`zgrJsqObNAwM zBazCAZQ=Z-csDAKfu&L-?@h?V@F{62bLr^sHQ4*LLizOmh$~V3o*yk>R5)|E@UGsz z&k6hHG4T1V#NZ&_;BTd+tk>8|dmFDVyBDc9^`=(=8QZ6^U|lk&2doO9T*ioRIje&L!rW%ycshzW4$ZEyQw|zbjud+ z=6R$ZrbYP{dza&B=u$Yxh}XC&Uy0=Lo-pxo1k*;XeXwGUj5c#&Nh>Q$VSSlJG|tf> zguj(IzIlnwFhQmZ@kA-1{+U1{Q2DZ z59t9r{{`>T%lFN;&+1BWPSEw!moBSci_6hVIp1oiSEhHqUHVaA*@ur0!e| zHLPD#v_&Y9tlEkG%DlrWgoA!6c!yP30*HxTl~lWb5VnynTlAEk?^x}Srdm<0;Y>@* zRr<-aGby_>+gR(>W(eukXn~pCk7=--LCzE|#Tv+O6btQ2EqG3Id0S$4{za~eeL)Y+ z?60ma#@_hUCFW%wnvWG&`+(bgxkh5%RyR_sxNOM##U(~MH9aGh)>`#Uu_&_VT41@G z=}X#P)Pf*<$LeOmyPillHlWUIu!J&&mgkRwtB z2~1hb5ou%;ffk%&%$=ZU3>{8}$PBGvf4aC8```4VJHIK$q?uGVN66N7zR;$or?PmC zMG)ih&ew!gGl9Mb!}aHRb5_4yE5-kycI&BWPj6ARssg--atjLmPRCHj(_?)m?k zhYSrIC9-sMTBFQaw`^VeoTaVsY-?*9#qETt(i^kZ&U*yH^pS{jLfo7nDn83ot3{{T zig2tp9<|^#nrG+n$Xk;;nq}LQ-{48v=6R^7rIE%uY}47AFl{*F&ii-w;eOoHno;5<7CkSpe!Ze7d3bJHD8O3{Hh_n8k(0wRyJ4ji_k}#Yq4rAt+!WN zjZvHNpM&Go7HXo}Qf;LstF6_W)fBaz+FtFVc2#dvyQ#lZ)70*25A_bUr`k)sQ|+Vn zRr{%TsduaQsQ0S(srRc7sJ~bHs{_YKHolnyC&`hpUgPqt!9$pVg<;aq2Vb zcy*#WO`W06RA;O6)cNWHb)mXQ%~ltytJO8?TJ=r!Ep?sxw)&p>zWO(Hqx!k}h5Dts zTiv7XRrje!)nn?9>T&gqdRe`q+SDqwTCG(bYMolI2GpSXtKM9X*Aw(4Jz2k5@1&>d zo%JqySG|wkSHDZYM<1XM)Q9Ss`Y?UC{c{jS_2c?UJzp=-&+6y&BE48YuV2tF z>LvPRy+W_lZF-ent=H&wy;gVVPQ6Zd>2BSldv%}g*X#9w9@Im6gZ_*DtBxZT=_rcE zM4LrpqjAyZ(fDX$G%4CL+A7*Q+9ujI+Aex)v_rIGv{N)K+9TR4+B@1e+ArEanjU>H zIxspY`cQOm^xJ(IL^H(ah+u=;&xx^qJ_i==A7cqAx^WjJ_0|8GSW6Cz>5y z5?va7Bf2uWI+_z*6I~m9Gx}C^U37i)?dUtvccbq`-;e$+`a$%==tt3yqn|`SjeZ{e zGP)_cIl48vE&6qINAw#NG3J_&f_KJn-yGhF;GT(Uta^jmMva4i-b`$Y+5wK*1&-K8 z9nARe%jlm7SDeP@aCqQMxZ`X-N5Bi$sUsQpU#ZWl+f}#vn(9?U>LK+Py}x=~PuB~3+YfyUeDbD;3<`a&rC4*gB2yO+K$dS~<=eSP%4=>7Wp(0PCT@6kU* zhwC3iM?^>Ho1yK|`j+TZ(P#9n(FxH>dTw+|^jUp3)ILk!1C7tok4G0pm+B{?%cCpw ze5n0xy%6f&reBV3kM7cc6{(BnLNj}5VsA0jR8Vj;!Z;{%1Qb!~C{yGUNYOt+=gn;e zzQ?N_)lO=v+PNa5PDYrF-hGjxlaOT|JeoXcS%0GfwO#eHn{Hr?($KD zcP5{Ap=l07&-l*)Xq*F*kKit!!wv2q0)P1^!i?l|C_Orq*56+VQ>h<@ozY(sb^&HK zybUN}*o}5|67Fx^G9$@N%w7n;^cVRC^Aq;ynCN8`a zyo$oUjM%&AuW0C*l_0|)kfe6@dLMkZ88W-2kzx7v*Bh}4`AanYfhI`a^n3wQCSyaC zdMjZE!q(`4H<>V*9EFaM>yzqJ>YuO?v&_>!^ZjWP8@;b>Y3kU-KAnJuI!T?ZPT_MB z;j@HO37)NDxt#Dd!WD$Ct8b_))m6l= z#@fM zDL^`%)MKI1Rou@v?MboA43>h!>Ak6?Z| zpUbHGZS}9@Tm%-g)fd(OCg)4Ef2#Vj`k(55QSv*qd4>8v>bsP_gdkKFZ$bQp%LxC@ z=L+=$^&h6SGu2nrf0BO&v^0z@i_RH`ZIm(kY69aJdcBSDv`*w(#_?pn zk4FY(kv@yGS@=wwBMBcs)BinMdw)~&tfaoX2{(!qo#7HH_kT69FH}ZIfwTX-se--j zgZn-b?CnQ!KPvf*qemwpq2Xs6q}hH1clmtL;Jyv`%SRDDoqV>Sws;7~RKgMDhT#Ny zY{S;v)8Pp6!XUWVa5DFN7-P~-0)rEvs0$)THa?5H4fgv;a0!FUmHT@cg)oSx?7~s> zt|*LU#KzHI8T0)s;Y9EeNK!j{&4%wjuRftBzx zhc6R3n{W={Tq8Z_AwlOMNnb{C?X@koM)bINAIjLPDK=x&zR#p3=T(TU5dXtoZ$%3# z{2sZE#y%d52lQd$A2BI2%=bt6J{5hm1KRsIEc;Zf=*LX_IJ~3J5}RtCrka_{RIJ}| z*c&OkxA{JVZ}FfMwo)sBC|CM?>Jf({H6U* takrP?@fpfpi&fhLEqeu4>1tD3;#U|Ocbu_uQr`NbSL6M>9e?QR{|BZO*1G@z literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-700Italic.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-700Italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..84ae7a4faa3179aafd8909cffa4facb511a5e725 GIT binary patch literal 110256 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 aNonzm&btQxwMOfx$Tq#+%qVvzpZY&r8^+uK literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-900.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-900.otf new file mode 100644 index 0000000000000000000000000000000000000000..e138bf245627509bf60df0b763dc47d9ba54940d GIT binary patch literal 104640 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 Xa`!UAqUYprv&AdbtFUZ#5`FQ1D&9R2 literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSans/MuseoSansCyrl-900Italic.otf b/app/styles/components/font/MuseoSans/MuseoSansCyrl-900Italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..59b259efc969400f20028725c333a30d51d6e6d3 GIT binary patch literal 107952 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 &PtF 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 literal 0 HcmV?d00001 diff --git a/app/styles/components/font/MuseoSlab/Museo_Slab_1000.otf b/app/styles/components/font/MuseoSlab/Museo_Slab_1000.otf new file mode 100644 index 0000000000000000000000000000000000000000..3c104e44de09c3638aae8f240ed37f3105a9f8ea GIT binary patch literal 48260 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