diff --git a/.github/workflows/deploy-production.yml b/.github/workflows/deploy-production.yml index d9146023e..7175e7cd6 100644 --- a/.github/workflows/deploy-production.yml +++ b/.github/workflows/deploy-production.yml @@ -53,11 +53,13 @@ jobs: #v# Make sure this matches the site matrix! #v# ############################################### site: + - { dir: asphalt.com, stack: tauron, id: 675738bf11878ad52d62f188, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-asphalt.com } - { dir: foodlogistics.com, stack: tauron, id: 53c95f4a1784f8066eb2c86a, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-foodlogistics.com } - { dir: forconstructionpros.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-forconstructionpros.com } - { dir: greenindustrypros.com, stack: tauron, id: 53c95fdd1784f8066eb2c891, account: acbm, tenant: acbm_gip, rancher_label: ac-business-media-greenindustrypros.com } - { dir: ironpros.com, stack: tauron, id: 65f8419f7985623e9ff46d6e, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-ironpros.com } - { dir: oemoffhighway.com, stack: tauron, id: 54b5a261c99db54158ed0fc9, account: acbm, tenant: acbm_ooh, rancher_label: ac-business-media-oemoffhighway.com } + - { dir: pavementonline.com, stack: tauron, id: 6757395211878ad52d66131a, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-pavementonline.com } - { dir: rentalproductnews.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-rentalproductnews.com } - { dir: sdcexec.com, stack: tauron, id: 53c960451784f8066eb2c8a4, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-sdcexec.com } ############################################### @@ -79,11 +81,13 @@ jobs: #v# Make sure this matches the site matrix! #v# ############################################### site: + - { dir: asphalt.com, stack: tauron, id: 675738bf11878ad52d62f188, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-asphalt.com } - { dir: foodlogistics.com, stack: tauron, id: 53c95f4a1784f8066eb2c86a, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-foodlogistics.com } - { dir: forconstructionpros.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-forconstructionpros.com } - { dir: greenindustrypros.com, stack: tauron, id: 53c95fdd1784f8066eb2c891, account: acbm, tenant: acbm_gip, rancher_label: ac-business-media-greenindustrypros.com } - { dir: ironpros.com, stack: tauron, id: 65f8419f7985623e9ff46d6e, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-ironpros.com } - { dir: oemoffhighway.com, stack: tauron, id: 54b5a261c99db54158ed0fc9, account: acbm, tenant: acbm_ooh, rancher_label: ac-business-media-oemoffhighway.com } + - { dir: pavementonline.com, stack: tauron, id: 6757395211878ad52d66131a, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-pavementonline.com } - { dir: rentalproductnews.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-rentalproductnews.com } - { dir: sdcexec.com, stack: tauron, id: 53c960451784f8066eb2c8a4, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-sdcexec.com } ############################################### diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 32f50f45f..6e46ca530 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -52,11 +52,13 @@ jobs: #v# Make sure this matches the site matrix! #v# ############################################### site: + - { dir: asphalt.com, stack: tauron, id: 675738bf11878ad52d62f188, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-asphalt.com } - { dir: foodlogistics.com, stack: tauron, id: 53c95f4a1784f8066eb2c86a, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-foodlogistics.com } - { dir: forconstructionpros.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-forconstructionpros.com } - { dir: greenindustrypros.com, stack: tauron, id: 53c95fdd1784f8066eb2c891, account: acbm, tenant: acbm_gip, rancher_label: ac-business-media-greenindustrypros.com } - { dir: ironpros.com, stack: tauron, id: 65f8419f7985623e9ff46d6e, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-ironpros.com } - { dir: oemoffhighway.com, stack: tauron, id: 54b5a261c99db54158ed0fc9, account: acbm, tenant: acbm_ooh, rancher_label: ac-business-media-oemoffhighway.com } + - { dir: pavementonline.com, stack: tauron, id: 6757395211878ad52d66131a, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-pavementonline.com } - { dir: rentalproductnews.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-rentalproductnews.com } - { dir: sdcexec.com, stack: tauron, id: 53c960451784f8066eb2c8a4, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-sdcexec.com } ############################################### @@ -78,11 +80,13 @@ jobs: #v# Make sure this matches the site matrix! #v# ############################################### site: + - { dir: asphalt.com, stack: tauron, id: 675738bf11878ad52d62f188, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-asphalt.com } - { dir: foodlogistics.com, stack: tauron, id: 53c95f4a1784f8066eb2c86a, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-foodlogistics.com } - { dir: forconstructionpros.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-forconstructionpros.com } - { dir: greenindustrypros.com, stack: tauron, id: 53c95fdd1784f8066eb2c891, account: acbm, tenant: acbm_gip, rancher_label: ac-business-media-greenindustrypros.com } - { dir: ironpros.com, stack: tauron, id: 65f8419f7985623e9ff46d6e, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-ironpros.com } - { dir: oemoffhighway.com, stack: tauron, id: 54b5a261c99db54158ed0fc9, account: acbm, tenant: acbm_ooh, rancher_label: ac-business-media-oemoffhighway.com } + - { dir: pavementonline.com, stack: tauron, id: 6757395211878ad52d66131a, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-pavementonline.com } - { dir: rentalproductnews.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-rentalproductnews.com } - { dir: sdcexec.com, stack: tauron, id: 53c960451784f8066eb2c8a4, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-sdcexec.com } ############################################### diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 29d6e8803..5b7c00024 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -15,11 +15,13 @@ jobs: #v# Make sure this matches the site matrix! #v# ############################################### site: + - { dir: asphalt.com, stack: tauron, id: 675738bf11878ad52d62f188, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-asphalt.com } - { dir: foodlogistics.com, stack: tauron, id: 53c95f4a1784f8066eb2c86a, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-foodlogistics.com } - { dir: forconstructionpros.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-forconstructionpros.com } - { dir: greenindustrypros.com, stack: tauron, id: 53c95fdd1784f8066eb2c891, account: acbm, tenant: acbm_gip, rancher_label: ac-business-media-greenindustrypros.com } - { dir: ironpros.com, stack: tauron, id: 65f8419f7985623e9ff46d6e, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-ironpros.com } - { dir: oemoffhighway.com, stack: tauron, id: 54b5a261c99db54158ed0fc9, account: acbm, tenant: acbm_ooh, rancher_label: ac-business-media-oemoffhighway.com } + - { dir: pavementonline.com, stack: tauron, id: 6757395211878ad52d66131a, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-pavementonline.com } - { dir: rentalproductnews.com, stack: tauron, id: 53ca8d671784f8066eb2c949, account: acbm, tenant: acbm_fcp, rancher_label: ac-business-media-rentalproductnews.com } - { dir: sdcexec.com, stack: tauron, id: 53c960451784f8066eb2c8a4, account: acbm, tenant: acbm_scn, rancher_label: ac-business-media-sdcexec.com } ############################################### diff --git a/docker-compose.yml b/docker-compose.yml index 6c9087d32..a20999d93 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -201,6 +201,36 @@ services: depends_on: - mongodb + acon: + <<: *site-cmd + working_dir: /root/sites/asphalt.com + environment: + <<: *env + PORT: 80 + EXPOSED_PORT: 9722 + LIVERELOAD_PORT: 19722 + OMEDA_INPUT_ID: ${ACON_OMEDA_INPUT_ID-(unset)} + HOST: www-acbm-acon.dev.parameter1.com + hostname: www-acbm-acon.dev.parameter1.com + ports: + - "9722:80" + - "19722:19722" + + pvm: + <<: *site-cmd + working_dir: /root/sites/pavementonline.com + environment: + <<: *env + PORT: 80 + EXPOSED_PORT: 9723 + LIVERELOAD_PORT: 19723 + OMEDA_INPUT_ID: ${PVM_OMEDA_INPUT_ID-(unset)} + HOST: www-acbm-pvm.dev.parameter1.com + hostname: www-acbm-pvm.dev.parameter1.com + ports: + - "9723:80" + - "19723:19723" + mongodb: tty: true image: mongo:5 diff --git a/lerna.json b/lerna.json index d2175b56c..174abf261 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.17.0", + "version": "2.17.4", "npmClient": "yarn", "useWorkspaces": true, "command": { diff --git a/package.json b/package.json index fa4e478df..80ea07c3e 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,9 @@ "test": "lerna run test" }, "devDependencies": { - "@parameter1/base-cms-eslint": "^4.5.12", - "@parameter1/base-cms-marko-compiler": "^4.40.3", - "@parameter1/browserslist-config-base-cms": "^4.5.12", + "@parameter1/base-cms-eslint": "^4.74.0", + "@parameter1/base-cms-marko-compiler": "^4.74.0", + "@parameter1/browserslist-config-base-cms": "^4.74.0", "lerna": "^6.5.1" }, "engines": { diff --git a/packages/common/package.json b/packages/common/package.json index f45efc018..4d5564081 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/package-common", - "version": "2.16.6", + "version": "2.17.4", "author": "Brandon Krigbaum ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/packages/common", "license": "MIT", @@ -13,15 +13,15 @@ "test": "yarn lint && yarn compile --no-clean" }, "dependencies": { - "@parameter1/base-cms-env": "^4.5.12", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-gtm": "^4.73.0", - "@parameter1/base-cms-marko-web-search": "^4.55.4", - "@parameter1/base-cms-marko-web-theme-default": "^4.40.3", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", + "@parameter1/base-cms-env": "^4.74.0", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-search": "^4.80.4", + "@parameter1/base-cms-marko-web-theme-default": "^4.80.4", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", "@sendgrid/mail": "^6.4.0", "@trevoreyre/autocomplete-vue": "^2.2.0", "body-parser": "^1.19.0", diff --git a/packages/directory/package.json b/packages/directory/package.json index d1f41cc2b..d1d8026fc 100644 --- a/packages/directory/package.json +++ b/packages/directory/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/package-directory", - "version": "2.16.6", + "version": "2.17.4", "author": "Jacob Bare ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/packages/directory", "license": "MIT", @@ -13,10 +13,10 @@ "test": "yarn lint && yarn compile --no-clean" }, "dependencies": { - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-theme-default": "^4.40.3", - "@parameter1/base-cms-object-path": "^4.40.3" + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-theme-default": "^4.80.4", + "@parameter1/base-cms-object-path": "^4.74.0" }, "engines": { "node": ">=14.15" diff --git a/packages/global/components/blocks/recommended-content.marko b/packages/global/components/blocks/recommended-content.marko index 824ae6942..f26d2741e 100644 --- a/packages/global/components/blocks/recommended-content.marko +++ b/packages/global/components/blocks/recommended-content.marko @@ -10,7 +10,7 @@ $ const title = defaultValue(input.title, "Recommended"); $ const answeredQuestions = user.customSelectFieldAnswers.filter((answers) => answers.hasAnswered); $ const { assignedRecommendContentSections } = personasHandler({ answeredQuestions }); - $ const sectionIdForRecommendedContent = assignedRecommendContentSections[Math.floor(Math.random() * assignedRecommendContentSections.length)]; + $ const sectionIdForRecommendedContent = assignedRecommendContentSections ? assignedRecommendContentSections[Math.floor(Math.random() * assignedRecommendContentSections.length)] : null; $ const queryParams = { sectionId: sectionIdForRecommendedContent, diff --git a/packages/global/components/document.marko b/packages/global/components/document.marko index e4f7f769f..5fc519bb1 100644 --- a/packages/global/components/document.marko +++ b/packages/global/components/document.marko @@ -6,6 +6,7 @@ $ const { req, nativeX, GAM, + contentMeterState, } = out.global; $ const omedaConfig = site.get('omeda'); @@ -120,6 +121,15 @@ $ const omedaConfig = site.get('omeda'); + + + <@below-wrapper> diff --git a/packages/global/components/layouts/content/wrapper.marko b/packages/global/components/layouts/content/wrapper.marko index 43aa02522..e189ae067 100644 --- a/packages/global/components/layouts/content/wrapper.marko +++ b/packages/global/components/layouts/content/wrapper.marko @@ -130,25 +130,27 @@ $ const fixedAdBottom = defaultValue(input.fixedAdBottom, true); - - - - - - - + + <@belowContainer> + + + $ const section = content.primarySection; + $ const labels = getAsArray(content, "labels"); + $ const isSponsored = labels.includes("Sponsored"); + $ const aliases = hierarchyAliases(section); + + + + + + + diff --git a/sites/forconstructionpros.com/config/identity-x/asphalt.js b/packages/global/config/identity-x/asphalt.js similarity index 87% rename from sites/forconstructionpros.com/config/identity-x/asphalt.js rename to packages/global/config/identity-x/asphalt.js index 167361472..83879b5c9 100644 --- a/sites/forconstructionpros.com/config/identity-x/asphalt.js +++ b/packages/global/config/identity-x/asphalt.js @@ -1,4 +1,4 @@ -const formDefault = require('@ac-business-media/package-global/config/identity-x/default'); +const formDefault = require('./default'); const form = { title: 'Asphalt Content Form', diff --git a/sites/forconstructionpros.com/config/identity-x/concrete.js b/packages/global/config/identity-x/concrete.js similarity index 87% rename from sites/forconstructionpros.com/config/identity-x/concrete.js rename to packages/global/config/identity-x/concrete.js index a660089bc..93d447d35 100644 --- a/sites/forconstructionpros.com/config/identity-x/concrete.js +++ b/packages/global/config/identity-x/concrete.js @@ -1,4 +1,4 @@ -const formDefault = require('@ac-business-media/package-global/config/identity-x/default'); +const formDefault = require('./default'); const form = { title: 'Concrete Content Form', diff --git a/packages/global/config/identity-x/default.js b/packages/global/config/identity-x/default.js index 620f51964..a0167d69b 100644 --- a/packages/global/config/identity-x/default.js +++ b/packages/global/config/identity-x/default.js @@ -42,7 +42,7 @@ module.exports = { label: 'Mobile Number', key: 'mobileNumber', type: 'built-in', - required: true, + required: false, width: 0.5, }, { diff --git a/sites/forconstructionpros.com/config/identity-x/equipment.js b/packages/global/config/identity-x/equipment.js similarity index 87% rename from sites/forconstructionpros.com/config/identity-x/equipment.js rename to packages/global/config/identity-x/equipment.js index aedb60253..a2b2ed199 100644 --- a/sites/forconstructionpros.com/config/identity-x/equipment.js +++ b/packages/global/config/identity-x/equipment.js @@ -1,4 +1,4 @@ -const formDefault = require('@ac-business-media/package-global/config/identity-x/default'); +const formDefault = require('./default'); const form = { title: 'Equipment Content Form', diff --git a/sites/forconstructionpros.com/config/identity-x/pavement.js b/packages/global/config/identity-x/pavement.js similarity index 87% rename from sites/forconstructionpros.com/config/identity-x/pavement.js rename to packages/global/config/identity-x/pavement.js index 52c2509eb..0b6f1214b 100644 --- a/sites/forconstructionpros.com/config/identity-x/pavement.js +++ b/packages/global/config/identity-x/pavement.js @@ -1,4 +1,4 @@ -const formDefault = require('@ac-business-media/package-global/config/identity-x/default'); +const formDefault = require('./default'); const form = { title: 'Pavement Content Form', diff --git a/sites/forconstructionpros.com/config/identity-x/rental.js b/packages/global/config/identity-x/rental.js similarity index 87% rename from sites/forconstructionpros.com/config/identity-x/rental.js rename to packages/global/config/identity-x/rental.js index 2daf7c1c1..5772aa843 100644 --- a/sites/forconstructionpros.com/config/identity-x/rental.js +++ b/packages/global/config/identity-x/rental.js @@ -1,4 +1,4 @@ -const formDefault = require('@ac-business-media/package-global/config/identity-x/default'); +const formDefault = require('./default'); const form = { title: 'Rental Content Form', diff --git a/sites/forconstructionpros.com/config/spec-guides/asphalt-paver.js b/packages/global/config/spec-guides/asphalt-paver.js similarity index 100% rename from sites/forconstructionpros.com/config/spec-guides/asphalt-paver.js rename to packages/global/config/spec-guides/asphalt-paver.js diff --git a/sites/forconstructionpros.com/config/spec-guides/backhoe-loader.js b/packages/global/config/spec-guides/backhoe-loader.js similarity index 100% rename from sites/forconstructionpros.com/config/spec-guides/backhoe-loader.js rename to packages/global/config/spec-guides/backhoe-loader.js diff --git a/sites/forconstructionpros.com/config/spec-guides/excavator.js b/packages/global/config/spec-guides/excavator.js similarity index 100% rename from sites/forconstructionpros.com/config/spec-guides/excavator.js rename to packages/global/config/spec-guides/excavator.js diff --git a/sites/forconstructionpros.com/config/spec-guides/index.js b/packages/global/config/spec-guides/index.js similarity index 100% rename from sites/forconstructionpros.com/config/spec-guides/index.js rename to packages/global/config/spec-guides/index.js diff --git a/sites/forconstructionpros.com/config/spec-guides/roller.js b/packages/global/config/spec-guides/roller.js similarity index 100% rename from sites/forconstructionpros.com/config/spec-guides/roller.js rename to packages/global/config/spec-guides/roller.js diff --git a/sites/forconstructionpros.com/config/spec-guides/skid-steer.js b/packages/global/config/spec-guides/skid-steer.js similarity index 100% rename from sites/forconstructionpros.com/config/spec-guides/skid-steer.js rename to packages/global/config/spec-guides/skid-steer.js diff --git a/packages/global/package.json b/packages/global/package.json index 803ce274c..fb1bba245 100644 --- a/packages/global/package.json +++ b/packages/global/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/package-global", - "version": "2.17.0", + "version": "2.17.4", "author": "Brandon Krigbaum ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/packages/global", "license": "MIT", @@ -13,34 +13,34 @@ "test": "yarn lint && yarn compile --no-clean" }, "dependencies": { - "@parameter1/base-cms-env": "^4.5.12", - "@parameter1/base-cms-image": "^4.47.1", - "@parameter1/base-cms-inflector": "^4.5.12", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-contact-us": "^4.40.3", - "@parameter1/base-cms-marko-web-deferred-script-loader": "^4.40.3", - "@parameter1/base-cms-marko-web-gam": "^4.55.1", - "@parameter1/base-cms-marko-web-gcse": "^4.40.3", - "@parameter1/base-cms-marko-web-gtm": "^4.73.0", - "@parameter1/base-cms-marko-web-html-sitemap": "^4.40.3", - "@parameter1/base-cms-marko-web-icons": "^4.36.8", - "@parameter1/base-cms-marko-web-identity-x": "^4.73.0", - "@parameter1/base-cms-marko-web-inquiry": "^4.73.0", - "@parameter1/base-cms-marko-web-leaders": "^4.73.0", - "@parameter1/base-cms-marko-web-native-x": "^4.73.0", - "@parameter1/base-cms-marko-web-omeda": "^4.51.0", - "@parameter1/base-cms-marko-web-omeda-identity-x": "^4.73.0", - "@parameter1/base-cms-marko-web-p1-events": "^4.73.0", - "@parameter1/base-cms-marko-web-search": "^4.55.4", - "@parameter1/base-cms-marko-web-social-sharing": "^4.55.4", - "@parameter1/base-cms-marko-web-theme-default": "^4.40.3", - "@parameter1/base-cms-marko-web-theme-monorail": "^4.73.0", - "@parameter1/base-cms-marko-web-theme-monorail-magazine": "^4.73.0", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", - "@parameter1/base-cms-web-common": "^4.55.4", + "@parameter1/base-cms-env": "^4.74.0", + "@parameter1/base-cms-image": "^4.74.0", + "@parameter1/base-cms-inflector": "^4.74.0", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-contact-us": "^4.74.0", + "@parameter1/base-cms-marko-web-deferred-script-loader": "^4.74.0", + "@parameter1/base-cms-marko-web-gam": "^4.74.0", + "@parameter1/base-cms-marko-web-gcse": "^4.74.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-html-sitemap": "^4.74.0", + "@parameter1/base-cms-marko-web-icons": "^4.80.4", + "@parameter1/base-cms-marko-web-identity-x": "^4.74.0", + "@parameter1/base-cms-marko-web-inquiry": "^4.74.2", + "@parameter1/base-cms-marko-web-leaders": "^4.80.4", + "@parameter1/base-cms-marko-web-native-x": "^4.80.0", + "@parameter1/base-cms-marko-web-omeda": "^4.74.0", + "@parameter1/base-cms-marko-web-omeda-identity-x": "^4.74.0", + "@parameter1/base-cms-marko-web-p1-events": "^4.74.0", + "@parameter1/base-cms-marko-web-search": "^4.80.4", + "@parameter1/base-cms-marko-web-social-sharing": "^4.74.0", + "@parameter1/base-cms-marko-web-theme-default": "^4.80.4", + "@parameter1/base-cms-marko-web-theme-monorail": "^4.81.0", + "@parameter1/base-cms-marko-web-theme-monorail-magazine": "^4.80.0", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", + "@parameter1/base-cms-web-common": "^4.80.0", "@parameter1/omeda-graphql-client-express": "^0.4.2", "@trevoreyre/autocomplete-vue": "^2.2.0", "body-parser": "^1.19.0", diff --git a/packages/global/scss/components/content-meter.scss b/packages/global/scss/components/content-meter.scss index 8709a17cd..5a7d192e0 100644 --- a/packages/global/scss/components/content-meter.scss +++ b/packages/global/scss/components/content-meter.scss @@ -57,6 +57,8 @@ $content-meter-mobile-breakpoint: 600px !default; } position: fixed; bottom: 0; + left: 0; + right: 0; // footer zindex is set to 1500 ;) z-index: 1501; width: 100%; diff --git a/packages/global/templates/magazine/index.marko b/packages/global/templates/magazine/index.marko index d8945ab6f..1fd951dff 100644 --- a/packages/global/templates/magazine/index.marko +++ b/packages/global/templates/magazine/index.marko @@ -10,7 +10,7 @@ $ const newsletterUrl = site.get('newsletter.externalUrl'); $ const type = "magazines"; $ const title = defaultValue(site.get("magazine.title"), "Magazine"); $ const description = site.get("magazine.description"); -$ const publicationIds = site.getAsArray("magazine.publicationIds"); +$ const publicationIds = site.getAsArray("magazines.publicationIds"); $ const requiresCoverImage = defaultValue(input.requiresCoverImage, true); $ const withHeader = defaultValue(input.withHeader, true); $ const link = { class: "btn btn-primary" } diff --git a/packages/leaders/package.json b/packages/leaders/package.json index ea1ad1dc6..28d6f89d1 100644 --- a/packages/leaders/package.json +++ b/packages/leaders/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/package-leaders", - "version": "2.16.6", + "version": "2.17.4", "author": "Josh Worden ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/packages/leaders", "license": "MIT", @@ -13,13 +13,13 @@ "test": "yarn lint && yarn compile --no-clean" }, "dependencies": { - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-gam": "^4.55.1", - "@parameter1/base-cms-marko-web-gtm": "^4.73.0", - "@parameter1/base-cms-marko-web-icons": "^4.36.8", - "@parameter1/base-cms-marko-web-leaders": "^4.73.0", - "@parameter1/base-cms-object-path": "^4.40.3", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-gam": "^4.74.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-icons": "^4.80.4", + "@parameter1/base-cms-marko-web-leaders": "^4.80.4", + "@parameter1/base-cms-object-path": "^4.74.0", "graphql-tag": "^2.10.1", "object-path": "^0.11.4" }, diff --git a/packages/refresh-theme/package.json b/packages/refresh-theme/package.json index 87c60a4b2..46bb9f35d 100644 --- a/packages/refresh-theme/package.json +++ b/packages/refresh-theme/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/refresh-theme", - "version": "2.16.6", + "version": "2.17.4", "author": "Jacob Bare ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/packages/refresh-theme", "license": "MIT", @@ -13,33 +13,33 @@ "test": "yarn lint && yarn compile --no-clean" }, "dependencies": { - "@ac-business-media/package-common": "^2.16.6", - "@ac-business-media/package-directory": "^2.16.6", - "@ac-business-media/package-leaders": "^2.16.6", - "@parameter1/base-cms-inflector": "^4.5.12", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-contact-us": "^4.40.3", - "@parameter1/base-cms-marko-web-deferred-script-loader": "^4.40.3", - "@parameter1/base-cms-marko-web-gam": "^4.55.1", - "@parameter1/base-cms-marko-web-gcse": "^4.40.3", - "@parameter1/base-cms-marko-web-gtm": "^4.73.0", - "@parameter1/base-cms-marko-web-icons": "^4.36.8", - "@parameter1/base-cms-marko-web-identity-x": "^4.73.0", - "@parameter1/base-cms-marko-web-inquiry": "^4.73.0", - "@parameter1/base-cms-marko-web-leaders": "^4.73.0", - "@parameter1/base-cms-marko-web-native-x": "^4.73.0", - "@parameter1/base-cms-marko-web-omeda": "^4.51.0", - "@parameter1/base-cms-marko-web-omeda-identity-x": "^4.73.0", - "@parameter1/base-cms-marko-web-p1-events": "^4.73.0", - "@parameter1/base-cms-marko-web-photoswipe": "^4.47.1", - "@parameter1/base-cms-marko-web-radix": "^4.5.12", - "@parameter1/base-cms-marko-web-reveal-ad": "^4.40.3", - "@parameter1/base-cms-marko-web-social-sharing": "^4.55.4", - "@parameter1/base-cms-marko-web-theme-default": "^4.40.3", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", + "@ac-business-media/package-common": "^2.17.4", + "@ac-business-media/package-directory": "^2.17.4", + "@ac-business-media/package-leaders": "^2.17.4", + "@parameter1/base-cms-inflector": "^4.74.0", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-contact-us": "^4.74.0", + "@parameter1/base-cms-marko-web-deferred-script-loader": "^4.74.0", + "@parameter1/base-cms-marko-web-gam": "^4.74.0", + "@parameter1/base-cms-marko-web-gcse": "^4.74.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-icons": "^4.80.4", + "@parameter1/base-cms-marko-web-identity-x": "^4.74.0", + "@parameter1/base-cms-marko-web-inquiry": "^4.74.2", + "@parameter1/base-cms-marko-web-leaders": "^4.80.4", + "@parameter1/base-cms-marko-web-native-x": "^4.80.0", + "@parameter1/base-cms-marko-web-omeda": "^4.74.0", + "@parameter1/base-cms-marko-web-omeda-identity-x": "^4.74.0", + "@parameter1/base-cms-marko-web-p1-events": "^4.74.0", + "@parameter1/base-cms-marko-web-photoswipe": "^4.74.0", + "@parameter1/base-cms-marko-web-radix": "^4.74.0", + "@parameter1/base-cms-marko-web-reveal-ad": "^4.74.0", + "@parameter1/base-cms-marko-web-social-sharing": "^4.74.0", + "@parameter1/base-cms-marko-web-theme-default": "^4.80.4", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", "@parameter1/omeda-graphql-client-express": "^0.2.3", "cheerio": "^1.0.0-rc.3", "graphql": "^14.5.4", diff --git a/services/ironpros-product-specs/package.json b/services/ironpros-product-specs/package.json index ee557baed..37f1c77a9 100644 --- a/services/ironpros-product-specs/package.json +++ b/services/ironpros-product-specs/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/ironpros-product-spec", - "version": "2.10.1", + "version": "2.17.4", "author": "Josh Worden ", "repository": "https://github.com/parameter1/ac-business-media/tree/master/services/ironpros-product-spec", "license": "MIT", @@ -21,7 +21,7 @@ ], "dependencies": { "@imgix/js-core": "3.8.0", - "@parameter1/base-cms-utils": "^4.40.3", + "@parameter1/base-cms-utils": "^4.74.0", "@parameter1/mongodb": "^1.6.0", "@parameter1/terminus": "^1.10.0", "dayjs": "^1.11.7", diff --git a/sites/asphalt.com/browser/.eslintrc.js b/sites/asphalt.com/browser/.eslintrc.js new file mode 100644 index 000000000..aef1da469 --- /dev/null +++ b/sites/asphalt.com/browser/.eslintrc.js @@ -0,0 +1,2 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +module.exports = require('@parameter1/base-cms-eslint/eslintrc.browser'); diff --git a/sites/asphalt.com/browser/index.js b/sites/asphalt.com/browser/index.js new file mode 100644 index 000000000..4eb7e7c2d --- /dev/null +++ b/sites/asphalt.com/browser/index.js @@ -0,0 +1,6 @@ +import Browser from '@parameter1/base-cms-marko-web/browser'; +import Shared from '@ac-business-media/package-global/browser'; + +Shared(Browser); + +export default Browser; diff --git a/sites/asphalt.com/browser/ssr.js b/sites/asphalt.com/browser/ssr.js new file mode 100644 index 000000000..e052147dc --- /dev/null +++ b/sites/asphalt.com/browser/ssr.js @@ -0,0 +1,3 @@ +import GlobalComponents from '@ac-business-media/package-global/browser/ssr'; + +export default GlobalComponents; diff --git a/sites/asphalt.com/config/categories.js b/sites/asphalt.com/config/categories.js new file mode 100644 index 000000000..e0a30c5df --- /dev/null +++ b/sites/asphalt.com/config/categories.js @@ -0,0 +1 @@ +module.exports = []; diff --git a/sites/asphalt.com/config/content-meter.js b/sites/asphalt.com/config/content-meter.js new file mode 100644 index 000000000..6811410e3 --- /dev/null +++ b/sites/asphalt.com/config/content-meter.js @@ -0,0 +1,6 @@ +const defaultConfig = require('@ac-business-media/package-global/config/content-meter'); + +module.exports = { + ...defaultConfig, + enabled: false, // process.env.ENABLE_CONTENT_METER === 'true', +}; diff --git a/sites/asphalt.com/config/core.js b/sites/asphalt.com/config/core.js new file mode 100644 index 000000000..f053ebf79 --- /dev/null +++ b/sites/asphalt.com/config/core.js @@ -0,0 +1 @@ +module.exports = {}; diff --git a/sites/asphalt.com/config/gam.js b/sites/asphalt.com/config/gam.js new file mode 100644 index 000000000..ab2fdf5ed --- /dev/null +++ b/sites/asphalt.com/config/gam.js @@ -0,0 +1,41 @@ +const configureGAM = require('@ac-business-media/package-global/config/gam'); + +const basePath = 'asphalt'; + +const config = configureGAM({ basePath }); + +config.setAliasAdUnits('default', [ + { name: 'top-leaderboard', templateName: 'LEADERBOARD', path: '/default/lb1' }, + { name: 'leaderboard', templateName: 'LEADERBOARD', path: '/default/lb1' }, + { name: 'lb-sticky-bottom', templateName: 'LB-STICKY-BOTTOM', path: '/default/lb1' }, + { name: 'rotation', templateName: 'ROTATION', path: '/default/rail1' }, + { name: 'rotation-rail', templateName: 'ROTATION-RAIL', path: '/default/rail1' }, + { name: 'top-rotation', templateName: 'TOP-ROTATION', path: '/default/rail1' }, + { name: 'top-rotation-mobile', templateName: 'TOP-ROTATION-MOBILE', path: '/default/rail1' }, + { name: 'top-rotation-desktop', templateName: 'TOP-ROTATION-DESKTOP', path: '/default/rail1' }, + { name: 'inline-content-mobile', templateName: 'INLINE-CONTENT-MOBILE', path: '/default/rail1' }, + { name: 'inline-content-desktop', templateName: 'INLINE-CONTENT-DESKTOP', path: '/default/rail1' }, + { name: 'reskin', path: '/default/reskin' }, +]); + +const aliases = [ + // { alias: 'application', prefix: 'application' }, + // { alias: 'production', prefix: 'production' }, + // { alias: 'business', prefix: 'business' }, +]; + +aliases.forEach(({ alias, prefix = alias }) => config.setAliasAdUnits(alias, [ + { name: 'top-leaderboard', templateName: 'LEADERBOARD', path: `/${prefix}/lb1` }, + { name: 'leaderboard', templateName: 'LEADERBOARD', path: `/${prefix}/lb1` }, + { name: 'footer-leaderboard', templateName: 'FOOTER-LEADERBOARD', path: `/${prefix}/lb1` }, + { name: 'rotation', templateName: 'ROTATION', path: `/${prefix}/rail1` }, + { name: 'rotation-rail', templateName: 'ROTATION-RAIL', path: `/${prefix}/rail1` }, + { name: 'top-rotation', templateName: 'TOP-ROTATION', path: `/${prefix}/rail1` }, + { name: 'top-rotation-mobile', templateName: 'TOP-ROTATION-MOBILE', path: `/${prefix}/rail1` }, + { name: 'top-rotation-desktop', templateName: 'TOP-ROTATION-DESKTOP', path: `/${prefix}/rail1` }, + { name: 'inline-content-mobile', templateName: 'INLINE-CONTENT-MOBILE', path: `/${prefix}/rail1` }, + { name: 'inline-content-desktop', templateName: 'INLINE-CONTENT-DESKTOP', path: `/${prefix}/rail1` }, + { name: 'reskin', path: `/${prefix}/reskin` }, +])); + +module.exports = config; diff --git a/sites/asphalt.com/config/i18n.js b/sites/asphalt.com/config/i18n.js new file mode 100644 index 000000000..8efac884c --- /dev/null +++ b/sites/asphalt.com/config/i18n.js @@ -0,0 +1,3 @@ +module.exports = { + 'sponsor content': 'Sponsored Content', +}; diff --git a/sites/asphalt.com/config/identity-x-opt-in-hooks.js b/sites/asphalt.com/config/identity-x-opt-in-hooks.js new file mode 100644 index 000000000..7e872c97d --- /dev/null +++ b/sites/asphalt.com/config/identity-x-opt-in-hooks.js @@ -0,0 +1,5 @@ +module.exports = { + onAuthenticationSuccess: { + productIds: [4299], // ACON Road Building Update + }, +}; diff --git a/sites/asphalt.com/config/identity-x.js b/sites/asphalt.com/config/identity-x.js new file mode 100644 index 000000000..6a1cf0a79 --- /dev/null +++ b/sites/asphalt.com/config/identity-x.js @@ -0,0 +1,41 @@ +const configureIdentityX = require('@ac-business-media/package-global/config/identity-x'); +const formDefault = require('@ac-business-media/package-global/config/identity-x/default'); +const asphalt = require('@ac-business-media/package-global/config/identity-x/asphalt'); +const concrete = require('@ac-business-media/package-global/config/identity-x/concrete'); +const equipment = require('@ac-business-media/package-global/config/identity-x/equipment'); +const pavement = require('@ac-business-media/package-global/config/identity-x/pavement'); +const rental = require('@ac-business-media/package-global/config/identity-x/rental'); + +formDefault.anonymousCta = 'Register on Forconstructionpros.com to download this document, gain access to premium content, and more.'; + +module.exports = configureIdentityX({ + appId: '5e28a2d858e67b162e55ae3b', + activeCustomFieldIds: [ + // Genral FCP + '66c4dd5510ae66087480bb09', // Primary Business + '66c4dedd10ae66008d80ea98', // Job Title + // // asphalt + // '66436fceafb6131c4a841f26', + // '66437894235da5b2358f59e9', + // // concrete + // '664370dc0635be5a37ae38f5', + // '66437775eab51a24312718de', + // // equipment + // '664b5f1cafb6137ba8469acc', + // '664b5d760635bea8c46106f0', + // // pavement + // '664b630aeab51a9936d99d59', + // '664b61a70635be184a616332', + // // rental + // '664b66b5a370d8a8013ab885', + // '664b6576eab51a8a95d9d881', + ], + forms: { + default: formDefault, + asphalt, + concrete, + equipment, + pavement, + rental, + }, +}); diff --git a/sites/asphalt.com/config/native-x.js b/sites/asphalt.com/config/native-x.js new file mode 100644 index 000000000..105880c3f --- /dev/null +++ b/sites/asphalt.com/config/native-x.js @@ -0,0 +1,14 @@ +const configureNativeX = require('@ac-business-media/package-global/config/native-x'); + +const config = configureNativeX(); + +config.enabled = true; +config.domainName = 'www.forconstructionpros.com'; + +config + .setAliasPlacements('default', [ + { name: 'default', id: '5b55e26b2360050001b7734a' }, + { name: 'premium-content', id: '5b55e26b2360050001b7734a' }, + { name: 'related-content', id: '5b55e26b2360050001b7734a' }, + ]); +module.exports = config; diff --git a/sites/asphalt.com/config/navigation.js b/sites/asphalt.com/config/navigation.js new file mode 100644 index 000000000..3c028fcf0 --- /dev/null +++ b/sites/asphalt.com/config/navigation.js @@ -0,0 +1,173 @@ +const user = require('@ac-business-media/package-global/config/user'); + +const subscribe = { + href: '/subscribe', + label: 'Subscribe', +}; + +const topics = [ + { href: '/application', label: 'Application' }, + { href: '/production', label: 'Production' }, + { href: '/business', label: 'Business' }, +]; + +const top = [ + ...topics, + { href: '/videos', label: 'Videos' }, + { href: '/awards', label: 'Awards' }, + { href: '/events', label: 'Events' }, + { href: '/premium-content', label: 'Premium Content' }, +]; + +const exclusives = [ + { href: '/specguide', label: 'Spec Guides' }, + { href: '/premium-content', label: 'Premium Content' }, + { href: 'https://www.pavexshow.com/', label: 'PAVE/X', target: '_blank' }, + { href: 'https://igniteconstructionsummit.com/', label: 'IGNITE', target: '_blank' }, + { href: '/videos', label: 'Videos' }, +]; + +const expertInsights = [ + { href: '/premium-content', label: 'Premium Content' }, + { href: '/events', label: 'Events' }, + { href: '/magazine', label: 'Magazine' }, + { href: '/awards', label: 'Awards' }, +]; + +const utilities = [ + { href: '/contact-us', label: 'Contact Us' }, + { href: 'https://www.constructionnetworkmediakit.com/', label: 'Advertise', target: '_blank' }, + { href: '/page/privacy-policy', label: 'Privacy Policy', target: '_blank' }, + { href: '/page/terms-conditions', label: 'Terms & Conditions', target: '_blank' }, +]; + +const mobileMenu = { + user, + primary: [ + ...topics, + { href: '/videos', label: 'Video' }, + { href: '/events', label: 'Events' }, + ], + secondary: [ + { href: '/page/Subscribe-Links', label: 'Magazines' }, + { href: 'https://acbusiness.dragonforms.com/loading.do?omedasite=FCP_prefs_ProgReg', label: 'Newsletters' }, + { href: 'https://www.constructionnetworkmediakit.com/', label: 'Advertise', target: '_blank' }, + ], +}; + +const tertiaryItems = [ + { + href: '/page/Subscribe-Links', + label: 'Magazines', + icon: 'book', + forceLabel: true, + }, + { + href: 'https://acbusiness.dragonforms.com/loading.do?omedasite=FCP_prefs_ProgReg', + label: 'Newsletters', + icon: 'mail', + forceLabel: true, + target: '_blank', + }, +]; + +const tertiary = { items: [...tertiaryItems, ...user.items] }; + +module.exports = { + type: 'navbar-c', + promos: [ + { + title: subscribe.label, + callToAction: subscribe.label, + link: subscribe.href, + }, + ], + user, + mobileMenu, + topics, + primary: { + items: [], + }, + secondary: { + items: [ + ...top, + ], + }, + tertiary, + contexts: [ + { + when: ['/application'], + secondary: { items: top }, + tertiary, + primary: { + items: [ + { href: '/application/paving', label: 'Paving' }, + { href: '/application/milling', label: 'Milling' }, + { href: '/application/preservation', label: 'Preservation' }, + { href: '/application/technology', label: 'Technology' }, + { href: '/application/compaction', label: 'Compaction' }, + { href: '/application/dirt-work', label: 'Dirt Work' }, + { href: '/application/infrastructure', label: 'Infrastructure' }, + ], + }, + }, + { + when: ['/production'], + secondary: { items: top }, + tertiary, + primary: { + items: [ + { href: '/production/plants', label: 'Plants' }, + { href: '/production/quality-control', label: 'Quality Control' }, + { href: '/production/aggregates', label: 'Aggregates' }, + ], + }, + }, + { + when: ['/business'], + secondary: { items: top }, + tertiary, + primary: { + items: [ + { href: '/business/managment', label: 'Managment' }, + { href: '/business/workforce', label: 'Workforce' }, + { href: '/business/safety', label: 'Safety' }, + ], + }, + }, + ], + toggleMenu: { + about: { + // label: 'About', + // items: utilities, + }, + col1: { + label: 'Topics', + items: [ + ...topics, + ], + }, + col2: { + label: 'Exclusives', + items: [ + ...exclusives, + ], + }, + col3: { + label: 'Expert Insights', + items: [...expertInsights], + }, + col4: { + label: 'Resources', + items: utilities, + }, + }, + footer: { + topics, + more: exclusives, + items: [ + ...utilities, + { href: '/site-map', label: 'Site Map' }, + ], + }, +}; diff --git a/sites/asphalt.com/config/newsletter.js b/sites/asphalt.com/config/newsletter.js new file mode 100644 index 000000000..889d7a6ce --- /dev/null +++ b/sites/asphalt.com/config/newsletter.js @@ -0,0 +1,30 @@ +const defaults = { + name: 'Stay in the Know', + description: 'Get industry news updates and product information to help you stay up to date.', + defaultNewsletter: { + deploymentTypeId: 0, + name: 'TBD', + eventCategory: 'TBD', + }, + privacyPolicy: { + href: '/page/privacy-policy', + label: 'Privacy Policy', + target: '_blank', + }, +}; + +module.exports = { + // uses inline omeda form + signupBanner: { + ...defaults, + // imagePath: 'files/base/acbm/fcp/image/static/newsletter-pushdown/fg-full.png', + }, + // pushdown: { + // ...defaults, + // imagePath: 'files/base/wattglobalmedia/all/image/static/newsletter-pushdown/fg-half.png', + // description: '', + // }, + signupFooter: { + ...defaults, + }, +}; diff --git a/sites/asphalt.com/config/omeda-identity-x.js b/sites/asphalt.com/config/omeda-identity-x.js new file mode 100644 index 000000000..01b271551 --- /dev/null +++ b/sites/asphalt.com/config/omeda-identity-x.js @@ -0,0 +1,11 @@ +const config = require('@ac-business-media/package-global/config/omeda-identity-x'); +const omedaConfig = require('./omeda'); +const idxConfig = require('./identity-x'); + +module.exports = config({ + omedaConfig, + idxConfig, + // @todo: rapidIdentProductId & siteId + rapidIdentProductId: 15375, + websiteBehaviorAttributeId: 524706, +}); diff --git a/sites/asphalt.com/config/omeda.js b/sites/asphalt.com/config/omeda.js new file mode 100644 index 000000000..e040d9728 --- /dev/null +++ b/sites/asphalt.com/config/omeda.js @@ -0,0 +1,5 @@ +const config = require('@ac-business-media/package-global/config/omeda'); + +module.exports = config({ + inputId: process.env.OMEDA_INPUT_ID, +}); diff --git a/sites/asphalt.com/config/page-details.js b/sites/asphalt.com/config/page-details.js new file mode 100644 index 000000000..2bd77d65b --- /dev/null +++ b/sites/asphalt.com/config/page-details.js @@ -0,0 +1,6 @@ +module.exports = { + recommended: { + title: 'Recommended Content', + tocHeader: 'Select a Persona:', + }, +}; diff --git a/sites/asphalt.com/config/site.js b/sites/asphalt.com/config/site.js new file mode 100644 index 000000000..1ba06b26a --- /dev/null +++ b/sites/asphalt.com/config/site.js @@ -0,0 +1,130 @@ +const corporate = require('@ac-business-media/package-global/config/corporate'); +const specGuides = require('@ac-business-media/package-global/config/spec-guides'); +const roller = require('@ac-business-media/package-global/config/spec-guides/roller'); + +specGuides.guides = { roller }; +specGuides.title = 'Asphat.com Spec Guides'; +specGuides.description = 'Asphalt.com Spec Guides are essential industry tools to help you make the right choices when purchasing or renting aphalt equipment. Use the industry’s first and only completely interactive component specifiers custom built for construction equipment owners and end users.'; + +const contentMeter = require('./content-meter'); +const gam = require('./gam'); +const identityX = require('./identity-x'); +const nativeX = require('./native-x'); +const navigation = require('./navigation'); +const newsletter = require('./newsletter'); +const omeda = require('./omeda'); +const omedaIdentityX = require('./omeda-identity-x'); +const identityXOptInHooks = require('./identity-x-opt-in-hooks'); +const pageDetails = require('./page-details'); + +const sectionSearchIds = [ + 88709, // Application + 88717, // Production + 88721, // Business +]; + +const notificationBG = '#9acb3c'; + +module.exports = { + // Module configs + useLinkInjectedBody: process.env.USE_LINK_INJECTED_BODY || true, + contentMeter, + sectionFeed: { + imageOptions: { w: 240, h: 135, ar: '16:9' }, + mobileImageOptions: { w: 240, h: 135, ar: '16:9' }, + modifiers: ['section-feed-mobile-cards'], + }, + gam, + identityX, + nativeX, + navigation, + newsletter, + omeda, + omedaIdentityX, + identityXOptInHooks, + magazines: { + publicationIds: ['53ca94211784f8066eb2c983'], + description: '', + }, + wufoo: { + userName: 'acbm', + }, + gcse: { + id: '003355913687346718228:la4zrhjf2r9', + }, + // Site configs + useRecommendedSectionAlias: true, + idxNavItems: { + enable: process.env.IDX_NAV_ENABLE || false, + }, + company: corporate.name, + p1events: { + tenant: 'acbm', + enabled: true, + cookieDomain: process.env.NODE_ENV === 'production' ? 'www.asphalt.com' : '', + }, + logos: { + navbar: { + src: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/asphalt_bw_logo.png?h=45&auto=format,compress', + srcset: [ + 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/asphalt_bw_logo.png?h=90&auto=format,compress 2x', + ], + // src: 'https://s3.amazonaws.com/media.base.parameter1.com/files/base/acbm/fcp/image/static/logo/FCP-logo-high-res.png?h=45&auto=format,compress', + // srcset: [ + // 'https://s3.amazonaws.com/media.base.parameter1.com/files/base/acbm/fcp/image/static/logo/FCP-logo-high-res.png?h=90&auto=format,compress 2x', + // ], + }, + footer: { + src: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/asphalt_bw_logo.png?h=45&auto=format,compress', + srcset: [ + 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/asphalt_bw_logo.png?h=90&auto=format,compress 2x', + ], + }, + corporate: corporate.logo, + }, + useSectionLogos: true, + tagline: ' ', + socialMediaLinks: [ + { provider: 'facebook', href: 'https://www.facebook.com/Asphalt.Contractor', target: '_blank' }, + { provider: 'twitter', href: 'https://twitter.com/AsphaltContrctr', target: '_blank' }, + { provider: 'instagram', href: 'https://www.instagram.com/asphaltcontractor', target: '_blank' }, + { provider: 'linkedin', href: 'https://www.linkedin.com/company/asphalt-contractor-magazine', target: '_blank' }, + ], + podcastLinks: [], + gtm: { + containerId: 'GTM-TZ3X9R99', + }, + contactUs: { + notificationDefaults: { + branding: { + bgColor: notificationBG, + logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/asphalt_bw_logo.png?h=45&auto=format,compress', + }, + to: 'support@asphalt.com', + from: 'Asphalt Contractor ', + }, + branding: { + bgColor: notificationBG, + logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/asphalt_bw_logo.png?h=45&auto=format,compress', + }, + to: 'support@asphalt.com', + }, + inquiry: { + enabled: true, + directSend: true, + sendTo: 'requestmoreinfo@acbusinessmedia.com', + sendFrom: 'Asphalt.com ', + logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/asphalt_bw_logo.png?h=45&auto=format,compress&bg=000000&pad=5', + bgColor: notificationBG, + }, + pageDetails, + showCompanySectionFilters: true, + sectionSearchIds, + search: { + assignedToWebsiteSectionIds: sectionSearchIds, + }, + specGuides, + mindful: { + namespace: 'acbm/default', + }, +}; diff --git a/sites/asphalt.com/config/subscribe.js b/sites/asphalt.com/config/subscribe.js new file mode 100644 index 000000000..0bd12d81c --- /dev/null +++ b/sites/asphalt.com/config/subscribe.js @@ -0,0 +1,4 @@ +module.exports = { + href: '/subscribe', + label: 'Subscribe', +}; diff --git a/sites/asphalt.com/index.js b/sites/asphalt.com/index.js new file mode 100644 index 000000000..8f51d4bad --- /dev/null +++ b/sites/asphalt.com/index.js @@ -0,0 +1,16 @@ +const startServer = require('@ac-business-media/package-global/start-server'); + +const routes = require('./server/routes'); +const siteConfig = require('./config/site'); +const coreConfig = require('./config/core'); +const i18n = require('./config/i18n'); + +const { log } = console; + +module.exports = startServer({ + rootDir: __dirname, + coreConfig, + siteConfig, + routes, + i18n: (v) => i18n[`${v}`.toLowerCase()] || v, +}).then(() => log('Website started!')).catch((e) => setImmediate(() => { throw e; })); diff --git a/sites/asphalt.com/newrelic.js b/sites/asphalt.com/newrelic.js new file mode 100644 index 000000000..de6cb99b9 --- /dev/null +++ b/sites/asphalt.com/newrelic.js @@ -0,0 +1 @@ +module.exports = require('@ac-business-media/package-global/newrelic'); diff --git a/sites/asphalt.com/package.json b/sites/asphalt.com/package.json new file mode 100644 index 000000000..d335fdc39 --- /dev/null +++ b/sites/asphalt.com/package.json @@ -0,0 +1,45 @@ +{ + "name": "@ac-business-media/asphalt.com", + "version": "2.17.4", + "author": "Brian Miller ", + "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/asphalt.com", + "license": "MIT", + "private": true, + "website": { + "id": "675738bf11878ad52d62f188", + "tenant": "acbm_fcp", + "account": "acbm", + "stack": "tauron", + "key": "acon", + "deploy": true + }, + "scripts": { + "dev": "basecms-website dev --compile-dir ../../packages --watch-dir ../../packages --purge-css-content-dir ../../packages --purge-css-content-dir ../../node_modules/@parameter1", + "build": "basecms-website build --purge-css-content-dir ../../packages --purge-css-content-dir ../../node_modules/@parameter1", + "build:css": "basecms-website build:css --purge-content-dir ../../packages --purge-content-dir ../../node_modules/@parameter1", + "compile": "basecms-marko-compile compile", + "lint": "eslint --ext .js --ext .vue --max-warnings 5 --config ../../.eslintrc.js --ignore-path ../../.eslintignore ./", + "lint:fix": "yarn lint --fix", + "test": "yarn lint && yarn compile --no-clean" + }, + "engines": { + "node": ">=14.15" + }, + "os": [ + "darwin", + "linux", + "win32" + ], + "dependencies": { + "@ac-business-media/package-global": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-identity-x": "^4.74.0", + "@parameter1/base-cms-marko-web-p1-events": "^4.74.0", + "@parameter1/base-cms-marko-web-theme-monorail": "^4.81.0", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0" + } +} diff --git a/sites/asphalt.com/server/marko.json b/sites/asphalt.com/server/marko.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/sites/asphalt.com/server/marko.json @@ -0,0 +1,2 @@ +{ +} diff --git a/sites/asphalt.com/server/public/android-chrome-192x192.png b/sites/asphalt.com/server/public/android-chrome-192x192.png new file mode 100644 index 000000000..5a3d02256 Binary files /dev/null and b/sites/asphalt.com/server/public/android-chrome-192x192.png differ diff --git a/sites/asphalt.com/server/public/android-chrome-512x512.png b/sites/asphalt.com/server/public/android-chrome-512x512.png new file mode 100644 index 000000000..ec6d4d507 Binary files /dev/null and b/sites/asphalt.com/server/public/android-chrome-512x512.png differ diff --git a/sites/asphalt.com/server/public/apple-touch-icon.png b/sites/asphalt.com/server/public/apple-touch-icon.png new file mode 100644 index 000000000..cb2dd12d3 Binary files /dev/null and b/sites/asphalt.com/server/public/apple-touch-icon.png differ diff --git a/sites/asphalt.com/server/public/favicon-16x16.png b/sites/asphalt.com/server/public/favicon-16x16.png new file mode 100644 index 000000000..c22e99ac1 Binary files /dev/null and b/sites/asphalt.com/server/public/favicon-16x16.png differ diff --git a/sites/asphalt.com/server/public/favicon-32x32.png b/sites/asphalt.com/server/public/favicon-32x32.png new file mode 100644 index 000000000..bdb1fb55a Binary files /dev/null and b/sites/asphalt.com/server/public/favicon-32x32.png differ diff --git a/sites/asphalt.com/server/public/favicon.ico b/sites/asphalt.com/server/public/favicon.ico new file mode 100644 index 000000000..6beada4ad Binary files /dev/null and b/sites/asphalt.com/server/public/favicon.ico differ diff --git a/sites/asphalt.com/server/public/robots.txt b/sites/asphalt.com/server/public/robots.txt new file mode 100644 index 000000000..c96f29aa3 --- /dev/null +++ b/sites/asphalt.com/server/public/robots.txt @@ -0,0 +1,10 @@ +# www.robotstxt.org/ +# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449 + +User-agent: * +Disallow: * +Disallow: /__ +Disallow: /print/content + +Sitemap: https://www.asphalt.com/sitemap.xml +Sitemap: https://www.asphalt.com/sitemap-google-news.xml diff --git a/sites/asphalt.com/server/public/site.webmanifest b/sites/asphalt.com/server/public/site.webmanifest new file mode 100644 index 000000000..45dc8a206 --- /dev/null +++ b/sites/asphalt.com/server/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/sites/asphalt.com/server/routes/content.js b/sites/asphalt.com/server/routes/content.js new file mode 100644 index 000000000..647062c2a --- /dev/null +++ b/sites/asphalt.com/server/routes/content.js @@ -0,0 +1,108 @@ +const contentMetering = require('@parameter1/base-cms-marko-web-theme-monorail/middleware/content-metering'); + +const withContent = require('@ac-business-media/package-global/middleware/with-content'); +const { formatContentResponse } = require('@ac-business-media/package-global/middleware/format-content-response'); +const { newsletterState } = require('@ac-business-media/package-global/middleware/newsletter-state'); +const loaderFragment = require('@ac-business-media/package-global/graphql/fragments/content-primary-section'); +const qf = require('@ac-business-media/package-global/graphql/fragments/content-page'); +const company = require('@ac-business-media/package-global/templates/content/company'); +const contact = require('@ac-business-media/package-global/templates/content/contact'); +const product = require('@ac-business-media/package-global/templates/content/product'); +const webinar = require('@ac-business-media/package-global/templates/content/webinar'); +const whitepaper = require('@ac-business-media/package-global/templates/content/whitepaper'); +const content = require('@ac-business-media/package-global/templates/content/default'); +const redirectHandler = require('@ac-business-media/package-global/redirect-handler'); + +function redirectToFn({ content: contentItem, requestingSiteId }) { + const existingRedirect = redirectHandler({ + from: `/${contentItem.id}`, + app: { locals: { config: { website: () => requestingSiteId } } }, + }); + if (existingRedirect) { + return existingRedirect.to; + } + if (contentItem.deletedContent && contentItem.type === 'company') { + return '/directory'; + } + return null; +} + +module.exports = (app) => { + const { site } = app.locals; + // base on site config||USE_LINK_INJECTED_BODY to enable bcl + const useLinkInjectedBody = site.get('useLinkInjectedBody'); + const queryFragment = qf.factory ? qf.factory( + { useLinkInjectedBody, withMagazineSchedules: true }, + ) : qf; + const routesList = [ + { // contact + regex: '/*?contact/:id(\\d{8})*', + template: contact, + queryFragment, + loaderFragment, + }, + { // company + regex: '/*?company/:id(\\d{8})*', + template: company, + queryFragment, + loaderFragment, + }, + { // document + regex: '/*?document/:id(\\d{8})*', + template: whitepaper, + queryFragment, + loaderFragment, + }, + { // product + regex: '/*?product/:id(\\d{8})*', + template: product, + queryFragment, + loaderFragment, + }, + { // webinar + regex: '/*?webinar/:id(\\d{8})*', + template: webinar, + queryFragment, + loaderFragment, + }, + { // whitepaper + regex: '/*?whitepaper/:id(\\d{8})*', + template: whitepaper, + queryFragment, + loaderFragment, + }, + { // default + regex: '/*?/:id(\\d{8})/*|/:id(\\d{8})(/|$)*', + template: content, + queryFragment, + loaderFragment, + withContentMeter: true, + }, + ]; + + const cmConfig = site.getAsObject('contentMeter'); + const contentMeterEnable = cmConfig.enabled; + // determin to use newsletterstate or contentMeter middleware + routesList.forEach((route) => { + if (route.withContentMeter && contentMeterEnable) { + app.get( + route.regex, + newsletterState({ setCookie: false }), + contentMetering(cmConfig), + withContent({ + template: route.template, + queryFragment: route.queryFragment, + formatResponse: formatContentResponse, + redirectToFn, + }), + ); + } else { + app.get(route.regex, newsletterState({ setCookie: false }), withContent({ + template: route.template, + queryFragment: route.queryFragment, + formatResponse: formatContentResponse, + redirectToFn, + })); + } + }); +}; diff --git a/sites/asphalt.com/server/routes/home.js b/sites/asphalt.com/server/routes/home.js new file mode 100644 index 000000000..b8d255fa4 --- /dev/null +++ b/sites/asphalt.com/server/routes/home.js @@ -0,0 +1,11 @@ +const { withWebsiteSection } = require('@parameter1/base-cms-marko-web/middleware'); +const queryFragment = require('@parameter1/base-cms-marko-web-theme-monorail/graphql/fragments/website-section-page'); +const home = require('../templates/index'); + +module.exports = (app) => { + app.get('/', withWebsiteSection({ + aliasResolver: () => 'home', + template: home, + queryFragment, + })); +}; diff --git a/sites/asphalt.com/server/routes/index.js b/sites/asphalt.com/server/routes/index.js new file mode 100644 index 000000000..fb3748332 --- /dev/null +++ b/sites/asphalt.com/server/routes/index.js @@ -0,0 +1,39 @@ +// const directory = require('@ac-business-media/package-global/routes/directory'); +const dynamicPages = require('@ac-business-media/package-global/routes/dynamic-page'); +const nativeX = require('@ac-business-media/package-global/routes/native-x'); + +const home = require('./home'); +const content = require('./content'); +const websiteSections = require('./website-section'); +const specguide = require('./spec-guide'); + +module.exports = (app) => { + // Homepage + home(app); + + // Dynamic Pages + dynamicPages(app); + + // Content Pages + content(app); + + specguide(app); + + // // Directory Pages have to happen after content or they wont match + // directory(app, { + // assignedToWebsiteSectionIds: [ + // 54289, // Asphalt + // 54300, // Business + // 54436, // Concrete + // 54319, // Construction Technology + // 54330, // Equipment + // 54468, // Pavement Maintenance + // ], + // }); + + // Native-X story rendering + nativeX(app); + + // Website Sections + websiteSections(app); +}; diff --git a/sites/asphalt.com/server/routes/spec-guide.js b/sites/asphalt.com/server/routes/spec-guide.js new file mode 100644 index 000000000..0d1a08668 --- /dev/null +++ b/sites/asphalt.com/server/routes/spec-guide.js @@ -0,0 +1,22 @@ +const index = require('@ac-business-media/package-global/templates/spec-guide'); +const guide = require('@ac-business-media/package-global/templates/spec-guide/guide'); + +const { keys } = Object; + +module.exports = (app) => { + const { specGuides } = app.locals; + if (specGuides) { + const { rootPath = '/specguide' } = specGuides; + app.get(rootPath, (req, res) => { + res.marko(index); + }); + + keys(specGuides.guides).forEach((alias) => { + app.get(`${rootPath}/${alias}`, (req, res) => { + res.marko(guide, { + alias, + }); + }); + }); + } +}; diff --git a/sites/asphalt.com/server/routes/website-section.js b/sites/asphalt.com/server/routes/website-section.js new file mode 100644 index 000000000..a5f41cd9c --- /dev/null +++ b/sites/asphalt.com/server/routes/website-section.js @@ -0,0 +1,62 @@ +const { withWebsiteSection } = require('@parameter1/base-cms-marko-web/middleware'); +const queryFragment = require('@ac-business-media/package-global/graphql/fragments/website-section-page'); +const blogs = require('@ac-business-media/package-global/templates/website-section/blogs'); +const webinars = require('@ac-business-media/package-global/templates/website-section/webinars'); +const upcomingEvents = require('@ac-business-media/package-global/templates/website-section/upcoming-events'); +const section = require('@ac-business-media/package-global/templates/website-section'); +const promoCards = require('@ac-business-media/package-global/templates/website-section/promo-cards'); +const sectionWithoutNativeX = require('@ac-business-media/package-global/templates/website-section/without-native-x'); +const sectionWithoutAds = require('@ac-business-media/package-global/templates/website-section/feed-without-ads'); +const contactUs = require('@ac-business-media/package-global/templates/website-section/contact-us'); +const staticDirectory = require('../templates/website-section/static-directory'); + +const withoutNativeXAlias = [ +]; + +const withoutAdsAliases = [ + 'premium-content', + 'whitepapers', +]; + +module.exports = (app) => { + app.get('/:alias(podcasts|videos|awards)', withWebsiteSection({ + template: promoCards, + queryFragment, + })); + app.get('/:alias(webinars)', withWebsiteSection({ + template: webinars, + queryFragment, + })); + app.get('/:alias(contact-us)', withWebsiteSection({ + template: contactUs, + queryFragment, + })); + withoutNativeXAlias.forEach((alias) => { + app.get(`/:alias(${alias})`, withWebsiteSection({ + template: sectionWithoutNativeX, + queryFragment, + })); + }); + withoutAdsAliases.forEach((alias) => { + app.get(`/:alias(${alias})`, withWebsiteSection({ + template: sectionWithoutAds, + queryFragment, + })); + }); + app.get('/:alias(events)', withWebsiteSection({ + template: upcomingEvents, + queryFragment, + })); + app.get('/:alias(blogs)', withWebsiteSection({ + template: blogs, + queryFragment, + })); + app.get('/:alias(directory)', withWebsiteSection({ + template: staticDirectory, + queryFragment, + })); + app.get('/:alias([a-z0-9-/]+)', withWebsiteSection({ + template: section, + queryFragment, + })); +}; diff --git a/sites/asphalt.com/server/styles/index.scss b/sites/asphalt.com/server/styles/index.scss new file mode 100644 index 000000000..ca80565ab --- /dev/null +++ b/sites/asphalt.com/server/styles/index.scss @@ -0,0 +1,128 @@ +$theme-site-header-breakpoints: ( + hide-primary: 1100px, + hide-secondary: 700px, + small-logo: 775px, + small-text-primary: 0, + small-text-secondary: 830px +); + + +// Colors +$primary: #9acb3c; +$secondary: #495057; +$light: #e9ecef; +$dark: #212529; +$info: #6c757d; + +$skin-block-header-overline-color: $dark; +$theme-site-navbar-secondary-font-size: 12px !default; + +@import "@ac-business-media/package-global/scss/core"; + +/*! purgecss start ignore */ +/*! critical:start|website-section.directory */ +@import "@ac-business-media/package-global/scss/components/directory-static"; +/*! critical:end|website-section.directory */ +// Will most likely move to sites. +@import "@ac-business-media/package-global/scss/components/reveal-ad"; +/*! purgecss end ignore */ +/*! critical:end */ + +.spec-guide-button { + $color: #1e5d92; + @include button-variant($color, $color); + + &--asphalt-paver { + $color: #751c1c; + @include button-variant($color, $color); + } + + &--roller { + $color: #fdb813; + @include button-variant($color, $color); + } +} + +.newsletter-form { + > .newsletter-signup-banner { + background-color: #3F4043; + color: $white; + + &__name, + &__description, + label, + a { + color: $white; + } + .btn-primary, + .btn-primary:hover { + background-color: $primary; + color: $black; + } + &--large { + background-color: #3F4043; + .newsletter-signup-banner__name, + .newsletter-signup-banner__description, + label, + a { + color: $white; + } + .btn-primary, + .btn-primary:hover { + background-color: $primary; + color: $black; + } + } + } +} + + + + +body .document-container > .page--website-section-77798:first-of-type, +body .document-container > .page--website-section-57411:first-of-type, +body .document-container > .page--website-section-85252:first-of-type, +body .document-container > .page--website-section-86540:first-of-type, +body .document-container > .page--website-section-81549:first-of-type, +body .document-container > .page--spec-guide-index:first-of-type, +body .document-container > .page--spec-guide:first-of-type, +body .document-container > .page--without-ads:first-of-type { + margin-top: 0; +} + +.site-navbar { + $self: &; + &__logo { + height: 45px; + } + // remove dynamic color changers instead show top with primary & secondary black. + &--top, + &--secondary { + background-color: $primary; + #{ $self } { + &__link:hover, + &__link--active { + color: $white; + font-weight: bold; + } + } + } + + &--primary { + #{ $self } { + &__link:hover, + &__link--active { + color: $primary; + font-weight: bold; + } + } + } + + &__items--tertiary { + #{ $self }__link { + padding-right: 0 + } + } +} +/*! purgecss end ignore */ +/*! critical:end */ diff --git a/sites/asphalt.com/server/templates/index.marko b/sites/asphalt.com/server/templates/index.marko new file mode 100644 index 000000000..1376ee3d4 --- /dev/null +++ b/sites/asphalt.com/server/templates/index.marko @@ -0,0 +1,8 @@ +$ const { id, alias, name, pageNode } = input; + + diff --git a/sites/asphalt.com/server/templates/website-section/static-directory.marko b/sites/asphalt.com/server/templates/website-section/static-directory.marko new file mode 100644 index 000000000..d94b3e3a1 --- /dev/null +++ b/sites/asphalt.com/server/templates/website-section/static-directory.marko @@ -0,0 +1,12 @@ +import categories from "../../../config/categories"; + +$ const { id, alias, name, pageNode } = input; + + + <@directory facets=categories /> + diff --git a/sites/foodlogistics.com/package.json b/sites/foodlogistics.com/package.json index 172bf1181..ad02c8a90 100644 --- a/sites/foodlogistics.com/package.json +++ b/sites/foodlogistics.com/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/foodlogistics.com", - "version": "2.16.6", + "version": "2.17.4", "author": "Jacob Bare ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/foodlogistics.com", "license": "MIT", @@ -30,13 +30,13 @@ "win32" ], "dependencies": { - "@ac-business-media/package-directory": "^2.16.6", - "@ac-business-media/refresh-theme": "^2.16.6", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", + "@ac-business-media/package-directory": "^2.17.4", + "@ac-business-media/refresh-theme": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", "graphql": "^14.5.4", "graphql-tag": "^2.10.1" } diff --git a/sites/forconstructionpros.com/config/content-meter.js b/sites/forconstructionpros.com/config/content-meter.js index 04f4727a5..e71612859 100644 --- a/sites/forconstructionpros.com/config/content-meter.js +++ b/sites/forconstructionpros.com/config/content-meter.js @@ -2,5 +2,5 @@ const defaultConfig = require('@ac-business-media/package-global/config/content- module.exports = { ...defaultConfig, - enabled: process.env.ENABLE_CONTENT_METER === 'true', + enabled: true, // process.env.ENABLE_CONTENT_METER === 'true', }; diff --git a/sites/forconstructionpros.com/config/gam.js b/sites/forconstructionpros.com/config/gam.js index dc2e3b008..5fe9c308b 100644 --- a/sites/forconstructionpros.com/config/gam.js +++ b/sites/forconstructionpros.com/config/gam.js @@ -35,7 +35,6 @@ const aliases = [ { alias: 'construction-technology', prefix: 'construction-technology' }, { alias: 'business', prefix: 'business' }, { alias: 'conexpo', prefix: 'conexpo' }, - { alias: 'profit-matters', prefix: 'profit-matters' }, ]; aliases.forEach(({ alias, prefix = alias }) => config.setAliasAdUnits(alias, [ diff --git a/sites/forconstructionpros.com/config/identity-x.js b/sites/forconstructionpros.com/config/identity-x.js index 4c12c919c..6a1cf0a79 100644 --- a/sites/forconstructionpros.com/config/identity-x.js +++ b/sites/forconstructionpros.com/config/identity-x.js @@ -1,10 +1,10 @@ const configureIdentityX = require('@ac-business-media/package-global/config/identity-x'); const formDefault = require('@ac-business-media/package-global/config/identity-x/default'); -const asphalt = require('./identity-x/asphalt'); -const concrete = require('./identity-x/concrete'); -const equipment = require('./identity-x/equipment'); -const pavement = require('./identity-x/pavement'); -const rental = require('./identity-x/rental'); +const asphalt = require('@ac-business-media/package-global/config/identity-x/asphalt'); +const concrete = require('@ac-business-media/package-global/config/identity-x/concrete'); +const equipment = require('@ac-business-media/package-global/config/identity-x/equipment'); +const pavement = require('@ac-business-media/package-global/config/identity-x/pavement'); +const rental = require('@ac-business-media/package-global/config/identity-x/rental'); formDefault.anonymousCta = 'Register on Forconstructionpros.com to download this document, gain access to premium content, and more.'; diff --git a/sites/forconstructionpros.com/config/native-x.js b/sites/forconstructionpros.com/config/native-x.js index af7e93878..de85df6f5 100644 --- a/sites/forconstructionpros.com/config/native-x.js +++ b/sites/forconstructionpros.com/config/native-x.js @@ -41,11 +41,6 @@ config { name: 'premium-content', id: '5b55e253dfcd9c00010676b5' }, { name: 'related-content', id: '5b55e253dfcd9c00010676b5' }, ]) - .setAliasPlacements('profit-matters', [ - { name: 'default', id: '5b55e2b5dfcd9c00010676b8' }, - { name: 'premium-content', id: '5b55e2b5dfcd9c00010676b8' }, - { name: 'related-content', id: '5b55e2b5dfcd9c00010676b8' }, - ]) .setAliasPlacements('rental', [ { name: 'default', id: '5b55e29d2360050001b7734c' }, { name: 'premium-content', id: '5b55e29d2360050001b7734c' }, diff --git a/sites/forconstructionpros.com/config/navigation.js b/sites/forconstructionpros.com/config/navigation.js index 6a86928ed..f54060b22 100644 --- a/sites/forconstructionpros.com/config/navigation.js +++ b/sites/forconstructionpros.com/config/navigation.js @@ -14,7 +14,7 @@ const topics = [ { href: '/construction-technology', label: 'Technology' }, { href: '/business', label: 'Business' }, { href: '/infrastructure', label: 'Infrastructure' }, - { href: '/sustainability', label: 'Sustainability' }, + { href: '/workwear', label: 'Workwear' }, ]; const secondary = [ @@ -240,6 +240,26 @@ module.exports = { ], }, }, + { + when: ['/workwear'], + secondary: { items: topics }, + tertiary, + primary: { + items: [ + { href: '/workwear/accessories', label: 'Accessories' }, + { href: '/workwear/boots-footwear', label: 'Boots & Footwear' }, + { href: '/workwear/coveralls', label: 'Coveralls' }, + { href: '/workwear/glasses', label: 'Glasses' }, + { href: '/workwear/gloves', label: 'Gloves' }, + { href: '/workwear/hard-hats-headwear', label: 'Hard Hats & Headwear' }, + { href: '/workwear/high-visibility-apparel', label: 'High Visibility Apparel' }, + { href: '/workwear/hoodies', label: 'Hoodies' }, + { href: '/workwear/outerwear', label: 'Outerwear' }, + { href: '/workwear/pants', label: 'Pants' }, + { href: '/workwear/shirts', label: 'Shirts' }, + ], + }, + }, ], toggleMenu: { about: { diff --git a/sites/forconstructionpros.com/config/site.js b/sites/forconstructionpros.com/config/site.js index b5faa1210..d534d3d94 100644 --- a/sites/forconstructionpros.com/config/site.js +++ b/sites/forconstructionpros.com/config/site.js @@ -1,4 +1,5 @@ const corporate = require('@ac-business-media/package-global/config/corporate'); +const specGuides = require('@ac-business-media/package-global/config/spec-guides'); const contentMeter = require('./content-meter'); const gam = require('./gam'); const identityX = require('./identity-x'); @@ -9,7 +10,17 @@ const omeda = require('./omeda'); const omedaIdentityX = require('./omeda-identity-x'); const identityXOptInHooks = require('./identity-x-opt-in-hooks'); const pageDetails = require('./page-details'); -const specGuides = require('./spec-guides'); + +const sectionSearchIds = [ + 54289, // Asphalt + 54300, // Business + 54436, // Concrete + 54319, // Construction Technology + 54330, // Equipment + 54468, // Pavement Maintenance +]; + +const notificationBG = '#F26522'; module.exports = { // Module configs @@ -113,14 +124,14 @@ module.exports = { contactUs: { notificationDefaults: { branding: { - bgColor: '#000', + bgColor: notificationBG, logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/site_logo.png?h=45&auto=format,compress', }, to: 'support@forconstructionpros.com', from: 'For Construction Pros ', }, branding: { - bgColor: '#000', + bgColor: notificationBG, logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/site_logo.png?h=45&auto=format,compress', }, to: 'support@forconstructionpros.com', @@ -131,18 +142,14 @@ module.exports = { sendTo: 'requestmoreinfo@acbusinessmedia.com', sendFrom: 'ForConstructionPros.com ', logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/site_logo.png?h=45&auto=format,compress&bg=000000&pad=5', - bgColor: '#000', + bgColor: notificationBG, }, pageDetails, showCompanySectionFilters: true, - sectionSearchIds: [ - 54289, // Asphalt - 54300, // Business - 54436, // Concrete - 54319, // Construction Technology - 54330, // Equipment - 54468, // Pavement Maintenance - ], + sectionSearchIds, + search: { + assignedToWebsiteSectionIds: sectionSearchIds, + }, specGuides, mindful: { namespace: 'acbm/default', diff --git a/sites/forconstructionpros.com/index.js b/sites/forconstructionpros.com/index.js index 716580131..8f51d4bad 100644 --- a/sites/forconstructionpros.com/index.js +++ b/sites/forconstructionpros.com/index.js @@ -4,7 +4,6 @@ const routes = require('./server/routes'); const siteConfig = require('./config/site'); const coreConfig = require('./config/core'); const i18n = require('./config/i18n'); -const { personasHandler } = require('./config/personas'); const { log } = console; @@ -12,7 +11,6 @@ module.exports = startServer({ rootDir: __dirname, coreConfig, siteConfig, - personasHandler, routes, i18n: (v) => i18n[`${v}`.toLowerCase()] || v, }).then(() => log('Website started!')).catch((e) => setImmediate(() => { throw e; })); diff --git a/sites/forconstructionpros.com/package.json b/sites/forconstructionpros.com/package.json index 84975dfa5..2c21580e3 100644 --- a/sites/forconstructionpros.com/package.json +++ b/sites/forconstructionpros.com/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/forconstructionpros.com", - "version": "2.17.0", + "version": "2.17.4", "author": "Brandon Krigbaum ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/forconstructionpros.com", "license": "MIT", @@ -34,15 +34,15 @@ "win32" ], "dependencies": { - "@ac-business-media/package-global": "^2.17.0", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-gtm": "^4.73.0", - "@parameter1/base-cms-marko-web-identity-x": "^4.73.0", - "@parameter1/base-cms-marko-web-p1-events": "^4.73.0", - "@parameter1/base-cms-marko-web-theme-monorail": "^4.73.0", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1" + "@ac-business-media/package-global": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-identity-x": "^4.74.0", + "@parameter1/base-cms-marko-web-p1-events": "^4.74.0", + "@parameter1/base-cms-marko-web-theme-monorail": "^4.81.0", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0" } } diff --git a/sites/greenindustrypros.com/package.json b/sites/greenindustrypros.com/package.json index 24a6ec50b..7612ee47a 100644 --- a/sites/greenindustrypros.com/package.json +++ b/sites/greenindustrypros.com/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/greenindustrypros.com", - "version": "2.16.6", + "version": "2.17.4", "author": "Brandon Krigbaum ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/greenindustrypros.com", "license": "MIT", @@ -30,13 +30,13 @@ "win32" ], "dependencies": { - "@ac-business-media/package-directory": "^2.16.6", - "@ac-business-media/refresh-theme": "^2.16.6", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", + "@ac-business-media/package-directory": "^2.17.4", + "@ac-business-media/refresh-theme": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", "graphql": "^14.5.4", "graphql-tag": "^2.10.1" } diff --git a/sites/ironpros.com/package.json b/sites/ironpros.com/package.json index 0b46a75a7..ed1c0ca89 100644 --- a/sites/ironpros.com/package.json +++ b/sites/ironpros.com/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/ironpros.com", - "version": "2.17.0", + "version": "2.17.4", "author": "Brian Miller ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/ironpros.com", "license": "MIT", @@ -31,24 +31,24 @@ "win32" ], "dependencies": { - "@ac-business-media/package-global": "^2.17.0", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-contact-us": "^4.40.3", - "@parameter1/base-cms-marko-web-gtm": "^4.73.0", - "@parameter1/base-cms-marko-web-icons": "^4.36.8", - "@parameter1/base-cms-marko-web-identity-x": "^4.73.0", - "@parameter1/base-cms-marko-web-leaders": "^4.73.0", - "@parameter1/base-cms-marko-web-native-x": "^4.73.0", - "@parameter1/base-cms-marko-web-p1-events": "^4.73.0", - "@parameter1/base-cms-marko-web-search": "^4.55.4", - "@parameter1/base-cms-marko-web-social-sharing": "^4.55.4", - "@parameter1/base-cms-marko-web-theme-default": "^4.40.3", - "@parameter1/base-cms-marko-web-theme-monorail": "^4.73.0", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", - "@parameter1/base-cms-web-common": "^4.55.4", + "@ac-business-media/package-global": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-contact-us": "^4.74.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-icons": "^4.80.4", + "@parameter1/base-cms-marko-web-identity-x": "^4.74.0", + "@parameter1/base-cms-marko-web-leaders": "^4.80.4", + "@parameter1/base-cms-marko-web-native-x": "^4.80.0", + "@parameter1/base-cms-marko-web-p1-events": "^4.74.0", + "@parameter1/base-cms-marko-web-search": "^4.80.4", + "@parameter1/base-cms-marko-web-social-sharing": "^4.74.0", + "@parameter1/base-cms-marko-web-theme-default": "^4.80.4", + "@parameter1/base-cms-marko-web-theme-monorail": "^4.81.0", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", + "@parameter1/base-cms-web-common": "^4.80.0", "express": "^4.18.2", "graphql": "^14.5.4", "graphql-tag": "^2.10.1", diff --git a/sites/oemoffhighway.com/package.json b/sites/oemoffhighway.com/package.json index a3402e806..c0cca8ef5 100644 --- a/sites/oemoffhighway.com/package.json +++ b/sites/oemoffhighway.com/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/oemoffhighway.com", - "version": "2.16.6", + "version": "2.17.4", "author": "Jacob Bare ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/oemoffhighway.com", "license": "MIT", @@ -30,17 +30,17 @@ "win32" ], "dependencies": { - "@ac-business-media/package-directory": "^2.16.6", - "@ac-business-media/refresh-theme": "^2.16.6", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-gam": "^4.55.1", - "@parameter1/base-cms-marko-web-gtm": "^4.73.0", - "@parameter1/base-cms-marko-web-p1-events": "^4.73.0", - "@parameter1/base-cms-marko-web-theme-default": "^4.40.3", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", + "@ac-business-media/package-directory": "^2.17.4", + "@ac-business-media/refresh-theme": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-gam": "^4.74.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-p1-events": "^4.74.0", + "@parameter1/base-cms-marko-web-theme-default": "^4.80.4", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", "graphql": "^14.5.4", "graphql-tag": "^2.10.1" } diff --git a/sites/pavementonline.com/browser/.eslintrc.js b/sites/pavementonline.com/browser/.eslintrc.js new file mode 100644 index 000000000..aef1da469 --- /dev/null +++ b/sites/pavementonline.com/browser/.eslintrc.js @@ -0,0 +1,2 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +module.exports = require('@parameter1/base-cms-eslint/eslintrc.browser'); diff --git a/sites/pavementonline.com/browser/index.js b/sites/pavementonline.com/browser/index.js new file mode 100644 index 000000000..4eb7e7c2d --- /dev/null +++ b/sites/pavementonline.com/browser/index.js @@ -0,0 +1,6 @@ +import Browser from '@parameter1/base-cms-marko-web/browser'; +import Shared from '@ac-business-media/package-global/browser'; + +Shared(Browser); + +export default Browser; diff --git a/sites/pavementonline.com/browser/ssr.js b/sites/pavementonline.com/browser/ssr.js new file mode 100644 index 000000000..e052147dc --- /dev/null +++ b/sites/pavementonline.com/browser/ssr.js @@ -0,0 +1,3 @@ +import GlobalComponents from '@ac-business-media/package-global/browser/ssr'; + +export default GlobalComponents; diff --git a/sites/pavementonline.com/config/categories.js b/sites/pavementonline.com/config/categories.js new file mode 100644 index 000000000..e0a30c5df --- /dev/null +++ b/sites/pavementonline.com/config/categories.js @@ -0,0 +1 @@ +module.exports = []; diff --git a/sites/pavementonline.com/config/content-meter.js b/sites/pavementonline.com/config/content-meter.js new file mode 100644 index 000000000..6811410e3 --- /dev/null +++ b/sites/pavementonline.com/config/content-meter.js @@ -0,0 +1,6 @@ +const defaultConfig = require('@ac-business-media/package-global/config/content-meter'); + +module.exports = { + ...defaultConfig, + enabled: false, // process.env.ENABLE_CONTENT_METER === 'true', +}; diff --git a/sites/pavementonline.com/config/core.js b/sites/pavementonline.com/config/core.js new file mode 100644 index 000000000..f053ebf79 --- /dev/null +++ b/sites/pavementonline.com/config/core.js @@ -0,0 +1 @@ +module.exports = {}; diff --git a/sites/pavementonline.com/config/gam.js b/sites/pavementonline.com/config/gam.js new file mode 100644 index 000000000..4b284745a --- /dev/null +++ b/sites/pavementonline.com/config/gam.js @@ -0,0 +1,41 @@ +const configureGAM = require('@ac-business-media/package-global/config/gam'); + +const basePath = 'pavement'; + +const config = configureGAM({ basePath }); + +config.setAliasAdUnits('default', [ + { name: 'top-leaderboard', templateName: 'LEADERBOARD', path: '/default/lb1' }, + { name: 'leaderboard', templateName: 'LEADERBOARD', path: '/default/lb1' }, + { name: 'lb-sticky-bottom', templateName: 'LB-STICKY-BOTTOM', path: '/default/lb1' }, + { name: 'rotation', templateName: 'ROTATION', path: '/default/rail1' }, + { name: 'rotation-rail', templateName: 'ROTATION-RAIL', path: '/default/rail1' }, + { name: 'top-rotation', templateName: 'TOP-ROTATION', path: '/default/rail1' }, + { name: 'top-rotation-mobile', templateName: 'TOP-ROTATION-MOBILE', path: '/default/rail1' }, + { name: 'top-rotation-desktop', templateName: 'TOP-ROTATION-DESKTOP', path: '/default/rail1' }, + { name: 'inline-content-mobile', templateName: 'INLINE-CONTENT-MOBILE', path: '/default/rail1' }, + { name: 'inline-content-desktop', templateName: 'INLINE-CONTENT-DESKTOP', path: '/default/rail1' }, + { name: 'reskin', path: '/default/reskin' }, +]); + +const aliases = [ + // { alias: 'application', prefix: 'application' }, + // { alias: 'production', prefix: 'production' }, + // { alias: 'business', prefix: 'business' }, +]; + +aliases.forEach(({ alias, prefix = alias }) => config.setAliasAdUnits(alias, [ + { name: 'top-leaderboard', templateName: 'LEADERBOARD', path: `/${prefix}/lb1` }, + { name: 'leaderboard', templateName: 'LEADERBOARD', path: `/${prefix}/lb1` }, + { name: 'footer-leaderboard', templateName: 'FOOTER-LEADERBOARD', path: `/${prefix}/lb1` }, + { name: 'rotation', templateName: 'ROTATION', path: `/${prefix}/rail1` }, + { name: 'rotation-rail', templateName: 'ROTATION-RAIL', path: `/${prefix}/rail1` }, + { name: 'top-rotation', templateName: 'TOP-ROTATION', path: `/${prefix}/rail1` }, + { name: 'top-rotation-mobile', templateName: 'TOP-ROTATION-MOBILE', path: `/${prefix}/rail1` }, + { name: 'top-rotation-desktop', templateName: 'TOP-ROTATION-DESKTOP', path: `/${prefix}/rail1` }, + { name: 'inline-content-mobile', templateName: 'INLINE-CONTENT-MOBILE', path: `/${prefix}/rail1` }, + { name: 'inline-content-desktop', templateName: 'INLINE-CONTENT-DESKTOP', path: `/${prefix}/rail1` }, + { name: 'reskin', path: `/${prefix}/reskin` }, +])); + +module.exports = config; diff --git a/sites/pavementonline.com/config/i18n.js b/sites/pavementonline.com/config/i18n.js new file mode 100644 index 000000000..8efac884c --- /dev/null +++ b/sites/pavementonline.com/config/i18n.js @@ -0,0 +1,3 @@ +module.exports = { + 'sponsor content': 'Sponsored Content', +}; diff --git a/sites/pavementonline.com/config/identity-x-opt-in-hooks.js b/sites/pavementonline.com/config/identity-x-opt-in-hooks.js new file mode 100644 index 000000000..87af9ac38 --- /dev/null +++ b/sites/pavementonline.com/config/identity-x-opt-in-hooks.js @@ -0,0 +1,5 @@ +module.exports = { + onAuthenticationSuccess: { + productIds: [4305], // PVM Blacktop Update + }, +}; diff --git a/sites/pavementonline.com/config/identity-x.js b/sites/pavementonline.com/config/identity-x.js new file mode 100644 index 000000000..515f12dd6 --- /dev/null +++ b/sites/pavementonline.com/config/identity-x.js @@ -0,0 +1,41 @@ +const configureIdentityX = require('@ac-business-media/package-global/config/identity-x'); +const formDefault = require('@ac-business-media/package-global/config/identity-x/default'); +const asphalt = require('@ac-business-media/package-global/config/identity-x/asphalt'); +const concrete = require('@ac-business-media/package-global/config/identity-x/concrete'); +const equipment = require('@ac-business-media/package-global/config/identity-x/equipment'); +const pavement = require('@ac-business-media/package-global/config/identity-x/pavement'); +const rental = require('@ac-business-media/package-global/config/identity-x/rental'); + +formDefault.anonymousCta = 'Register on Forconstructionpros.com to download this document, gain access to premium content, and more.'; + +module.exports = configureIdentityX({ + appId: '5e28a2d858e67b162e55ae3b', + activeCustomFieldIds: [ + // Genral FCP + // '66c4dd5510ae66087480bb09', // Primary Business + // '66c4dedd10ae66008d80ea98', // Job Title + // // asphalt + // '66436fceafb6131c4a841f26', + // '66437894235da5b2358f59e9', + // // concrete + // '664370dc0635be5a37ae38f5', + // '66437775eab51a24312718de', + // // equipment + // '664b5f1cafb6137ba8469acc', + // '664b5d760635bea8c46106f0', + // // pavement + '664b630aeab51a9936d99d59', + '664b61a70635be184a616332', + // // rental + // '664b66b5a370d8a8013ab885', + // '664b6576eab51a8a95d9d881', + ], + forms: { + default: formDefault, + asphalt, + concrete, + equipment, + pavement, + rental, + }, +}); diff --git a/sites/pavementonline.com/config/native-x.js b/sites/pavementonline.com/config/native-x.js new file mode 100644 index 000000000..105880c3f --- /dev/null +++ b/sites/pavementonline.com/config/native-x.js @@ -0,0 +1,14 @@ +const configureNativeX = require('@ac-business-media/package-global/config/native-x'); + +const config = configureNativeX(); + +config.enabled = true; +config.domainName = 'www.forconstructionpros.com'; + +config + .setAliasPlacements('default', [ + { name: 'default', id: '5b55e26b2360050001b7734a' }, + { name: 'premium-content', id: '5b55e26b2360050001b7734a' }, + { name: 'related-content', id: '5b55e26b2360050001b7734a' }, + ]); +module.exports = config; diff --git a/sites/pavementonline.com/config/navigation.js b/sites/pavementonline.com/config/navigation.js new file mode 100644 index 000000000..27fb358e3 --- /dev/null +++ b/sites/pavementonline.com/config/navigation.js @@ -0,0 +1,171 @@ +const user = require('@ac-business-media/package-global/config/user'); + +const subscribe = { + href: '/subscribe', + label: 'Subscribe', +}; + +const topics = [ + { href: '/blacktop', label: 'Blacktop' }, + { href: '/maintenance', label: 'Maintenance' }, + { href: '/business', label: 'Business' }, +]; + +const top = [ + ...topics, + { href: '/videos', label: 'Videos' }, + { href: '/awards', label: 'Awards' }, + { href: '/premium-content', label: 'Premium Content' }, +]; + +const exclusives = [ + { href: '/premium-content', label: 'Premium Content' }, + { href: 'https://www.pavexshow.com/', label: 'PAVE/X', target: '_blank' }, + { href: 'https://igniteconstructionsummit.com/', label: 'IGNITE', target: '_blank' }, + { href: '/videos', label: 'Videos' }, +]; + +const expertInsights = [ + { href: '/premium-content', label: 'Premium Content' }, + { href: '/events', label: 'Events' }, + { href: '/magazine', label: 'Magazine' }, + { href: '/awards', label: 'Awards' }, +]; + +const utilities = [ + { href: '/contact-us', label: 'Contact Us' }, + { href: 'https://www.constructionnetworkmediakit.com/', label: 'Advertise', target: '_blank' }, + { href: '/page/privacy-policy', label: 'Privacy Policy', target: '_blank' }, + { href: '/page/terms-conditions', label: 'Terms & Conditions', target: '_blank' }, +]; + +const mobileMenu = { + user, + primary: [ + ...topics, + { href: '/videos', label: 'Video' }, + { href: '/events', label: 'Events' }, + ], + secondary: [ + { href: '/page/Subscribe-Links', label: 'Magazines' }, + { href: 'https://acbusiness.dragonforms.com/loading.do?omedasite=FCP_prefs_ProgReg', label: 'Newsletters' }, + { href: 'https://www.constructionnetworkmediakit.com/', label: 'Advertise', target: '_blank' }, + ], +}; + +const tertiaryItems = [ + { + href: '/page/Subscribe-Links', + label: 'Magazines', + icon: 'book', + forceLabel: true, + }, + { + href: 'https://acbusiness.dragonforms.com/loading.do?omedasite=FCP_prefs_ProgReg', + label: 'Newsletters', + icon: 'mail', + forceLabel: true, + target: '_blank', + }, +]; + +const tertiary = { items: [...tertiaryItems, ...user.items] }; + +module.exports = { + type: 'navbar-c', + promos: [ + { + title: subscribe.label, + callToAction: subscribe.label, + link: subscribe.href, + }, + ], + user, + mobileMenu, + topics, + primary: { + items: [], + }, + secondary: { + items: [ + ...top, + ], + }, + tertiary, + contexts: [ + { + when: ['/blacktop'], + secondary: { items: top }, + tertiary, + primary: { + items: [ + { href: '/blacktop/paving', label: 'Paving' }, + { href: '/blacktop/milling', label: 'Milling' }, + { href: '/blacktop/dirt-work', label: 'Dirt Work' }, + { href: '/blacktop/technology', label: 'Technology' }, + ], + }, + }, + { + when: ['/maintenance'], + secondary: { items: top }, + tertiary, + primary: { + items: [ + { href: '/maintenance/sealcoating', label: 'Sealcoating' }, + { href: '/maintenance/sweeping', label: 'Sweeping' }, + { href: '/maintenance/striping', label: 'Striping' }, + { href: '/maintenance/patching', label: 'Patching' }, + ], + }, + }, + { + when: ['/business'], + secondary: { items: top }, + tertiary, + primary: { + items: [ + { href: '/business/managment', label: 'Managment' }, + { href: '/business/workforce', label: 'Workforce' }, + { href: '/business/safety', label: 'Safety' }, + ], + }, + }, + ], + toggleMenu: { + about: { + // label: 'About', + // items: utilities, + }, + col1: { + label: 'Topics', + items: [ + ...topics, + ], + }, + col2: { + label: 'Exclusives', + items: [ + ...exclusives, + ], + }, + col3: { + label: 'Expert Insights', + items: [ + ...expertInsights, + ], + }, + col4: { + label: 'Resources', + items: utilities, + }, + }, + footer: { + topics, + more: exclusives, + items: [ + ...utilities, + { href: '/site-map', label: 'Site Map' }, + ], + }, +}; diff --git a/sites/pavementonline.com/config/newsletter.js b/sites/pavementonline.com/config/newsletter.js new file mode 100644 index 000000000..889d7a6ce --- /dev/null +++ b/sites/pavementonline.com/config/newsletter.js @@ -0,0 +1,30 @@ +const defaults = { + name: 'Stay in the Know', + description: 'Get industry news updates and product information to help you stay up to date.', + defaultNewsletter: { + deploymentTypeId: 0, + name: 'TBD', + eventCategory: 'TBD', + }, + privacyPolicy: { + href: '/page/privacy-policy', + label: 'Privacy Policy', + target: '_blank', + }, +}; + +module.exports = { + // uses inline omeda form + signupBanner: { + ...defaults, + // imagePath: 'files/base/acbm/fcp/image/static/newsletter-pushdown/fg-full.png', + }, + // pushdown: { + // ...defaults, + // imagePath: 'files/base/wattglobalmedia/all/image/static/newsletter-pushdown/fg-half.png', + // description: '', + // }, + signupFooter: { + ...defaults, + }, +}; diff --git a/sites/pavementonline.com/config/omeda-identity-x.js b/sites/pavementonline.com/config/omeda-identity-x.js new file mode 100644 index 000000000..5efca296c --- /dev/null +++ b/sites/pavementonline.com/config/omeda-identity-x.js @@ -0,0 +1,11 @@ +const config = require('@ac-business-media/package-global/config/omeda-identity-x'); +const omedaConfig = require('./omeda'); +const idxConfig = require('./identity-x'); + +module.exports = config({ + omedaConfig, + idxConfig, + // @todo: rapidIdentProductId & siteId + rapidIdentProductId: 15375, + websiteBehaviorAttributeId: 524705, +}); diff --git a/sites/pavementonline.com/config/omeda.js b/sites/pavementonline.com/config/omeda.js new file mode 100644 index 000000000..e040d9728 --- /dev/null +++ b/sites/pavementonline.com/config/omeda.js @@ -0,0 +1,5 @@ +const config = require('@ac-business-media/package-global/config/omeda'); + +module.exports = config({ + inputId: process.env.OMEDA_INPUT_ID, +}); diff --git a/sites/pavementonline.com/config/page-details.js b/sites/pavementonline.com/config/page-details.js new file mode 100644 index 000000000..2bd77d65b --- /dev/null +++ b/sites/pavementonline.com/config/page-details.js @@ -0,0 +1,6 @@ +module.exports = { + recommended: { + title: 'Recommended Content', + tocHeader: 'Select a Persona:', + }, +}; diff --git a/sites/pavementonline.com/config/site.js b/sites/pavementonline.com/config/site.js new file mode 100644 index 000000000..d2a190529 --- /dev/null +++ b/sites/pavementonline.com/config/site.js @@ -0,0 +1,121 @@ +const corporate = require('@ac-business-media/package-global/config/corporate'); + +const contentMeter = require('./content-meter'); +const gam = require('./gam'); +const identityX = require('./identity-x'); +const nativeX = require('./native-x'); +const navigation = require('./navigation'); +const newsletter = require('./newsletter'); +const omeda = require('./omeda'); +const omedaIdentityX = require('./omeda-identity-x'); +const identityXOptInHooks = require('./identity-x-opt-in-hooks'); +const pageDetails = require('./page-details'); + +const sectionSearchIds = [ + 88732, // Blacktop + 88738, // Maintenance + 88743, // Business +]; + +module.exports = { + // Module configs + useLinkInjectedBody: process.env.USE_LINK_INJECTED_BODY || true, + contentMeter, + sectionFeed: { + imageOptions: { w: 240, h: 135, ar: '16:9' }, + mobileImageOptions: { w: 240, h: 135, ar: '16:9' }, + modifiers: ['section-feed-mobile-cards'], + }, + gam, + identityX, + nativeX, + navigation, + newsletter, + omeda, + omedaIdentityX, + identityXOptInHooks, + wufoo: { + userName: 'acbm', + }, + magazines: { + publicationIds: ['53ca8f361784f8066eb2c96f'], + description: '', + }, + gcse: { + id: '003355913687346718228:la4zrhjf2r9', + }, + // Site configs + useRecommendedSectionAlias: true, + idxNavItems: { + enable: process.env.IDX_NAV_ENABLE || false, + }, + company: corporate.name, + p1events: { + tenant: 'acbm', + enabled: true, + cookieDomain: process.env.NODE_ENV === 'production' ? 'www.pavementonline.com' : '', + }, + logos: { + navbar: { + src: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/pavement_bw_logo.png?h=45&auto=format,compress', + srcset: [ + 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/pavement_bw_logo.png?h=90&auto=format,compress 2x', + ], + // src: 'https://s3.amazonaws.com/media.base.parameter1.com/files/base/acbm/fcp/image/static/logo/FCP-logo-high-res.png?h=45&auto=format,compress', + // srcset: [ + // 'https://s3.amazonaws.com/media.base.parameter1.com/files/base/acbm/fcp/image/static/logo/FCP-logo-high-res.png?h=90&auto=format,compress 2x', + // ], + }, + footer: { + src: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/pavement_bw_logo.png?h=45&auto=format,compress', + srcset: [ + 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/pavement_bw_logo.png?h=90&auto=format,compress 2x', + ], + }, + corporate: corporate.logo, + }, + useSectionLogos: true, + tagline: ' ', + socialMediaLinks: [ + { provider: 'facebook', href: 'https://www.facebook.com/PavementMagazine', target: '_blank' }, + { provider: 'twitter', href: 'https://twitter.com/PavementMag', target: '_blank' }, + { provider: 'instagram', href: 'https://www.instagram.com/pavementmagazine', target: '_blank' }, + { provider: 'linkedin', href: 'https://www.linkedin.com/company/pavement-maintenance-reconstruction-magazine', target: '_blank' }, + ], + podcastLinks: [], + gtm: { + containerId: 'GTM-M3X5FQS5', + }, + contactUs: { + notificationDefaults: { + branding: { + bgColor: '#ce3828', + logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/pavement_bw_logo.png?h=45&auto=format,compress', + }, + to: 'support@pavementonline.com', + from: 'Pavement Maintenance & Reconstruction ', + }, + branding: { + bgColor: '#ce3828', + logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/pavement_bw_logo.png?h=45&auto=format,compress', + }, + to: 'support@pavementonline.com', + }, + inquiry: { + enabled: true, + directSend: true, + sendTo: 'requestmoreinfo@pavementonline.com', + sendFrom: 'Pavementonline.com ', + logo: 'https://img.forconstructionpros.com/files/base/acbm/fcp/image/static/logo/pavement_bw_logo.png?h=45&auto=format,compress&bg=000000&pad=5', + bgColor: '#ce3828', + }, + pageDetails, + showCompanySectionFilters: true, + sectionSearchIds, + search: { + assignedToWebsiteSectionIds: sectionSearchIds, + }, + mindful: { + namespace: 'acbm/default', + }, +}; diff --git a/sites/pavementonline.com/config/subscribe.js b/sites/pavementonline.com/config/subscribe.js new file mode 100644 index 000000000..0bd12d81c --- /dev/null +++ b/sites/pavementonline.com/config/subscribe.js @@ -0,0 +1,4 @@ +module.exports = { + href: '/subscribe', + label: 'Subscribe', +}; diff --git a/sites/pavementonline.com/index.js b/sites/pavementonline.com/index.js new file mode 100644 index 000000000..8f51d4bad --- /dev/null +++ b/sites/pavementonline.com/index.js @@ -0,0 +1,16 @@ +const startServer = require('@ac-business-media/package-global/start-server'); + +const routes = require('./server/routes'); +const siteConfig = require('./config/site'); +const coreConfig = require('./config/core'); +const i18n = require('./config/i18n'); + +const { log } = console; + +module.exports = startServer({ + rootDir: __dirname, + coreConfig, + siteConfig, + routes, + i18n: (v) => i18n[`${v}`.toLowerCase()] || v, +}).then(() => log('Website started!')).catch((e) => setImmediate(() => { throw e; })); diff --git a/sites/pavementonline.com/newrelic.js b/sites/pavementonline.com/newrelic.js new file mode 100644 index 000000000..de6cb99b9 --- /dev/null +++ b/sites/pavementonline.com/newrelic.js @@ -0,0 +1 @@ +module.exports = require('@ac-business-media/package-global/newrelic'); diff --git a/sites/pavementonline.com/package.json b/sites/pavementonline.com/package.json new file mode 100644 index 000000000..06b05123a --- /dev/null +++ b/sites/pavementonline.com/package.json @@ -0,0 +1,45 @@ +{ + "name": "@ac-business-media/pavementonline.com", + "version": "2.17.4", + "author": "Brian Miller ", + "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/pavementonline.com", + "license": "MIT", + "private": true, + "website": { + "id": "6757395211878ad52d66131a", + "tenant": "acbm_fcp", + "account": "acbm", + "stack": "tauron", + "key": "pvm", + "deploy": true + }, + "scripts": { + "dev": "basecms-website dev --compile-dir ../../packages --watch-dir ../../packages --purge-css-content-dir ../../packages --purge-css-content-dir ../../node_modules/@parameter1", + "build": "basecms-website build --purge-css-content-dir ../../packages --purge-css-content-dir ../../node_modules/@parameter1", + "build:css": "basecms-website build:css --purge-content-dir ../../packages --purge-content-dir ../../node_modules/@parameter1", + "compile": "basecms-marko-compile compile", + "lint": "eslint --ext .js --ext .vue --max-warnings 5 --config ../../.eslintrc.js --ignore-path ../../.eslintignore ./", + "lint:fix": "yarn lint --fix", + "test": "yarn lint && yarn compile --no-clean" + }, + "engines": { + "node": ">=14.15" + }, + "os": [ + "darwin", + "linux", + "win32" + ], + "dependencies": { + "@ac-business-media/package-global": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-identity-x": "^4.74.0", + "@parameter1/base-cms-marko-web-p1-events": "^4.74.0", + "@parameter1/base-cms-marko-web-theme-monorail": "^4.81.0", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0" + } +} diff --git a/sites/pavementonline.com/server/marko.json b/sites/pavementonline.com/server/marko.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/sites/pavementonline.com/server/marko.json @@ -0,0 +1,2 @@ +{ +} diff --git a/sites/pavementonline.com/server/public/android-chrome-192x192.png b/sites/pavementonline.com/server/public/android-chrome-192x192.png new file mode 100644 index 000000000..28a317598 Binary files /dev/null and b/sites/pavementonline.com/server/public/android-chrome-192x192.png differ diff --git a/sites/pavementonline.com/server/public/android-chrome-512x512.png b/sites/pavementonline.com/server/public/android-chrome-512x512.png new file mode 100644 index 000000000..52d73ec17 Binary files /dev/null and b/sites/pavementonline.com/server/public/android-chrome-512x512.png differ diff --git a/sites/pavementonline.com/server/public/apple-touch-icon.png b/sites/pavementonline.com/server/public/apple-touch-icon.png new file mode 100644 index 000000000..de5354dbe Binary files /dev/null and b/sites/pavementonline.com/server/public/apple-touch-icon.png differ diff --git a/sites/pavementonline.com/server/public/favicon-16x16.png b/sites/pavementonline.com/server/public/favicon-16x16.png new file mode 100644 index 000000000..4e20498ac Binary files /dev/null and b/sites/pavementonline.com/server/public/favicon-16x16.png differ diff --git a/sites/pavementonline.com/server/public/favicon-32x32.png b/sites/pavementonline.com/server/public/favicon-32x32.png new file mode 100644 index 000000000..d975a4be6 Binary files /dev/null and b/sites/pavementonline.com/server/public/favicon-32x32.png differ diff --git a/sites/pavementonline.com/server/public/favicon.ico b/sites/pavementonline.com/server/public/favicon.ico new file mode 100644 index 000000000..9e0ee5569 Binary files /dev/null and b/sites/pavementonline.com/server/public/favicon.ico differ diff --git a/sites/pavementonline.com/server/public/robots.txt b/sites/pavementonline.com/server/public/robots.txt new file mode 100644 index 000000000..1edd99340 --- /dev/null +++ b/sites/pavementonline.com/server/public/robots.txt @@ -0,0 +1,10 @@ +# www.robotstxt.org/ +# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449 + +User-agent: * +Disallow: * +Disallow: /__ +Disallow: /print/content + +Sitemap: https://www.pavementonline.com/sitemap.xml +Sitemap: https://www.pavementonline.com/sitemap-google-news.xml diff --git a/sites/pavementonline.com/server/public/site.webmanifest b/sites/pavementonline.com/server/public/site.webmanifest new file mode 100644 index 000000000..45dc8a206 --- /dev/null +++ b/sites/pavementonline.com/server/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/sites/pavementonline.com/server/routes/content.js b/sites/pavementonline.com/server/routes/content.js new file mode 100644 index 000000000..647062c2a --- /dev/null +++ b/sites/pavementonline.com/server/routes/content.js @@ -0,0 +1,108 @@ +const contentMetering = require('@parameter1/base-cms-marko-web-theme-monorail/middleware/content-metering'); + +const withContent = require('@ac-business-media/package-global/middleware/with-content'); +const { formatContentResponse } = require('@ac-business-media/package-global/middleware/format-content-response'); +const { newsletterState } = require('@ac-business-media/package-global/middleware/newsletter-state'); +const loaderFragment = require('@ac-business-media/package-global/graphql/fragments/content-primary-section'); +const qf = require('@ac-business-media/package-global/graphql/fragments/content-page'); +const company = require('@ac-business-media/package-global/templates/content/company'); +const contact = require('@ac-business-media/package-global/templates/content/contact'); +const product = require('@ac-business-media/package-global/templates/content/product'); +const webinar = require('@ac-business-media/package-global/templates/content/webinar'); +const whitepaper = require('@ac-business-media/package-global/templates/content/whitepaper'); +const content = require('@ac-business-media/package-global/templates/content/default'); +const redirectHandler = require('@ac-business-media/package-global/redirect-handler'); + +function redirectToFn({ content: contentItem, requestingSiteId }) { + const existingRedirect = redirectHandler({ + from: `/${contentItem.id}`, + app: { locals: { config: { website: () => requestingSiteId } } }, + }); + if (existingRedirect) { + return existingRedirect.to; + } + if (contentItem.deletedContent && contentItem.type === 'company') { + return '/directory'; + } + return null; +} + +module.exports = (app) => { + const { site } = app.locals; + // base on site config||USE_LINK_INJECTED_BODY to enable bcl + const useLinkInjectedBody = site.get('useLinkInjectedBody'); + const queryFragment = qf.factory ? qf.factory( + { useLinkInjectedBody, withMagazineSchedules: true }, + ) : qf; + const routesList = [ + { // contact + regex: '/*?contact/:id(\\d{8})*', + template: contact, + queryFragment, + loaderFragment, + }, + { // company + regex: '/*?company/:id(\\d{8})*', + template: company, + queryFragment, + loaderFragment, + }, + { // document + regex: '/*?document/:id(\\d{8})*', + template: whitepaper, + queryFragment, + loaderFragment, + }, + { // product + regex: '/*?product/:id(\\d{8})*', + template: product, + queryFragment, + loaderFragment, + }, + { // webinar + regex: '/*?webinar/:id(\\d{8})*', + template: webinar, + queryFragment, + loaderFragment, + }, + { // whitepaper + regex: '/*?whitepaper/:id(\\d{8})*', + template: whitepaper, + queryFragment, + loaderFragment, + }, + { // default + regex: '/*?/:id(\\d{8})/*|/:id(\\d{8})(/|$)*', + template: content, + queryFragment, + loaderFragment, + withContentMeter: true, + }, + ]; + + const cmConfig = site.getAsObject('contentMeter'); + const contentMeterEnable = cmConfig.enabled; + // determin to use newsletterstate or contentMeter middleware + routesList.forEach((route) => { + if (route.withContentMeter && contentMeterEnable) { + app.get( + route.regex, + newsletterState({ setCookie: false }), + contentMetering(cmConfig), + withContent({ + template: route.template, + queryFragment: route.queryFragment, + formatResponse: formatContentResponse, + redirectToFn, + }), + ); + } else { + app.get(route.regex, newsletterState({ setCookie: false }), withContent({ + template: route.template, + queryFragment: route.queryFragment, + formatResponse: formatContentResponse, + redirectToFn, + })); + } + }); +}; diff --git a/sites/pavementonline.com/server/routes/home.js b/sites/pavementonline.com/server/routes/home.js new file mode 100644 index 000000000..b8d255fa4 --- /dev/null +++ b/sites/pavementonline.com/server/routes/home.js @@ -0,0 +1,11 @@ +const { withWebsiteSection } = require('@parameter1/base-cms-marko-web/middleware'); +const queryFragment = require('@parameter1/base-cms-marko-web-theme-monorail/graphql/fragments/website-section-page'); +const home = require('../templates/index'); + +module.exports = (app) => { + app.get('/', withWebsiteSection({ + aliasResolver: () => 'home', + template: home, + queryFragment, + })); +}; diff --git a/sites/pavementonline.com/server/routes/index.js b/sites/pavementonline.com/server/routes/index.js new file mode 100644 index 000000000..e5f0bfb11 --- /dev/null +++ b/sites/pavementonline.com/server/routes/index.js @@ -0,0 +1,24 @@ +// const directory = require('@ac-business-media/package-global/routes/directory'); +const dynamicPages = require('@ac-business-media/package-global/routes/dynamic-page'); +const nativeX = require('@ac-business-media/package-global/routes/native-x'); + +const home = require('./home'); +const content = require('./content'); +const websiteSections = require('./website-section'); + +module.exports = (app) => { + // Homepage + home(app); + + // Dynamic Pages + dynamicPages(app); + + // Content Pages + content(app); + + // Native-X story rendering + nativeX(app); + + // Website Sections + websiteSections(app); +}; diff --git a/sites/pavementonline.com/server/routes/website-section.js b/sites/pavementonline.com/server/routes/website-section.js new file mode 100644 index 000000000..a5f41cd9c --- /dev/null +++ b/sites/pavementonline.com/server/routes/website-section.js @@ -0,0 +1,62 @@ +const { withWebsiteSection } = require('@parameter1/base-cms-marko-web/middleware'); +const queryFragment = require('@ac-business-media/package-global/graphql/fragments/website-section-page'); +const blogs = require('@ac-business-media/package-global/templates/website-section/blogs'); +const webinars = require('@ac-business-media/package-global/templates/website-section/webinars'); +const upcomingEvents = require('@ac-business-media/package-global/templates/website-section/upcoming-events'); +const section = require('@ac-business-media/package-global/templates/website-section'); +const promoCards = require('@ac-business-media/package-global/templates/website-section/promo-cards'); +const sectionWithoutNativeX = require('@ac-business-media/package-global/templates/website-section/without-native-x'); +const sectionWithoutAds = require('@ac-business-media/package-global/templates/website-section/feed-without-ads'); +const contactUs = require('@ac-business-media/package-global/templates/website-section/contact-us'); +const staticDirectory = require('../templates/website-section/static-directory'); + +const withoutNativeXAlias = [ +]; + +const withoutAdsAliases = [ + 'premium-content', + 'whitepapers', +]; + +module.exports = (app) => { + app.get('/:alias(podcasts|videos|awards)', withWebsiteSection({ + template: promoCards, + queryFragment, + })); + app.get('/:alias(webinars)', withWebsiteSection({ + template: webinars, + queryFragment, + })); + app.get('/:alias(contact-us)', withWebsiteSection({ + template: contactUs, + queryFragment, + })); + withoutNativeXAlias.forEach((alias) => { + app.get(`/:alias(${alias})`, withWebsiteSection({ + template: sectionWithoutNativeX, + queryFragment, + })); + }); + withoutAdsAliases.forEach((alias) => { + app.get(`/:alias(${alias})`, withWebsiteSection({ + template: sectionWithoutAds, + queryFragment, + })); + }); + app.get('/:alias(events)', withWebsiteSection({ + template: upcomingEvents, + queryFragment, + })); + app.get('/:alias(blogs)', withWebsiteSection({ + template: blogs, + queryFragment, + })); + app.get('/:alias(directory)', withWebsiteSection({ + template: staticDirectory, + queryFragment, + })); + app.get('/:alias([a-z0-9-/]+)', withWebsiteSection({ + template: section, + queryFragment, + })); +}; diff --git a/sites/pavementonline.com/server/styles/index.scss b/sites/pavementonline.com/server/styles/index.scss new file mode 100644 index 000000000..e80f64e31 --- /dev/null +++ b/sites/pavementonline.com/server/styles/index.scss @@ -0,0 +1,127 @@ +$theme-site-header-breakpoints: ( + hide-primary: 1100px, + hide-secondary: 700px, + small-logo: 775px, + small-text-primary: 0, + small-text-secondary: 830px +); + + +// Colors +$primary: #ce3828; +$secondary: #495057; +$light: #e9ecef; +$dark: #212529; +$info: #6c757d; + +$skin-block-header-overline-color: $dark; +$theme-site-navbar-secondary-font-size: 12px !default; + +@import "@ac-business-media/package-global/scss/core"; + +/*! purgecss start ignore */ +/*! critical:start|website-section.directory */ +@import "@ac-business-media/package-global/scss/components/directory-static"; +/*! critical:end|website-section.directory */ +// Will most likely move to sites. +@import "@ac-business-media/package-global/scss/components/reveal-ad"; +/*! purgecss end ignore */ +/*! critical:end */ + +.spec-guide-button { + $color: #1e5d92; + @include button-variant($color, $color); + + &--asphalt-paver { + $color: #751c1c; + @include button-variant($color, $color); + } + + &--roller { + $color: #fdb813; + @include button-variant($color, $color); + } +} + +.newsletter-form { + > .newsletter-signup-banner { + background-color: #3F4043; + color: $white; + + &__name, + &__description, + label, + a { + color: $white; + } + .btn-primary, + .btn-primary:hover { + background-color: $primary; + color: $black; + } + &--large { + background-color: #3F4043; + .newsletter-signup-banner__name, + .newsletter-signup-banner__description, + label, + a { + color: $white; + } + .btn-primary, + .btn-primary:hover { + background-color: $primary; + color: $black; + } + } + } +} + + + + +body .document-container > .page--website-section-77798:first-of-type, +body .document-container > .page--website-section-57411:first-of-type, +body .document-container > .page--website-section-85252:first-of-type, +body .document-container > .page--website-section-86540:first-of-type, +body .document-container > .page--website-section-81549:first-of-type, +body .document-container > .page--spec-guide-index:first-of-type, +body .document-container > .page--spec-guide:first-of-type, +body .document-container > .page--without-ads:first-of-type { + margin-top: 0; +} + +.site-navbar { + $self: &; + &__logo { + height: 45px; + } + // remove dynamic color changers instead show top with primary & secondary black. + &--top, + &--secondary { + background-color: $primary; + #{ $self } { + &__link:hover, + &__link--active { + color: $white; + font-weight: bold; + } + } + } + &--primary { + #{ $self } { + &__link:hover, + &__link--active { + color: $primary; + font-weight: bold; + } + } + } + + &__items--tertiary { + #{ $self }__link { + padding-right: 0 + } + } +} +/*! purgecss end ignore */ +/*! critical:end */ diff --git a/sites/pavementonline.com/server/templates/index.marko b/sites/pavementonline.com/server/templates/index.marko new file mode 100644 index 000000000..1376ee3d4 --- /dev/null +++ b/sites/pavementonline.com/server/templates/index.marko @@ -0,0 +1,8 @@ +$ const { id, alias, name, pageNode } = input; + + diff --git a/sites/pavementonline.com/server/templates/website-section/static-directory.marko b/sites/pavementonline.com/server/templates/website-section/static-directory.marko new file mode 100644 index 000000000..d94b3e3a1 --- /dev/null +++ b/sites/pavementonline.com/server/templates/website-section/static-directory.marko @@ -0,0 +1,12 @@ +import categories from "../../../config/categories"; + +$ const { id, alias, name, pageNode } = input; + + + <@directory facets=categories /> + diff --git a/sites/rentalproductnews.com/package.json b/sites/rentalproductnews.com/package.json index 811cfa6af..c41c2090d 100644 --- a/sites/rentalproductnews.com/package.json +++ b/sites/rentalproductnews.com/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/rentalproductnews.com", - "version": "2.16.6", + "version": "2.17.4", "author": "Jessica Stenzel ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/rentalproductnews.com", "license": "MIT", @@ -30,18 +30,18 @@ "win32" ], "dependencies": { - "@ac-business-media/package-directory": "^2.16.6", - "@ac-business-media/package-leaders": "^2.16.6", - "@ac-business-media/refresh-theme": "^2.16.6", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-gam": "^4.55.1", - "@parameter1/base-cms-marko-web-gtm": "^4.73.0", - "@parameter1/base-cms-marko-web-p1-events": "^4.73.0", - "@parameter1/base-cms-marko-web-theme-default": "^4.40.3", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", + "@ac-business-media/package-directory": "^2.17.4", + "@ac-business-media/package-leaders": "^2.17.4", + "@ac-business-media/refresh-theme": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-gam": "^4.74.0", + "@parameter1/base-cms-marko-web-gtm": "^4.74.0", + "@parameter1/base-cms-marko-web-p1-events": "^4.74.0", + "@parameter1/base-cms-marko-web-theme-default": "^4.80.4", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", "graphql": "^14.5.4", "graphql-tag": "^2.10.1" } diff --git a/sites/sdcexec.com/package.json b/sites/sdcexec.com/package.json index f663de644..3580d6f8b 100644 --- a/sites/sdcexec.com/package.json +++ b/sites/sdcexec.com/package.json @@ -1,6 +1,6 @@ { "name": "@ac-business-media/sdcexec.com", - "version": "2.16.6", + "version": "2.17.4", "author": "Brandon Krigbaum ", "repository": "https://github.com/parameter1/ac-business-media-websites/tree/master/sites/sdcexec.com", "license": "MIT", @@ -30,14 +30,14 @@ "win32" ], "dependencies": { - "@ac-business-media/package-directory": "^2.16.6", - "@ac-business-media/refresh-theme": "^2.16.6", - "@parameter1/base-cms-marko-core": "^4.55.4", - "@parameter1/base-cms-marko-web": "^4.71.2", - "@parameter1/base-cms-marko-web-omeda": "^4.51.0", - "@parameter1/base-cms-object-path": "^4.40.3", - "@parameter1/base-cms-utils": "^4.40.3", - "@parameter1/base-cms-web-cli": "^4.57.1", + "@ac-business-media/package-directory": "^2.17.4", + "@ac-business-media/refresh-theme": "^2.17.4", + "@parameter1/base-cms-marko-core": "^4.80.0", + "@parameter1/base-cms-marko-web": "^4.80.0", + "@parameter1/base-cms-marko-web-omeda": "^4.74.0", + "@parameter1/base-cms-object-path": "^4.74.0", + "@parameter1/base-cms-utils": "^4.74.0", + "@parameter1/base-cms-web-cli": "^4.74.0", "graphql": "^14.5.4", "graphql-tag": "^2.10.1" } diff --git a/yarn.lock b/yarn.lock index a18025ee6..450f9ee33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1068,10 +1068,10 @@ dependencies: "@octokit/openapi-types" "^16.0.0" -"@parameter1/base-cms-apollo-ssr@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-apollo-ssr/-/base-cms-apollo-ssr-4.5.12.tgz#28439681ea44d6acccb6b668eccbadd8cf58defa" - integrity sha512-QbFsFtSM1ERxcv19rqHiy3D40EPB/bqArYTcC41A+b65cWNMDjyUtzMBWUzOSjdNTiOUzcQX73rX8thJQYlELg== +"@parameter1/base-cms-apollo-ssr@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-apollo-ssr/-/base-cms-apollo-ssr-4.74.0.tgz#5f42e69ce92e13c215a45b4673b12192d0351077" + integrity sha512-meJAm3smb3Oa3BM7K5Zi425iotnG4YRp2EblH5lvRo8U9OYXcOu3YIDKXklhYjA+Dv1MxO326tKtbJ3sqjkLmg== dependencies: apollo-cache-inmemory "^1.6.6" apollo-client "^2.6.10" @@ -1079,36 +1079,36 @@ apollo-link-http "^1.5.17" node-fetch "^2.6.9" -"@parameter1/base-cms-dayjs@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-dayjs/-/base-cms-dayjs-4.5.12.tgz#b9f9ea8d072e66f09997c3550971e2a6f4ab2159" - integrity sha512-zwNw/4xZmYAUj0JgiZ7lggo3CIozhzHIfZmkcvL/CPUjMCyBvcyvYmC2I8B1UdVDffA5P9rz082xLwNFtfP1RQ== +"@parameter1/base-cms-dayjs@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-dayjs/-/base-cms-dayjs-4.74.0.tgz#45948947caefdcb80a971343f6ee768f3937dd08" + integrity sha512-bn18unMo6ZH2tJQVT+9zct1bU+5cZg1shcCL84wA7v31FvilXqP25KqXhZbIw/tvpQKJRbxOf6zrKfirIHB9wg== dependencies: dayjs "^1.11.7" -"@parameter1/base-cms-embedded-media@^4.47.1": - version "4.47.1" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-embedded-media/-/base-cms-embedded-media-4.47.1.tgz#a820cfd3ef24d23f11d76aae560280097341e654" - integrity sha512-bnBj2DYhCBnfuCPl9p7zCzXghOm74OJlOr9uCkGC390OX80K5rVkQRxsVs0ooEtPaF1wlHnsuE12o4Qg2FHC6Q== +"@parameter1/base-cms-embedded-media@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-embedded-media/-/base-cms-embedded-media-4.74.0.tgz#240dad92b37ece9c6b7fd9414afa36f8ba0f82ed" + integrity sha512-kpbcCCwZTI5wXcRX1fPUer1TkzuZmWcLeP442euMlWmNQQa3xz54Es+u57KVAT63bVGFYkldaYKAYPfdLFassA== dependencies: - "@parameter1/base-cms-html" "^4.5.12" - "@parameter1/base-cms-image" "^4.47.1" - "@parameter1/base-cms-inflector" "^4.5.12" + "@parameter1/base-cms-html" "^4.74.0" + "@parameter1/base-cms-image" "^4.74.0" + "@parameter1/base-cms-inflector" "^4.74.0" cheerio "^1.0.0-rc.12" escape-string-regexp "^1.0.5" -"@parameter1/base-cms-env@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-env/-/base-cms-env-4.5.12.tgz#620d8f40e28361c74823b09cd4363a1055d15e7d" - integrity sha512-CuY7HKjVuTiZk8iN6Y+q/Ekhi+aXAiEsrTay/UxsIHhkySe/orehg7Qd6Ka8EPJgJv9p//g+iPNbioOs8ew6dQ== +"@parameter1/base-cms-env@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-env/-/base-cms-env-4.74.0.tgz#57a787f4dae8e5a61209f70f04b1d5e67aa6e607" + integrity sha512-YBqWNLrN9vkTT7cpyu93vK6WgtWHEDIXZ0SNo1nKsg0mSt29Es3MVysl2i1ikwHtCgKHcr3Yfw8gdzcZgDITUg== dependencies: envalid "^6.0.2" validator "^13.9.0" -"@parameter1/base-cms-eslint@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-eslint/-/base-cms-eslint-4.5.12.tgz#480328e3ed1d81feafe51adb9d02754b9062cdb7" - integrity sha512-ECSYaAwHhObwg8e/zemC3qSATq+KZwX759HUcsdq3qA/g6UV9q+etOfpFhNF0h79sNuIrndmW5ur3EYn+3Xa2A== +"@parameter1/base-cms-eslint@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-eslint/-/base-cms-eslint-4.74.0.tgz#a7365d33a1491578787b938095f04a303e53be8e" + integrity sha512-eXSREzNn+ycH5UMBTUWo/v+UoViQQ0p8NtTJwQPtrFaNxjNEWEBNFQn8a2gWnPA0yu4TKa811LyC0P22A+hw3Q== dependencies: "@babel/core" "^7.21.0" "@babel/eslint-parser" "^7.19.1" @@ -1118,166 +1118,166 @@ eslint-plugin-import "^2.27.5" eslint-plugin-vue "^9.9.0" -"@parameter1/base-cms-express-apollo@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-express-apollo/-/base-cms-express-apollo-4.5.12.tgz#35f9daa8320ad3b4baf8f5d38b43bd9e97c287f3" - integrity sha512-mzLZWW+IIix/rENDsNYbOVDbP2aB3sxnMv6HgJUlvePtvzMxwb+m8mgViZC1VnsmTuSTs9BcTe6QGijsPOUoCQ== +"@parameter1/base-cms-express-apollo@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-express-apollo/-/base-cms-express-apollo-4.74.0.tgz#20e76453c58022d63a213759abaf45c83499d271" + integrity sha512-b/OQeMGp87YqK1f1ewcogceU2g9EIwYveS6dK/L6BXqIr3ISYAbD8vBjfQMkIc1FqpfeQImO51naWjY/IUbcbg== dependencies: - "@parameter1/base-cms-apollo-ssr" "^4.5.12" - "@parameter1/base-cms-graphql-fragment-types" "^4.5.12" + "@parameter1/base-cms-apollo-ssr" "^4.74.0" + "@parameter1/base-cms-graphql-fragment-types" "^4.74.0" -"@parameter1/base-cms-graphql-fragment-types@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-graphql-fragment-types/-/base-cms-graphql-fragment-types-4.5.12.tgz#98164e1e06868024c02d9f9b51084546bf3d8946" - integrity sha512-UbN0zgyhpTp0dYiO4yGBOEhIJUHy9Qw6Y9q+r0BWkAYQH1JaNXseTeiCkGsk3wjHh9/8jrW0bJx3pRTkEgRzVw== +"@parameter1/base-cms-graphql-fragment-types@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-graphql-fragment-types/-/base-cms-graphql-fragment-types-4.74.0.tgz#61701840724afbd223950cecfbd250aa3b6a7e23" + integrity sha512-6xtvqnaOhLDRghxPYlhX2FT5yd1WR+1NJ1FtJx9OV0laL7dXFeAE/kE8eYRvxFpL7OniQVTb32mCXPbgzgbrdA== dependencies: node-fetch "^2.6.9" -"@parameter1/base-cms-html@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-html/-/base-cms-html-4.5.12.tgz#5edba9eb9aa9c164c12534d1b55499e441a69cc8" - integrity sha512-4deXI+zYwjllleR5CT+K9i2DpvaTReUNxpJTzorbzNAfkivZn8oqVxz2ubq6c0dmYzK6dVO3hK5ujGScs1DzLw== +"@parameter1/base-cms-html@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-html/-/base-cms-html-4.74.0.tgz#24141a592cdd257e4734aa7202b324c957f5d10c" + integrity sha512-zxSBQHBw+fPRX/f7ovSBvf8D86jyRwHRzoDTfuj+22upNJsCBr2elPGeAKsrmPCx4SVrWmwUp5p6UMMfbBhn5Q== dependencies: html-entities "^1.4.0" html2plaintext "^2.1.4" striptags "^3.2.0" -"@parameter1/base-cms-image@^4.47.1": - version "4.47.1" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-image/-/base-cms-image-4.47.1.tgz#107adbcc089ca8f3f7e555fbb4d47a2d5c96421f" - integrity sha512-EfQRO1qAGCublf5JrLwMfhapyfE9iG0tznQsaUCef3VAvjXUBvXxI4cjyfjugkhuLep2qkEVq+CmxIMBK6hB9Q== +"@parameter1/base-cms-image@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-image/-/base-cms-image-4.74.0.tgz#9fab35689dd04eb1af97aea7ba654da1225252bb" + integrity sha512-XLHzjF2BQOn9eBh3mcfQxJNwtQtqIbc+ztK64vuu7wzJlun4OOFBZYw679k5xonNqhLaULkotggQEu25dFiQ6Q== dependencies: - "@parameter1/base-cms-html" "^4.5.12" - "@parameter1/base-cms-inflector" "^4.5.12" + "@parameter1/base-cms-html" "^4.74.0" + "@parameter1/base-cms-inflector" "^4.74.0" -"@parameter1/base-cms-inflector@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-inflector/-/base-cms-inflector-4.5.12.tgz#70d646202baa775f519afdfae19f75687364b1e2" - integrity sha512-zUtjsoZAVLDG9d2pPwnzhz7s/y7Fr6UNL3G/8wWEDeHzq9NOKqRPsiOI/Lc7SDyzbg0di+5MMnCWWlDfB5V+Xg== +"@parameter1/base-cms-inflector@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-inflector/-/base-cms-inflector-4.74.0.tgz#a7bf68e2c40b8ef9df8954e1c95a3b0bbdbd68fe" + integrity sha512-o9Pp4UWk+MbGpV4rvTwSvil7V9Mxrn+6AudRHAxq8PzrAOQoNtDZ+iWMwrc/a0Va17IRAKwMYqm96LM9AM7bsQ== dependencies: inflected "^2.1.0" -"@parameter1/base-cms-leaders-program@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-leaders-program/-/base-cms-leaders-program-4.73.0.tgz#ab104e721b981f73cd3b9384a355a650a7aa7fe2" - integrity sha512-b0ChUd+Z1ECrJ55rsYEBR1BLPX2LL83fVHVXwEmKN+DaytkINDV7oq0qTG+aeSVheV/SNb6wrb6Hm7h75SjLtw== +"@parameter1/base-cms-leaders-program@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-leaders-program/-/base-cms-leaders-program-4.74.0.tgz#66dc90cda84beada5e7242fdda6cdb3adf30753b" + integrity sha512-QxFoWBBPPe6kl3n4rrBaTvSVJjLItq/46Hgg9ESSde4mNEkxUX5p8SUZNpWtkHcXzEcJh0+awiOAy6Z3x4YJZA== dependencies: object-path "^0.11.8" portal-vue "^2.1.7" vue "^2.7.14" -"@parameter1/base-cms-marko-compiler@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-compiler/-/base-cms-marko-compiler-4.40.3.tgz#3ce0d64870376edf8e226e353777f0ffab5ca304" - integrity sha512-ATxUw70l4dQxaAsYYCkax5JhahcIkZJpaoggl6n1Z0OiWFL6hGYDS6+zVH/cOqc4sEZ5YFg2PQlUaZUsV5HuRw== +"@parameter1/base-cms-marko-compiler@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-compiler/-/base-cms-marko-compiler-4.74.0.tgz#367b7796de6ba923702ddacef7b6348dc6d84a5b" + integrity sha512-1Hz/AtGpZoe8Q+8yZH0XotieVAHkjGr0aQDpz6CyF3IZRQ9fk/6A63Ho3Le5DEDiSi8LHU/06GEzdxvNvTOeow== dependencies: - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-utils" "^4.74.0" chalk "^4.1.2" fancy-log "^2.0.0" fast-glob "^3.2.12" marko "~4.20.0" minimist "^1.2.8" -"@parameter1/base-cms-marko-core@^4.55.4": - version "4.55.4" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-core/-/base-cms-marko-core-4.55.4.tgz#195af814a354c94956b7cfa42d4c039d223e5fc3" - integrity sha512-tIQ6OeO6yLGUc3d8m6VOWt6D7yyp9TsRA6YUP50R8ifl3/j9LoeGtNfRyz0kh9DX24PHMatpb+0uSic/Wy6blA== +"@parameter1/base-cms-marko-core@^4.80.0": + version "4.80.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-core/-/base-cms-marko-core-4.80.0.tgz#fa0149a34bfc16d1efba7e3da45ea2c33a808a7d" + integrity sha512-2eZFEIzN1Zn3o7emKkR2nhCo2Q1whZgeEPx4unQTWCGFBC/qwsbJqo9J30DzOYVjuRPmJOG61o+vuhOCBHf1pQ== dependencies: - "@parameter1/base-cms-dayjs" "^4.5.12" - "@parameter1/base-cms-marko-express" "^4.9.0" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" - "@parameter1/base-cms-web-common" "^4.55.4" + "@parameter1/base-cms-dayjs" "^4.74.0" + "@parameter1/base-cms-marko-express" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" + "@parameter1/base-cms-web-common" "^4.80.0" -"@parameter1/base-cms-marko-express@^4.9.0": - version "4.9.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-express/-/base-cms-marko-express-4.9.0.tgz#053dd27dc3e8a50faf4b04e254642e67b6cf2886" - integrity sha512-i6AJe6i2yX+IwVjvoZYteoxF/NyM/VifcA5m09dF+4CpioP0BJkYxkyqEUK64Iovg6OKCR1QJokt0ivMChQBQg== +"@parameter1/base-cms-marko-express@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-express/-/base-cms-marko-express-4.74.0.tgz#4e38df9f4c1d58ce95dd7cbe38918c8dda7aea76" + integrity sha512-J/VRJGpJKRE8aVPKCaFhHP7ZafExzhCSJayosPysCnv53f7QO2jefQx2d+pnTHeoiaFlYLN6GBqYB5QJNI+kiQ== dependencies: marko "~4.20.0" pretty "^2.0.0" -"@parameter1/base-cms-marko-node-require@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-node-require/-/base-cms-marko-node-require-4.40.3.tgz#a08514512946e87e73224014728d8f101e3555c7" - integrity sha512-1VXwF5YcHDGGgXnbXLiJIGzSnITU1qHNRAQIhCPpDMI/3OMC3H+76PXOOtwNpwoDyzpZiJaSVy2ElZ9rwdKizA== +"@parameter1/base-cms-marko-node-require@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-node-require/-/base-cms-marko-node-require-4.74.0.tgz#cb5b22d09d8d392676afb1239933231341128f6a" + integrity sha512-1lMnWQhiZpYYBFEgYV67FBJh+Fn3uB7jkw//370uR+QFbfWEib+B/O1/xDXCRH0A4AJBNLKIbRtOa/LOeqhXGw== dependencies: - "@parameter1/base-cms-marko-compiler" "^4.40.3" + "@parameter1/base-cms-marko-compiler" "^4.74.0" marko "~4.20.0" -"@parameter1/base-cms-marko-web-contact-us@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-contact-us/-/base-cms-marko-web-contact-us-4.40.3.tgz#904d2edd9e851c0a6dd625afd4e0962fe2519706" - integrity sha512-NjMuzld7mvgGYtXwqtxqYmH3Qb1miLT3ErR0qa/VmKgPhQombnGMTLRaKlDnla9dUZKJzuln7Ov/Ez0obmT8Ow== +"@parameter1/base-cms-marko-web-contact-us@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-contact-us/-/base-cms-marko-web-contact-us-4.74.0.tgz#6c424903a811ff1aa606c2c7ca7cb3240a37ec39" + integrity sha512-6n3DOB0wIzO80KrPvH3kIv+PWG/Wu5hTOyd3wuBemwpgODV7yhUxCHG/kPWG7W2JqaG70XFYWh9UhMRvl9eQbA== dependencies: - "@parameter1/base-cms-env" "^4.5.12" - "@parameter1/base-cms-marko-web-recaptcha" "^4.5.12" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-env" "^4.74.0" + "@parameter1/base-cms-marko-web-recaptcha" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" "@sendgrid/mail" "^6.4.0" body-parser "^1.20.1" node-fetch "^2.6.9" -"@parameter1/base-cms-marko-web-deferred-script-loader@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-deferred-script-loader/-/base-cms-marko-web-deferred-script-loader-4.40.3.tgz#26a98db2dd4905d6c2cf8f35889ac87515e282b2" - integrity sha512-pSwdwLq+tgOSTklAKK70vN/8M0bk08ypEyjlx0c/njn+G3HGApfzDot6zVX3Yj7vLADPJO1786Zz7BWLrYNXRQ== +"@parameter1/base-cms-marko-web-deferred-script-loader@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-deferred-script-loader/-/base-cms-marko-web-deferred-script-loader-4.74.0.tgz#4df500b1ad8022587c1d728a9f662cd041391180" + integrity sha512-+k+4pdiKXVUKY98DWgF4PwDQHRR59vQLPB53rqKX6KiwyfrYUfoQCterNB/F25gX6X1JpWJH+yFFY6PKvAqVmg== dependencies: - "@parameter1/base-cms-object-path" "^4.40.3" + "@parameter1/base-cms-object-path" "^4.74.0" -"@parameter1/base-cms-marko-web-gam@^4.55.1": - version "4.55.1" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-gam/-/base-cms-marko-web-gam-4.55.1.tgz#185a3ae5b152e2a6a3bc3c1d0c035de338f8af6e" - integrity sha512-dspR9gNVoXcHOCsc82piGC9d8iJXjU9hADy4SzSIwu0XoIHcKIzlivvBqKx9rExiEpeW2mNZH/6VS/kxTNsiBA== +"@parameter1/base-cms-marko-web-gam@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-gam/-/base-cms-marko-web-gam-4.74.0.tgz#be88c92d8632274da6847a0d771396f80d663b60" + integrity sha512-hnQS7q0Q6o/zd5qkhyERzM5cvux5UlyaEYKzYLCWBexfzqAlnX9WwZBiNM/I49YliG27CJOYMgyUWguXJIse4g== dependencies: - "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.40.3" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" scrollmagic "^2.0.8" -"@parameter1/base-cms-marko-web-gcse@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-gcse/-/base-cms-marko-web-gcse-4.40.3.tgz#4dc849ccf2034abb889465fc4cc37a14500921f1" - integrity sha512-HKgIW2Ch4Cj6Z/IT/mKBF4KX5G/+EvC2NA+tlslMe/JNEWctIuxSxVHA3PBGfm+JFpNlQClcYhsgGwHsIDGy6A== +"@parameter1/base-cms-marko-web-gcse@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-gcse/-/base-cms-marko-web-gcse-4.74.0.tgz#934605d20fb180edc05c8354b2a2f91877a2d82c" + integrity sha512-TYI0NfYVQl9rYuxnLanKBo/7dxaoWu/gDJDzdbbWEGN46TVmsO5Rd49ePytgodqdJQX22Irl99DAmmHTz2oTlQ== dependencies: - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" -"@parameter1/base-cms-marko-web-gtm@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-gtm/-/base-cms-marko-web-gtm-4.73.0.tgz#179a2a4155d944a9c00714394bacc958b98f14c4" - integrity sha512-LZMdrKhvNYQBvn/ZIGVLMOMaGTR4gHa7axdVh7ukWA67THwcFVscJ+SFrszvVxnb7GDhf87H3XIsADdAQFXc/g== +"@parameter1/base-cms-marko-web-gtm@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-gtm/-/base-cms-marko-web-gtm-4.74.0.tgz#84948d9744fb4dac54a37db2bdeaf3b0a9c490ee" + integrity sha512-VN8G3IudkZSyqqgiTdsOpHVpzjjHHgAxqtEvYj/O/X4xgVC3QMYEkKbFL6UUeMKnllLSFd3Ofx8Ako7y5mkWUg== dependencies: - "@parameter1/base-cms-inflector" "^4.5.12" - "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.40.3" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-inflector" "^4.74.0" + "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" graphql "^14.7.0" graphql-tag "^2.12.6" -"@parameter1/base-cms-marko-web-html-sitemap@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-html-sitemap/-/base-cms-marko-web-html-sitemap-4.40.3.tgz#b5b9ddf8838f313ab8a89aac33275cfd6e4f97f7" - integrity sha512-oOWad3ara3yC9245NHzyhti4H1lFMweC/BMqDFvfb3H76n6KBwMUCVDIMXDkQ7ipjRYINOl5w3Rby8VujiEEqA== +"@parameter1/base-cms-marko-web-html-sitemap@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-html-sitemap/-/base-cms-marko-web-html-sitemap-4.74.0.tgz#cb086869194827a0a447c2b6b1b6b87df4ab5d58" + integrity sha512-ncfgorW3aC2MHQzRAeUcfY7vGu7JZFIyrYbSITdNk7mCuKv/LJZVrIzjEGJh+XBpK1X7bHy5d/v0RYWs7TkJSg== dependencies: - "@parameter1/base-cms-dayjs" "^4.5.12" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-dayjs" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" graphql "^14.5.4" graphql-tag "^2.12.6" -"@parameter1/base-cms-marko-web-icons@^4.36.8": - version "4.36.8" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-icons/-/base-cms-marko-web-icons-4.36.8.tgz#db479337f3bc3be9ad57fe8d18ffa5cba0008820" - integrity sha512-+PrD1dPiHNkp1eqO0D7DghRp+OH8gxllIn+zvxnoRvDWiVGZixkSozU95tHkP+F8Yi3Z9QpBEhZjGAYSyHnyww== +"@parameter1/base-cms-marko-web-icons@^4.80.4": + version "4.80.4" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-icons/-/base-cms-marko-web-icons-4.80.4.tgz#0bab325e4e444f5932c164e067c9221a202b5b08" + integrity sha512-48INl1T2X+YsUV9cB6hv6ACw2emQ/Hvjz5cMuFLA+E0zKfIMUi53wLJ+DJ8j5TLvAxN/WKSsanAFzphYe4O8Rw== -"@parameter1/base-cms-marko-web-identity-x@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-identity-x/-/base-cms-marko-web-identity-x-4.73.0.tgz#d62be98d852745734925fefd7a79899f9a0c1ba8" - integrity sha512-gdoVleq6gwQ2rVeq4Q1ujRPdeOHv00huQ8Quq47ZO4i/GTuxWGKradMed1xgK3yE6B2gLpabzcQy/lCstddUmg== +"@parameter1/base-cms-marko-web-identity-x@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-identity-x/-/base-cms-marko-web-identity-x-4.74.0.tgz#0249b82ea984a14248355e1256d0d81bf5d73a19" + integrity sha512-DgS66PfuICvDAtq8KNPVK3sWPCXKYXxKmxYl4xyqaCAozy9vpXO6H+DJvoMjNFXGoyK+Oct5QKCQswj3OVOd/A== dependencies: - "@parameter1/base-cms-marko-web-gtm" "^4.73.0" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-marko-web-gtm" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" apollo-cache-inmemory "^1.6.6" apollo-client "^2.6.10" apollo-link-context "^1.0.20" @@ -1291,66 +1291,66 @@ node-fetch "^2.6.9" object-path "^0.11.8" -"@parameter1/base-cms-marko-web-inquiry@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-inquiry/-/base-cms-marko-web-inquiry-4.73.0.tgz#1582497cd149ff9132e981bfcc240f965be14055" - integrity sha512-v0ye7ZSRanhn+/OkKV5nE3YdxIUluMPnCFAAKAKgTTj9y8YdBo3HlfWus+yPJmjM1j006O2A0/swn6cNXooTiw== +"@parameter1/base-cms-marko-web-inquiry@^4.74.2": + version "4.74.2" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-inquiry/-/base-cms-marko-web-inquiry-4.74.2.tgz#f2803fd405bdb24fa9651b85dbda77d9a3f393f9" + integrity sha512-VNWyUFzG59fT0A8eAl2MTszJ+NAqggjFZw748bYVpiWZv/q1M9G578ecUd+P3pOuDq2IE6G3qEOD5ZzUgQWjBw== dependencies: - "@parameter1/base-cms-env" "^4.5.12" - "@parameter1/base-cms-marko-web-recaptcha" "^4.5.12" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-env" "^4.74.0" + "@parameter1/base-cms-marko-web-recaptcha" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" "@sendgrid/mail" "^6.4.0" body-parser "^1.20.1" express "^4.18.2" graphql "^14.7.0" graphql-tag "^2.12.6" -"@parameter1/base-cms-marko-web-leaders@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-leaders/-/base-cms-marko-web-leaders-4.73.0.tgz#86332e78a800a8c69a4f7639a6d72f6332e1e5ee" - integrity sha512-oIegTYHUYBQjjzvqUt7qqEPxXDlAZg2DDfB5wkbO795XiaNPM0lvsxERXVKWUtxsaaFGlr4wQGeX9BqYOLk5LA== +"@parameter1/base-cms-marko-web-leaders@^4.80.4": + version "4.80.4" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-leaders/-/base-cms-marko-web-leaders-4.80.4.tgz#52da5ce3ca3b33c55bc3096b5e1199b21aeca071" + integrity sha512-dt8Tf7vxcivksPIOdqztXD8lAUwP8pQphhxViw43/Lf5BEJrrOdUha7fl23+e0ECNyE2McVBy1Q9dEMpy8+/LA== dependencies: - "@parameter1/base-cms-leaders-program" "^4.73.0" - "@parameter1/base-cms-marko-web-icons" "^4.36.8" - "@parameter1/base-cms-object-path" "^4.40.3" + "@parameter1/base-cms-leaders-program" "^4.74.0" + "@parameter1/base-cms-marko-web-icons" "^4.80.4" + "@parameter1/base-cms-object-path" "^4.74.0" object-path "^0.11.8" -"@parameter1/base-cms-marko-web-native-x@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-native-x/-/base-cms-marko-web-native-x-4.73.0.tgz#f63e178c8126f96339efd7c465e9d67a15bf4369" - integrity sha512-4t2rLJ9bHQ6Dx0eu+0iB3K5vYca32Rg9JQv7mVEsfZxyFu59CfXiUGCbsKbP14P/cPxLqcCPU9Yu1dpqYZxOew== +"@parameter1/base-cms-marko-web-native-x@^4.80.0": + version "4.80.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-native-x/-/base-cms-marko-web-native-x-4.80.0.tgz#a7664dc58fdd004501809a320b3413ca86b6e17a" + integrity sha512-dO1qDsMf/Izk03sJOpC/MHlnb7gC/9Kx0vJWSRWopKuGE/0PW8dl7q2AtPC0K2v7JiTD7EZ49iRfuLtNgmOjIw== dependencies: - "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.40.3" - "@parameter1/base-cms-marko-web-gtm" "^4.73.0" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" - "@parameter1/base-cms-web-common" "^4.55.4" + "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.74.0" + "@parameter1/base-cms-marko-web-gtm" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" + "@parameter1/base-cms-web-common" "^4.80.0" graphql-tag "^2.12.6" node-fetch "^2.6.9" -"@parameter1/base-cms-marko-web-omeda-identity-x@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-omeda-identity-x/-/base-cms-marko-web-omeda-identity-x-4.73.0.tgz#0bc2d44ad96a448049ccb55e42c05a30a068b56a" - integrity sha512-IQBwu4fByyhl4aCHxsxxQh8TCMtGuB462Um08Yox+Y82lu9oaZ0syjula0YBU7quqQYh8VmjgjZ65K7ihD+56Q== +"@parameter1/base-cms-marko-web-omeda-identity-x@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-omeda-identity-x/-/base-cms-marko-web-omeda-identity-x-4.74.0.tgz#e13b14e5ec4bfb395bf23b0780b1e4de35bbe335" + integrity sha512-d+jF+IsyhWcmKVffM29n+sS7+pMPqUUz0cSTj6Nw6se3Nabb0xbc6+xW7O9VfOf0OEwykDvCy5Wxru5+uaZHIw== dependencies: - "@parameter1/base-cms-marko-web-identity-x" "^4.73.0" - "@parameter1/base-cms-marko-web-omeda" "^4.51.0" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-marko-web-identity-x" "^4.74.0" + "@parameter1/base-cms-marko-web-omeda" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" "@parameter1/joi" "^1.2.10" graphql "^14.7.0" graphql-tag "^2.12.6" -"@parameter1/base-cms-marko-web-omeda@^4.51.0": - version "4.51.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-omeda/-/base-cms-marko-web-omeda-4.51.0.tgz#1210fd52fd348f34e2d886f0be5f1a0a19316cff" - integrity sha512-PIfM6g4yXS6NSIAsR0j2mzt3v/NrweS8GX0FNaTCYZT3yHgVVduYlb+uSz9KHt1CcnvAXIpRfqguHDgjRzDGcw== +"@parameter1/base-cms-marko-web-omeda@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-omeda/-/base-cms-marko-web-omeda-4.74.0.tgz#8bebe21d9e7a9b04979fca9c8722f13ec4ea98ab" + integrity sha512-s/YrmN1ROJ8ZhisnCdG9Da/ZLINhlsbmhn0OzTMgRDhQ6Tt1TFKD1IhLRfUJ7iDC7yacQy+cLd/JQlwr8+9ffw== dependencies: - "@parameter1/base-cms-env" "^4.5.12" - "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.40.3" - "@parameter1/base-cms-marko-web-recaptcha" "^4.5.12" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-env" "^4.74.0" + "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.74.0" + "@parameter1/base-cms-marko-web-recaptcha" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" "@parameter1/omeda-graphql-client" "^0.7.2" body-parser "^1.20.1" debug "^4.3.4" @@ -1361,117 +1361,117 @@ node-fetch "^2.6.9" tldjs "^2.3.1" -"@parameter1/base-cms-marko-web-p1-events@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-p1-events/-/base-cms-marko-web-p1-events-4.73.0.tgz#e0d03f41650aa9204a638a7d179f6c257c2d55aa" - integrity sha512-Kv1Q6Jo+qLyk8ZKHWYnKTcmd3J8mauALRnmPMxGNiJMIGpOYCXkTOxnQvSVS2qPunD5S4XyaWEOLJkGNC7qJKg== +"@parameter1/base-cms-marko-web-p1-events@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-p1-events/-/base-cms-marko-web-p1-events-4.74.0.tgz#bdb55e0d08212c18ff71185ea2154894e2601661" + integrity sha512-n0X9JIN6DalIJdx9Q6JiuGhW/haY6vD+l97NHVDYkCufaLHLyGdaqTmsOjCSF2sGyf5VuqmllLtKSHaMgXHUrA== dependencies: - "@parameter1/base-cms-inflector" "^4.5.12" - "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.40.3" - "@parameter1/base-cms-object-path" "^4.40.3" + "@parameter1/base-cms-inflector" "^4.74.0" + "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" -"@parameter1/base-cms-marko-web-photoswipe@^4.47.1": - version "4.47.1" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-photoswipe/-/base-cms-marko-web-photoswipe-4.47.1.tgz#cc1253d6d194fa5e7e38ab0917f041143e1abdb0" - integrity sha512-QCrwM4MFUAvBDD/5uQM6scO1JIkrNzm1RH2NzDOhIpmgE6POas+6tiqRRzjtqp216CxrPneAtfjQWIXho89/XA== +"@parameter1/base-cms-marko-web-photoswipe@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-photoswipe/-/base-cms-marko-web-photoswipe-4.74.0.tgz#788aa3db18e0da26bb1c98125c21354494086ebe" + integrity sha512-J/Gz7xFNcSBZqjbzVWdErUIU2a2RFIR07djFhVzj8+kCY9KbDH6aNRV8McmCF2Bawksr8LdvKN5PpSz7IPa+8A== dependencies: - "@parameter1/base-cms-image" "^4.47.1" - "@parameter1/base-cms-object-path" "^4.40.3" + "@parameter1/base-cms-image" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" photoswipe "^4.1.3" -"@parameter1/base-cms-marko-web-radix@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-radix/-/base-cms-marko-web-radix-4.5.12.tgz#e806b97572d84a47915f57bf1d7dc39ac09f095c" - integrity sha512-aBU/oYKuEdF40dSlagz3BuSHp93dnfzr6uc7Fy7ApoZMau6cQa7+vgc4GQCoCzl9h3OTv9900r8V+9EjX6zX/g== +"@parameter1/base-cms-marko-web-radix@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-radix/-/base-cms-marko-web-radix-4.74.0.tgz#15d728d7dce10bfb2c02f52a55adfd0b247a6517" + integrity sha512-maRAAJeE6iXSjUWcRLL5KSqdfpFl3pFzwnOrG5aN0A+kd/ZLU6krhMV8QZOdweINQtDw1R+8tg61Zlm87aGAtw== -"@parameter1/base-cms-marko-web-recaptcha@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-recaptcha/-/base-cms-marko-web-recaptcha-4.5.12.tgz#a86b2fe611f88ebbac626ac04405f699905d6032" - integrity sha512-LbmZ8iCQovpS81uNHPCR1yO05nuUeTZ+D1YRQQnuiTm5ykq7pTI9frWTcZjWKKIfU40Mit7VgGzQXzR4/Ue5ug== +"@parameter1/base-cms-marko-web-recaptcha@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-recaptcha/-/base-cms-marko-web-recaptcha-4.74.0.tgz#2e27b85050407e2d89a94158d3a50366b7fa2e23" + integrity sha512-HjlWuLQJhSQD6CLU4M126sPrMAPTpoISRqlKjS0UGiFikYa3+nkZoRLArAEnWjI5aH+4hp7gg7TNtcEo5Gn2iA== dependencies: http-errors "^1.8.1" node-fetch "^2.6.9" -"@parameter1/base-cms-marko-web-reveal-ad@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-reveal-ad/-/base-cms-marko-web-reveal-ad-4.40.3.tgz#4146c5c5ec35ffaef4ed5f418478af3596efe50e" - integrity sha512-DgeaiuzJI2siUhI6PR5UcSUbSgqqdb6D2h+si7emHPnnR3fWDa2//bYObZtRT/rEsR1z6hfbNEOoE44zb7pNKQ== +"@parameter1/base-cms-marko-web-reveal-ad@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-reveal-ad/-/base-cms-marko-web-reveal-ad-4.74.0.tgz#6635b9e4007365465fad7bc6bd297f919b20a6f2" + integrity sha512-ErABja+1LkWYlO5AmUax7JqcYv5AK8/hTX4JuOyxTAbmrThnwk1G28V8MSS6Sm/vis+bTAJWC2TlKAu/XNT8kw== dependencies: - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" -"@parameter1/base-cms-marko-web-search@^4.55.4": - version "4.55.4" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-search/-/base-cms-marko-web-search-4.55.4.tgz#911f9c0c4b30f77f46899de0db24ea380513ef95" - integrity sha512-fYCNmX1keX9DkUYJbfjQmoUBGmGYlH59gB6DPbbR11V7BBfP6wDFVcYt/gmEKfBRtrX3/NXgU7Q6GSV66mqvCg== +"@parameter1/base-cms-marko-web-search@^4.80.4": + version "4.80.4" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-search/-/base-cms-marko-web-search-4.80.4.tgz#7a07326b36e68144721ef66ff1c208c39dbdccc8" + integrity sha512-nFrO3Z22qu+6UrbpZbPAUqAcKHleZXYsOJBwrPhIt2dRXDk4FQKHZp2eAISLV/E0XuOO613GR30EKqPEjxStig== dependencies: - "@parameter1/base-cms-inflector" "^4.5.12" - "@parameter1/base-cms-marko-web-icons" "^4.36.8" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" - "@parameter1/base-cms-web-common" "^4.55.4" + "@parameter1/base-cms-inflector" "^4.74.0" + "@parameter1/base-cms-marko-web-icons" "^4.80.4" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" + "@parameter1/base-cms-web-common" "^4.80.0" "@parameter1/joi" "^1.2.10" graphql "^14.7.0" graphql-tag "^2.12.6" -"@parameter1/base-cms-marko-web-social-sharing@^4.55.4": - version "4.55.4" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-social-sharing/-/base-cms-marko-web-social-sharing-4.55.4.tgz#f050377da8d984a153ca75f132b5194f1e21c15f" - integrity sha512-CfyYkdN+Y7gWJCR/STFxszAijTLL+2eysHB7A2htOTCLR3SY0xSTGrsKVyi3oePjikyP0K7oyNtoUt2gVpsKVw== +"@parameter1/base-cms-marko-web-social-sharing@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-social-sharing/-/base-cms-marko-web-social-sharing-4.74.0.tgz#3a4b39f6f0dd7aeffec9f138fd129982fadbb5dd" + integrity sha512-deKhstX8Tfu/PJr8vsHC7hEH+H+gBl7Qvo9wxl8/NKi9jhjS85Jr+xn+/1XtF5IIP1gRYnEEYJxH2EwgXNJaCw== dependencies: - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-utils" "^4.74.0" -"@parameter1/base-cms-marko-web-theme-default@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-theme-default/-/base-cms-marko-web-theme-default-4.40.3.tgz#d77d52bcc5c79ed773981b88aa3651e6300e5882" - integrity sha512-+zUmkufsBv8eijKeEIXUFdZGDA3T1C999NGHghsl3Za0Wfe6owrSgNTr73vF60j2s3jzjqbk85nbD1OHY6Parg== +"@parameter1/base-cms-marko-web-theme-default@^4.80.4": + version "4.80.4" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-theme-default/-/base-cms-marko-web-theme-default-4.80.4.tgz#f0f572bc463c7bdfc15619f624455c7dd333ba51" + integrity sha512-/ZYFWjWMsoxjKvDBZ9592eaiWB9nHVLVpLUJbKMREEJWEZi8auQ2mVEToOJQ7grRssjlWmKeFyzMw0xtTb6vDg== dependencies: - "@parameter1/base-cms-marko-web-icons" "^4.36.8" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-marko-web-icons" "^4.80.4" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" bootstrap "^4.6.2" graphql "^14.7.0" graphql-tag "^2.12.6" -"@parameter1/base-cms-marko-web-theme-monorail-magazine@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-theme-monorail-magazine/-/base-cms-marko-web-theme-monorail-magazine-4.73.0.tgz#6e2c7007e33f3d6d6740dd594d7418db4d7d6903" - integrity sha512-qeTavgk8UAgWpvnfYaO+A5qpqv/dhYqC2sve1v7CHSdd2TUvabAZzE10dFzhGqaGWI1DAnDwOKJ6d7j2KUGMAQ== +"@parameter1/base-cms-marko-web-theme-monorail-magazine@^4.80.0": + version "4.80.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-theme-monorail-magazine/-/base-cms-marko-web-theme-monorail-magazine-4.80.0.tgz#2fe917998a866944208d31d631c5c18fbdf712d7" + integrity sha512-7l8THLFS6qRCRRxZPbAbibhATYwaxKnKjDP6qIHXfznp2Fdn/60vW23S2pXNNQ2cQQCOXdUXqPoUpo+0lHjBFA== dependencies: - "@parameter1/base-cms-marko-web-gtm" "^4.73.0" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" - "@parameter1/base-cms-web-common" "^4.55.4" + "@parameter1/base-cms-marko-web-gtm" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" + "@parameter1/base-cms-web-common" "^4.80.0" graphql "^14.7.0" graphql-tag "^2.12.6" object-path "^0.11.8" -"@parameter1/base-cms-marko-web-theme-monorail@^4.73.0": - version "4.73.0" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-theme-monorail/-/base-cms-marko-web-theme-monorail-4.73.0.tgz#092bc802d8f16c22af703bd72a79be8531903715" - integrity sha512-58dAL2TYF7KLp8idMH1CwRWY6SbXtJmQnlE2L/M/yM2drMp/5Ha5fKwRcjVHqXXVpx0bmB0gur0hji2QniGh7g== - dependencies: - "@parameter1/base-cms-dayjs" "^4.5.12" - "@parameter1/base-cms-image" "^4.47.1" - "@parameter1/base-cms-inflector" "^4.5.12" - "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.40.3" - "@parameter1/base-cms-marko-web-gam" "^4.55.1" - "@parameter1/base-cms-marko-web-gtm" "^4.73.0" - "@parameter1/base-cms-marko-web-html-sitemap" "^4.40.3" - "@parameter1/base-cms-marko-web-icons" "^4.36.8" - "@parameter1/base-cms-marko-web-identity-x" "^4.73.0" - "@parameter1/base-cms-marko-web-inquiry" "^4.73.0" - "@parameter1/base-cms-marko-web-native-x" "^4.73.0" - "@parameter1/base-cms-marko-web-omeda" "^4.51.0" - "@parameter1/base-cms-marko-web-omeda-identity-x" "^4.73.0" - "@parameter1/base-cms-marko-web-p1-events" "^4.73.0" - "@parameter1/base-cms-marko-web-recaptcha" "^4.5.12" - "@parameter1/base-cms-marko-web-reveal-ad" "^4.40.3" - "@parameter1/base-cms-marko-web-search" "^4.55.4" - "@parameter1/base-cms-marko-web-social-sharing" "^4.55.4" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" - "@parameter1/base-cms-web-common" "^4.55.4" +"@parameter1/base-cms-marko-web-theme-monorail@^4.81.0": + version "4.81.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web-theme-monorail/-/base-cms-marko-web-theme-monorail-4.81.0.tgz#567e5b49fcb9fe998317858167464a2c973b9c41" + integrity sha512-EVKrCEPKzG0pn4p1NOo0uZhEg35E+rnmxEoyO3uLjZEsljUhQd6U1gSl3UOqJOsLkpQMoo1eb55g1IIsArtqyw== + dependencies: + "@parameter1/base-cms-dayjs" "^4.74.0" + "@parameter1/base-cms-image" "^4.74.0" + "@parameter1/base-cms-inflector" "^4.74.0" + "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.74.0" + "@parameter1/base-cms-marko-web-gam" "^4.74.0" + "@parameter1/base-cms-marko-web-gtm" "^4.74.0" + "@parameter1/base-cms-marko-web-html-sitemap" "^4.74.0" + "@parameter1/base-cms-marko-web-icons" "^4.80.4" + "@parameter1/base-cms-marko-web-identity-x" "^4.74.0" + "@parameter1/base-cms-marko-web-inquiry" "^4.74.2" + "@parameter1/base-cms-marko-web-native-x" "^4.80.0" + "@parameter1/base-cms-marko-web-omeda" "^4.74.0" + "@parameter1/base-cms-marko-web-omeda-identity-x" "^4.74.0" + "@parameter1/base-cms-marko-web-p1-events" "^4.74.0" + "@parameter1/base-cms-marko-web-recaptcha" "^4.74.0" + "@parameter1/base-cms-marko-web-reveal-ad" "^4.74.0" + "@parameter1/base-cms-marko-web-search" "^4.80.4" + "@parameter1/base-cms-marko-web-social-sharing" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" + "@parameter1/base-cms-web-common" "^4.80.0" "@parameter1/joi" "^1.2.10" "@trevoreyre/autocomplete-vue" "^2.4.1" bootstrap "^4.6.2" @@ -1484,27 +1484,27 @@ node-fetch "^2.6.9" ua-parser-js "^1.0.33" -"@parameter1/base-cms-marko-web@^4.71.2": - version "4.71.2" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web/-/base-cms-marko-web-4.71.2.tgz#df8b9e29e8b54c792fc911320f6dd52a82976bd9" - integrity sha512-iblMX65rviikfrPk7gYkQywejA0D31B+THayd//3YCH7q5WLp0VaThS5UZ4neO25TuY6qx4J34ZxRYsxXwz6Yw== +"@parameter1/base-cms-marko-web@^4.80.0": + version "4.80.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-marko-web/-/base-cms-marko-web-4.80.0.tgz#9deadd3084314dbc9af01292dd53430ab2a54318" + integrity sha512-5WZLKC2IX+Tj+q7SNvfLmLBjp6pnKTCussaRdvyiBPQfX6DSBBUNIVzkurpCtwqdP7UpVZKw1QSCzU8hICqyTQ== dependencies: "@godaddy/terminus" "^4.11.2" - "@parameter1/base-cms-apollo-ssr" "^4.5.12" - "@parameter1/base-cms-dayjs" "^4.5.12" - "@parameter1/base-cms-embedded-media" "^4.47.1" - "@parameter1/base-cms-express-apollo" "^4.5.12" - "@parameter1/base-cms-graphql-fragment-types" "^4.5.12" - "@parameter1/base-cms-html" "^4.5.12" - "@parameter1/base-cms-image" "^4.47.1" - "@parameter1/base-cms-inflector" "^4.5.12" - "@parameter1/base-cms-marko-express" "^4.9.0" - "@parameter1/base-cms-marko-node-require" "^4.40.3" - "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.40.3" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-tenant-context" "^4.5.12" - "@parameter1/base-cms-utils" "^4.40.3" - "@parameter1/base-cms-web-common" "^4.55.4" + "@parameter1/base-cms-apollo-ssr" "^4.74.0" + "@parameter1/base-cms-dayjs" "^4.74.0" + "@parameter1/base-cms-embedded-media" "^4.74.0" + "@parameter1/base-cms-express-apollo" "^4.74.0" + "@parameter1/base-cms-graphql-fragment-types" "^4.74.0" + "@parameter1/base-cms-html" "^4.74.0" + "@parameter1/base-cms-image" "^4.74.0" + "@parameter1/base-cms-inflector" "^4.74.0" + "@parameter1/base-cms-marko-express" "^4.74.0" + "@parameter1/base-cms-marko-node-require" "^4.74.0" + "@parameter1/base-cms-marko-web-deferred-script-loader" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-tenant-context" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" + "@parameter1/base-cms-web-common" "^4.80.0" async "^3.2.4" cheerio "^1.0.0-rc.12" cookie-parser "^1.4.6" @@ -1521,32 +1521,32 @@ vue "^2.7.14" vue-server-renderer "^2.7.14" -"@parameter1/base-cms-object-path@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-object-path/-/base-cms-object-path-4.40.3.tgz#0ebe3706d9744930d8834f50f8068326b73e7c6c" - integrity sha512-S1eCgNWbfyAnjiyl9oV3gBWb2lhjSxiFzpmMmLR6biQrOzdu3DI4TDQ+WhwQ7Y/L9dzoAffqMqiBa9Ew3SwLgw== +"@parameter1/base-cms-object-path@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-object-path/-/base-cms-object-path-4.74.0.tgz#1fa3eec1b630a7b6bf27bac73d6391904dc2ea5c" + integrity sha512-wP47niTo0jabrhUPmxJguUk7fyiA21ofD4UojaqAd3/tjlv3QrV3442Go39nRmja5EUDaEVOK8LezTBfUKzE2A== dependencies: - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-utils" "^4.74.0" object-path "^0.11.8" -"@parameter1/base-cms-tenant-context@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-tenant-context/-/base-cms-tenant-context-4.5.12.tgz#f8a15f2242bcca9e89878d42afbfabe927f53133" - integrity sha512-epbQPe7D0D3wgnURdJZJ/BOCFHEnfyS8lu6Obnj7F7bc9Zhf6ppTO9gvtzRF17F8iy4M8447GqVn2U5RRXIatg== +"@parameter1/base-cms-tenant-context@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-tenant-context/-/base-cms-tenant-context-4.74.0.tgz#9153a29c2640bfcfeee35d7347a31f70e5e0b181" + integrity sha512-ImlEVfH3evFiiCeDXvLSdHfByraGq2nmkjs0s2/84/wZsNH+CgUHmx+HVhOPiTg/K70pClhbdvSLUIUzdN9QtA== -"@parameter1/base-cms-utils@^4.40.3": - version "4.40.3" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-utils/-/base-cms-utils-4.40.3.tgz#9bc1011e92d65828e012eb449bdc14266449a0f6" - integrity sha512-+jtzfD01bPmrmMBxdfcRxS2Z9kaH9rfWKKhchoNM/r4sjGd3AdPuG0Q5INu4gZIx5fgFO7L8kSUhOOrrK84BjQ== +"@parameter1/base-cms-utils@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-utils/-/base-cms-utils-4.74.0.tgz#f5342f84f9b3ba1175ce326ddb176e0b67e90fee" + integrity sha512-kzqA55rCCqiYZ2UIS7CqcUf2Qfkhgjq98hoLbfLimE+yE8vUEyrzVfiDzt6689djNoXtnMHPhd17m2u1yKfePg== -"@parameter1/base-cms-web-cli@^4.57.1": - version "4.57.1" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-web-cli/-/base-cms-web-cli-4.57.1.tgz#b0d56342bce2ae9b55ad4c09bdbf4b4aaebf660a" - integrity sha512-5UUElPjt7/+eBsEcxmQ4IImGZwzBXvXW4/22z60d/3nZUEZ8tvl/G40IHSSVdILgyj4EZmM/MPD7Ko+akJmi1w== +"@parameter1/base-cms-web-cli@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-web-cli/-/base-cms-web-cli-4.74.0.tgz#b048869c5db9b71c6197b036c22e79adab4a5c27" + integrity sha512-ohRJEApWKwCrwU3wW8mRJ35IMVPeoafUVZucQvhvv4Tigyi171nowmf9ljjHKyZp4j4sCzw+O0bLyL6VUVKJSw== dependencies: "@fullhuman/postcss-purgecss" "^5.0.0" - "@parameter1/base-cms-marko-compiler" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-marko-compiler" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" "@vitejs/plugin-vue2" "^2.2.0" autoprefixer "^10.4.13" chalk "^4.1.2" @@ -1567,22 +1567,22 @@ vite "~4.1.4" vue "^2.7.14" -"@parameter1/base-cms-web-common@^4.55.4": - version "4.55.4" - resolved "https://registry.yarnpkg.com/@parameter1/base-cms-web-common/-/base-cms-web-common-4.55.4.tgz#20c9fcae80742f848e7ae5c7e89d3977433707df" - integrity sha512-XlPXG63vB4gxEeFP1UpUF0S5Q4wWb08b4roBcQSl1a7nOMySuhGj3WSHypJJ3zitDasNFZx0ZtLSVTtdTaze2g== +"@parameter1/base-cms-web-common@^4.80.0": + version "4.80.0" + resolved "https://registry.yarnpkg.com/@parameter1/base-cms-web-common/-/base-cms-web-common-4.80.0.tgz#3119ac14edff9c4fff659c1ea43115dc5699d02e" + integrity sha512-Wua3HI3NfSaj3xwKSTu3psYQt2ghOutiey8/T8p7Lxk88a9qv1xH7q5haDkgbhmab8pKtj+isX4bY+NCxV6+Ig== dependencies: - "@parameter1/base-cms-inflector" "^4.5.12" - "@parameter1/base-cms-object-path" "^4.40.3" - "@parameter1/base-cms-utils" "^4.40.3" + "@parameter1/base-cms-inflector" "^4.74.0" + "@parameter1/base-cms-object-path" "^4.74.0" + "@parameter1/base-cms-utils" "^4.74.0" graphql "^14.7.0" graphql-tag "^2.12.6" http-errors "^1.8.1" -"@parameter1/browserslist-config-base-cms@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@parameter1/browserslist-config-base-cms/-/browserslist-config-base-cms-4.5.12.tgz#f30ec1814c7ecffb795b3292fe4046a6b1801a2a" - integrity sha512-9QVvhJ/Tah3HjcEkqoXFuPp6/zlhNnqbYiAQvDHPxhoCKDkgZNk1mJNeJeGgTtBsauDgpkxuyYTsSoT5mVT1pg== +"@parameter1/browserslist-config-base-cms@^4.74.0": + version "4.74.0" + resolved "https://registry.yarnpkg.com/@parameter1/browserslist-config-base-cms/-/browserslist-config-base-cms-4.74.0.tgz#ee8a105bdce84d0302aff763da9401e555840e2f" + integrity sha512-vDuIRsgbF2h05Ywc9Loo9S1pHYHJASSvP4WB1CwvPvT46UtO9wpG32yP4HBms2EQEo3Y2pgAGpjYH93Ly2a0lQ== "@parameter1/gulp@^1.1.21": version "1.2.0"