diff --git a/blocks/talk-to-an-expert-form/talk-to-an-expert-form.css b/blocks/talk-to-an-expert-form/talk-to-an-expert-form.css
new file mode 100644
index 000000000..981ebc465
--- /dev/null
+++ b/blocks/talk-to-an-expert-form/talk-to-an-expert-form.css
@@ -0,0 +1,332 @@
+.container {
+ width: 100%
+}
+
+@media (min-width: 640px) {
+ .container {
+ max-width: 640px
+ }
+}
+
+@media (min-width: 768px) {
+ .container {
+ max-width: 768px
+ }
+}
+
+@media (min-width: 1024px) {
+ .container {
+ max-width: 1024px
+ }
+}
+
+@media (min-width: 1280px) {
+ .container {
+ max-width: 1280px
+ }
+}
+
+@media (min-width: 1536px) {
+ .container {
+ max-width: 1536px
+ }
+}
+
+.btn-lg {
+ padding-top: .625rem;
+ padding-bottom: .625rem;
+ font-size: 1.125rem;
+ line-height: 1.75rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.absolute) {
+ position: absolute
+}
+
+.talk-to-an-expert-form-wrapper :is(.relative) {
+ position: relative
+}
+
+.talk-to-an-expert-form-wrapper :is(.z-10) {
+ z-index: 10
+}
+
+.talk-to-an-expert-form-wrapper :is(.col-span-1) {
+ grid-column: span 1 / span 1
+}
+
+.talk-to-an-expert-form-wrapper :is(.mx-0) {
+ margin-left: 0px;
+ margin-right: 0px
+}
+
+.talk-to-an-expert-form-wrapper :is(.mx-auto) {
+ margin-left: auto;
+ margin-right: auto
+}
+
+.talk-to-an-expert-form-wrapper :is(.my-0) {
+ margin-top: 0px;
+ margin-bottom: 0px
+}
+
+.talk-to-an-expert-form-wrapper :is(.my-2) {
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.mt-1) {
+ margin-top: 0.25rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.mt-5) {
+ margin-top: 1.25rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.mt-6) {
+ margin-top: 1.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.box-border) {
+ box-sizing: border-box
+}
+
+.talk-to-an-expert-form-wrapper :is(.block) {
+ display: block
+}
+
+.talk-to-an-expert-form-wrapper :is(.flex) {
+ display: flex
+}
+
+.talk-to-an-expert-form-wrapper :is(.grid) {
+ display: grid
+}
+
+.talk-to-an-expert-form-wrapper :is(.hidden) {
+ display: none
+}
+
+.talk-to-an-expert-form-wrapper :is(.h-3) {
+ height: 0.75rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.max-h-48) {
+ max-height: 12rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.w-3) {
+ width: 0.75rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.w-full) {
+ width: 100%
+}
+
+.talk-to-an-expert-form-wrapper :is(.max-w-4xl) {
+ max-width: 56rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.cursor-pointer) {
+ cursor: pointer
+}
+
+.talk-to-an-expert-form-wrapper :is(.grid-cols-1) {
+ grid-template-columns: repeat(1, minmax(0, 1fr))
+}
+
+.talk-to-an-expert-form-wrapper :is(.items-center) {
+ align-items: center
+}
+
+.talk-to-an-expert-form-wrapper :is(.items-baseline) {
+ align-items: baseline
+}
+
+.talk-to-an-expert-form-wrapper :is(.justify-between) {
+ justify-content: space-between
+}
+
+.talk-to-an-expert-form-wrapper :is(.gap-x-4) {
+ -moz-column-gap: 1rem;
+ column-gap: 1rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.gap-y-6) {
+ row-gap: 1.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.space-y-2 > :not([hidden]) ~ :not([hidden])) {
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse))
+}
+
+.talk-to-an-expert-form-wrapper :is(.overflow-hidden) {
+ overflow: hidden
+}
+
+.talk-to-an-expert-form-wrapper :is(.overflow-scroll) {
+ overflow: scroll
+}
+
+.talk-to-an-expert-form-wrapper :is(.rounded-full) {
+ border-radius: 9999px
+}
+
+.talk-to-an-expert-form-wrapper :is(.rounded-lg) {
+ border-radius: 0.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.rounded-xl) {
+ border-radius: 0.75rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.border) {
+ border-width: 1px
+}
+
+.talk-to-an-expert-form-wrapper :is(.border-solid) {
+ border-style: solid
+}
+
+.talk-to-an-expert-form-wrapper :is(.border-gray-300) {
+ --tw-border-opacity: 1;
+ border-color: rgb(209 213 219 / var(--tw-border-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.bg-danaherlightblue-50) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(239 251 253 / var(--tw-bg-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.bg-white) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.p-4) {
+ padding: 1rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.p-6) {
+ padding: 1.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.px-2) {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.px-4) {
+ padding-left: 1rem;
+ padding-right: 1rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.px-6) {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.py-2) {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.py-4) {
+ padding-top: 1rem;
+ padding-bottom: 1rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.pl-2) {
+ padding-left: 0.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.text-base) {
+ font-size: 1rem;
+ line-height: 1.5rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.text-sm) {
+ font-size: 0.875rem;
+ line-height: 1.25rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.font-extralight) {
+ font-weight: 200
+}
+
+.talk-to-an-expert-form-wrapper :is(.font-medium) {
+ font-weight: 500
+}
+
+.talk-to-an-expert-form-wrapper :is(.font-normal) {
+ font-weight: 200
+}
+
+.talk-to-an-expert-form-wrapper :is(.leading-4) {
+ line-height: 1rem
+}
+
+.talk-to-an-expert-form-wrapper :is(.text-danaherpurple-500) {
+ --tw-text-opacity: 1;
+ color: rgb(117 35 255 / var(--tw-text-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.text-gray-600) {
+ --tw-text-opacity: 1;
+ color: rgb(75 85 99 / var(--tw-text-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.text-gray-700) {
+ --tw-text-opacity: 1;
+ color: rgb(55 65 81 / var(--tw-text-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.text-red-500) {
+ --tw-text-opacity: 1;
+ color: rgb(239 68 68 / var(--tw-text-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.shadow) {
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
+}
+
+.hover\:bg-danaherpurple-50:hover {
+ background-color: #EADEFF
+}
+
+.talk-to-an-expert-form-wrapper :is(.hover\:bg-danaherpurple-50:hover) {
+ --tw-bg-opacity: 1;
+ background-color: rgb(234 222 255 / var(--tw-bg-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.focus\:outline-none:focus) {
+ outline: 2px solid transparent;
+ outline-offset: 2px
+}
+
+.talk-to-an-expert-form-wrapper :is(.focus\:ring-danaherpurple-500:focus) {
+ --tw-ring-opacity: 1;
+ --tw-ring-color: rgb(117 35 255 / var(--tw-ring-opacity))
+}
+
+.talk-to-an-expert-form-wrapper :is(.peer:checked ~ .peer-checked\:block) {
+ display: block
+}
+
+@media (min-width: 768px) {
+ .talk-to-an-expert-form-wrapper :is(.md\:col-span-2) {
+ grid-column: span 2 / span 2
+ }
+
+ .talk-to-an-expert-form-wrapper :is(.md\:ml-2) {
+ margin-left: 0.5rem
+ }
+
+ .talk-to-an-expert-form-wrapper :is(.md\:grid-cols-2) {
+ grid-template-columns: repeat(2, minmax(0, 1fr))
+ }
+}
\ No newline at end of file
diff --git a/blocks/talk-to-an-expert-form/talk-to-an-expert-form.js b/blocks/talk-to-an-expert-form/talk-to-an-expert-form.js
new file mode 100644
index 000000000..c2e466f0f
--- /dev/null
+++ b/blocks/talk-to-an-expert-form/talk-to-an-expert-form.js
@@ -0,0 +1,350 @@
+import {
+ a, div, form, input, label, span, strong, textarea,
+} from '../../scripts/dom-builder.js';
+import {
+ decorateIcons,
+} from '../../scripts/lib-franklin.js';
+
+const roles = ['Select', 'C-Suite', 'Vice President', 'Associate Vice President', 'Executive Director', 'Director',
+ 'Department Head / Group Lead', 'Principal Scientist', 'Operations Manager', 'Lab Manager', 'Scientist', 'Senior Scientist',
+ 'Associate Scientist', 'Graduate Student', 'Academia'];
+
+const countries = ['Select', 'United States', 'Afghanistan', 'Albania', 'Algeria', 'Andorra', 'Angola', 'Antigua and Barbuda', 'Argentina', 'Armenia',
+ 'Australia', 'Austria', 'Azerbaijan', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina',
+ 'Botswana', 'Brazil', 'Brunei', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Cape Verde', 'Cambodia', 'Cameroon', 'Canada', 'Central African Republic',
+ 'Chad', 'Channel Islands', 'Chile', 'China', 'Colombia', 'Comoros', 'Costa Rica', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic', 'Cote d Ivoire', 'Denmark',
+ 'Djibouti', 'Dominica', 'Dominican Republic', 'DR Congo', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Eswatini', 'Ethiopia',
+ 'Faeroe Islands', 'Finland', 'France', 'French Guiana', 'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece',
+ 'Grenada', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Holy See', 'Honduras', 'Hong Kong', 'Hungary', 'Iceland', 'India', 'Indonesia', 'Iran',
+ 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy', 'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Korea', 'Kuwait', 'Kyrgyzstan', 'Laos', 'Latvia',
+ 'Lebanon', 'Lesotho', 'Liberia', 'Libya', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Macao', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta',
+ 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Morocco', 'Mozambique', 'Myanmar', 'Namibia', 'Nepal',
+ 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'North Macedonia', 'Norway', 'Oman', 'Pakistan', 'Panama', 'Papua New Guinea',
+ 'Paraguay', 'Peru', 'Philippines', 'Poland', 'Portugal', 'Qatar', 'Romania', 'Russia', 'Rwanda', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Vincent and the Grenadines',
+ 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia', 'Slovenia', 'Somalia',
+ 'South Africa', 'South Korea', 'South Sudan', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Sweden', 'Switzerland', 'Syria', 'Taiwan', 'Tajikistan', 'Tanzania',
+ 'Thailand', 'Timor-Leste', 'Togo', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom',
+ 'Uruguay', 'Uzbekistan', 'Venezuela', 'Vietnam', 'Western Sahara', 'Yemen', 'Zambia', 'Zimbabwe'];
+
+const buildInputElement = (lable, field, inputType, inputName, autoCmplte, required, dtName) => {
+ const dataRequired = required ? span({ class: 'text-red-500' }, '*') : '';
+ return div(
+ { class: 'space-y-2' },
+ label(
+ { for: lable, class: 'font-normal text-sm leading-4' },
+ field,
+ dataRequired,
+ ),
+ input(
+ {
+ type: inputType,
+ name: inputName,
+ autocomplete: autoCmplte,
+ 'data-required': required,
+ class: 'input-focus text-base w-full block px-2 py-4 text-gray-600 font-extralight border border-solid border-gray-300',
+ },
+ ),
+ span(
+ { id: 'msg', 'data-name': dtName, class: 'mt-1 text-sm font-normal leading-4 text-danaherpurple-500' },
+ ),
+ );
+};
+
+function createDropdown(itemsList) {
+ const list = document.createElement('ul');
+ list.classList.add(...'absolute w-full max-h-48 overflow-scroll hidden peer-checked:block z-10 bg-white py-2 text-sm text-gray-700 rounded-lg shadow'.split(' '));
+ itemsList.forEach((item) => {
+ const li = document.createElement('li');
+ li.classList.add(...'block px-4 py-2 hover:bg-danaherpurple-50 cursor-pointer'.split(' '));
+ li.textContent = item;
+ list.append(li);
+ });
+ return list;
+}
+
+function buildSelectElement(lableFor, fieldName, inputType, inputId, dataName, inputList) {
+ const selectIcon = div(
+ { class: 'space-y-2' },
+ label(
+ {
+ for: lableFor,
+ class: 'font-normal text-sm leading-4',
+ },
+ fieldName,
+ span({ class: 'text-red-500' }, '*'),
+ ),
+ div(
+ { class: 'relative bg-white' },
+ input(
+ {
+ type: inputType,
+ id: inputId,
+ class: 'peer hidden',
+ },
+ ),
+ label(
+ {
+ for: inputId,
+ class: 'w-full flex justify-between items-center p-4 text-base text-gray-600 font-extralight border border-solid border-gray-300 cursor-pointer focus:outline-none focus:ring-danaherpurple-500',
+ },
+ span({ class: 'text-gray-600' }, 'Select'),
+ span({ class: 'icon icon-dropdown w-3 h-3' }),
+ ),
+ createDropdown(inputList),
+ span(
+ {
+ id: 'msg',
+ 'data-name': dataName,
+ class: 'mt-1 text-sm font-normal leading-4 text-danaherpurple-500',
+ },
+ ),
+ ),
+ );
+ return selectIcon;
+}
+
+function emailOptIn() {
+ const emailOptin = div(
+ { class: 'flex items-baseline' },
+ input(
+ {
+ type: 'checkbox',
+ name: 'Email_Opt_In',
+ class: 'input-focus-checkbox',
+ value: 'true',
+ 'data-required': false,
+ },
+ ),
+ label(
+ {
+ for: 'DHLS_Interest',
+ class: 'pl-2',
+ },
+ 'I would like to receive more information via email about products and services offered by DH Life Sciences, LLC.',
+ ),
+ );
+ return emailOptin;
+}
+
+function tnc() {
+ const tncEl = div(
+ { class: 'flex items-center mt-5' },
+ span(
+ {
+ style: 'font-family: helvetica, arial, sans-serif; font-size: 13px;',
+ },
+ 'By submitting this form, you agree to the ',
+ span(
+ {
+ style: 'color: #000000;',
+ },
+ 'By clicking the Submit button below and proceeding I confirm that I have reviewed and agree with the',
+ ),
+ strong(
+ a({
+ 'aria-label': 'Link Terms of Use',
+ title: 'https://lifesciences.danaher.com/us/en/legal/terms-of-use.html',
+ href: 'https://lifesciences.danaher.com/us/en/legal/terms-of-use.html',
+ target: '_blank',
+ rel: 'noopener noreferrer',
+ class: 'fui-Link ___m14voj0 f3rmtva f1ern45e f1deefiw f1n71otn f1q5o8ev f1h8hb77 f1vxd6vx f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f9n3di6 f1ids18y fygtlnl f1deo86v f12x56k7 f1iescvh ftqa4ok f50u1b5 fs3pq8b f1hghxdh f1tymzes f1x7u7e9 f1cmlufx f10aw75t fsle3fq',
+ tabindex: '-1',
+ }, 'Terms of Use'),
+ ),
+ span({ style: 'color: #000000;' }, ' and the '),
+ strong(
+ a(
+ {
+ 'aria-label': 'Link Privacy Policy',
+ title: 'https://lifesciences.danaher.com/us/en/legal/privacy-policy.html',
+ href: 'https://lifesciences.danaher.com/us/en/legal/privacy-policy.html',
+ target: '_blank',
+ rel: 'noopener noreferrer',
+ class: 'fui-Link ___m14voj0 f3rmtva f1ern45e f1deefiw f1n71otn f1q5o8ev f1h8hb77 f1vxd6vx f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f9n3di6 f1ids18y fygtlnl f1deo86v f12x56k7 f1iescvh ftqa4ok f50u1b5 fs3pq8b f1hghxdh f1tymzes f1x7u7e9 f1cmlufx f10aw75t fsle3fq',
+ tabindex: '-1',
+ },
+ 'Privacy Policy',
+ ),
+ ),
+ ),
+ );
+ return tncEl;
+}
+
+function getInquiry() {
+ const currentDate = new Date();
+ const year = currentDate.getUTCFullYear();
+ const month = String(currentDate.getUTCMonth() + 1).padStart(2, '0');
+ const day = String(currentDate.getUTCDate()).padStart(2, '0');
+ const hour = String(currentDate.getUTCHours()).padStart(2, '0');
+ const min = String(currentDate.getUTCMinutes()).padStart(2, '0');
+ const sec = String(currentDate.getUTCSeconds()).padStart(2, '0');
+ const milli = String(currentDate.getUTCMilliseconds()).padStart(3, '0');
+ const inquiry = year + month + day + hour + min + sec + milli;
+ document.getElementsByName('Inquiry_Number')[0].value = inquiry;
+ // eslint-disable-next-line
+ window.dataLayer?.push({ event: 'formSubmit', formId: 'TTAE', inquiry: inquiry });
+}
+
+function formValidate() {
+ let isValid = true;
+ document.querySelectorAll('[data-required]').forEach((el) => {
+ if (el.dataset.required === 'true') {
+ const msgEl = document.querySelector(`[data-name=${el.name}]`);
+ if (msgEl !== null) {
+ if (el.value.length === 0) {
+ msgEl.innerHTML = 'This field is required';
+ isValid = false;
+ } else {
+ msgEl.innerHTML = '';
+ }
+ }
+ }
+ });
+ return isValid;
+}
+
+function loadUTMParams() {
+ document.getElementsByName('UTM_Content')[0].value = localStorage.getItem('danaher_utm_content');
+ document.getElementsByName('UTM_Campaign')[0].value = localStorage.getItem('danaher_utm_campaign');
+ document.getElementsByName('UTM_Medium')[0].value = localStorage.getItem('danaher_utm_medium');
+ document.getElementsByName('UTM_Term')[0].value = localStorage.getItem('danaher_utm_term');
+ document.getElementsByName('UTM_Source')[0].value = localStorage.getItem('danaher_utm_source');
+ document.getElementsByName('UTM_NLC')[0].value = localStorage.getItem('danaher_utm_nlc');
+ document.getElementsByName('Page_Track_URL')[0].value = localStorage.getItem('danaher_utm_previouspage');
+}
+
+async function loadSFDCForm(block) {
+ const formIdEl = block?.firstElementChild;
+ const formId = formIdEl?.firstElementChild?.nextElementSibling?.textContent;
+ const formNameEl = formIdEl?.nextElementSibling;
+ const formName = formNameEl?.firstElementChild?.nextElementSibling?.textContent;
+ const clientIdEl = formNameEl?.nextElementSibling;
+ const clientId = clientIdEl?.firstElementChild?.nextElementSibling?.textContent;
+ const deExternalKeyEl = clientIdEl?.nextElementSibling;
+ const deExternalKey = deExternalKeyEl?.firstElementChild?.nextElementSibling?.textContent;
+ const actionEl = deExternalKeyEl?.nextElementSibling;
+ const action = actionEl?.firstElementChild?.nextElementSibling?.textContent;
+ const inquiryTypeEl = actionEl?.nextElementSibling?.nextElementSibling;
+ const inquiryType = inquiryTypeEl?.firstElementChild?.nextElementSibling?.textContent;
+ const successUrlEl = inquiryTypeEl?.nextElementSibling;
+ const successUrl = successUrlEl?.firstElementChild?.nextElementSibling?.textContent;
+ const errorUrlEl = successUrlEl?.nextElementSibling;
+ const errorUrl = errorUrlEl?.firstElementChild?.nextElementSibling?.textContent;
+ const formEl = div(
+ { class: 'relative my-2 mx-0 md:ml-2' },
+ form(
+ {
+ id: `${formId}`,
+ name: `${formName}`,
+ action: 'https://cl.s13.exct.net/DEManager.aspx',
+ method: 'post',
+ class: 'text-sm w-full max-w-4xl box-border overflow-hidden rounded-xl my-0 mx-auto p-6',
+ style: 'background: linear-gradient(180deg, rgba(245,245,245,1) 0%, rgba(255,255,255,1) 100%;',
+ },
+ input({ type: 'hidden', name: '_clientID', value: `${clientId}` }),
+ input({ type: 'hidden', name: '_deExternalKey', value: `${deExternalKey}` }),
+ input({ type: 'hidden', name: '_action', value: `${action}` }),
+ input({ type: 'hidden', name: '_returnXML', value: '1' }),
+ input({ type: 'hidden', name: 'Inquiry_Type', value: `${inquiryType}` }),
+ input({ type: 'hidden', name: 'Inquiry_Number' }),
+ input({ type: 'hidden', name: 'UTM_Content' }),
+ input({ type: 'hidden', name: 'UTM_Campaign' }),
+ input({ type: 'hidden', name: 'UTM_Medium' }),
+ input({ type: 'hidden', name: 'UTM_Term' }),
+ input({ type: 'hidden', name: 'UTM_Source' }),
+ input({ type: 'hidden', name: 'UTM_NLC' }),
+ input({ type: 'hidden', name: 'Page_Track_URL' }),
+ input({ type: 'hidden', name: 'Job_Role', 'data-required': true }),
+ input({ type: 'hidden', name: 'Country', 'data-required': true }),
+ input({ type: 'hidden', name: '_successURL', value: `${successUrl}` }),
+ input({ type: 'hidden', name: '_errorURL', value: `${errorUrl}` }),
+ div(
+ { class: 'container mx-auto grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-6' },
+ buildInputElement('First_Name', 'First name', 'text', 'First_Name', 'given-name', true, 'First_Name'),
+ buildInputElement('Last_Name', 'Last name', 'text', 'Last_Name', 'family-name', true, 'Last_Name'),
+ buildInputElement('Email_Address', 'Email address', 'text', 'Email_Address', 'email', true, 'Email_Address'),
+ buildInputElement('Phone_Number', 'Phone number', 'text', 'Phone_Number', 'tel', false, 'Phone_Number'),
+ buildInputElement('Company_Name', 'Company name', 'text', 'Company_Name', 'organization', true, 'Company_Name'),
+ buildInputElement('Postal_Code', 'ZIP / Postal code', 'text', 'Postal_Code', 'postal-code', true, 'Postal_Code'),
+ buildSelectElement('Job_Role', 'Job role', 'checkbox', 'Job_Role', 'Job_Role', roles),
+ buildSelectElement('Country', 'Country', 'checkbox', 'Country', 'Country', countries),
+ div(
+ { class: 'space-y-2 col-span-1 md:col-span-2' },
+ label(
+ {
+ for: 'OpCo_Comments',
+ class: 'font-normal text-sm leading-4',
+ },
+ 'Additional information (please provide as many details as possible):',
+ ),
+ textarea(
+ {
+ name: 'OpCo_Comments',
+ autocomplete: 'off',
+ 'data-required': false,
+ rows: '3',
+ cols: '50',
+ class: 'input-focus text-base w-full block px-2 py-4 font-extralight border border-solid border-gray-300',
+ },
+ ),
+ emailOptIn(),
+ tnc(),
+ ),
+ ),
+ input(
+ {
+ type: 'submit',
+ name: 'submit',
+ value: 'Submit',
+ class: 'btn btn-lg font-medium btn-primary-purple rounded-full px-6 mt-6',
+ },
+ ),
+ ),
+ );
+ block.innerHTML = '';
+ decorateIcons(formEl);
+ block.append(formEl);
+ loadUTMParams();
+
+ document.querySelector('#TTAE').addEventListener('submit', (event) => {
+ if (formValidate()) {
+ getInquiry();
+ } else {
+ event.preventDefault();
+ }
+ });
+
+ document.querySelectorAll('input#Job_Role + label + ul > li').forEach((el) => {
+ el.addEventListener('click', () => {
+ const dropdownInput = document.querySelector('input[name="Job_Role"]');
+ if (el.innerText === 'Select') {
+ dropdownInput.value = '';
+ } else {
+ dropdownInput.value = el.innerText;
+ }
+ const dropdownLabel = document.querySelector('input#Job_Role + label');
+ dropdownLabel.children[0].innerHTML = el.innerText;
+ dropdownLabel.click();
+ });
+ });
+
+ document.querySelectorAll('input#Country + label + ul > li').forEach((el) => {
+ el.addEventListener('click', () => {
+ const dropdownInput = document.querySelector('input[name="Country"]');
+ if (el.innerText === 'Select') {
+ dropdownInput.value = '';
+ } else {
+ dropdownInput.value = el.innerText;
+ }
+ const dropdownLabel = document.querySelector('input#Country + label');
+ dropdownLabel.children[0].innerHTML = el.innerText;
+ dropdownLabel.click();
+ });
+ });
+}
+
+export default function decorate(block) {
+ block.classList.add('relative');
+ loadSFDCForm(block);
+}
diff --git a/build-css.js b/build-css.js
index 5da46c60a..bc9be2a95 100644
--- a/build-css.js
+++ b/build-css.js
@@ -211,6 +211,11 @@ const fileMappings = [
output: './blocks/timeline/timeline.css',
wrapper: 'timeline-wrapper',
},
+ {
+ content: ['./blocks/talk-to-an-expert-form/talk-to-an-expert-form.js'],
+ output: './blocks/talk-to-an-expert-form/talk-to-an-expert-form.css',
+ wrapper: 'talk-to-an-expert-form-wrapper',
+ },
{
input: './templates/application/application-dev.css',
output: './templates/application/application.css',
diff --git a/icons/dropdown.svg b/icons/dropdown.svg
new file mode 100644
index 000000000..254831957
--- /dev/null
+++ b/icons/dropdown.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/styles/styles.css b/styles/styles.css
index c392022fe..ecfcbb22b 100644
--- a/styles/styles.css
+++ b/styles/styles.css
@@ -727,7 +727,7 @@ body.appear {
width: 100%;
}
-main .section:not(.stretch, .product-hero-container, .workflow-carousel-container, .product-card-container, .page-jump-menu-container, .page-tabs-container) {
+main .section:not(.stretch, .product-hero-container, .workflow-carousel-container, .product-card-container, .page-jump-menu-container, .page-tabs-container, .stats-container) {
padding-left: 1.5rem;
padding-right: 1.5rem;
padding-top: 2rem;
@@ -735,7 +735,7 @@ main .section:not(.stretch, .product-hero-container, .workflow-carousel-containe
}
@media (min-width: 768px) {
- main .section:not(.stretch, .product-hero-container, .workflow-carousel-container, .product-card-container, .page-jump-menu-container, .page-tabs-container) {
+ main .section:not(.stretch, .product-hero-container, .workflow-carousel-container, .product-card-container, .page-jump-menu-container, .page-tabs-container, .stats-container) {
padding-top: 3rem;
padding-bottom: 3rem;
}
@@ -2017,6 +2017,30 @@ main .section .product-hero-wrapper .product-hero .product-hero-content .vertica
}
}
+main .section .talk-to-an-expert-form-wrapper .talk-to-an-expert-form > div input.input-focus:focus,
+ main .section .talk-to-an-expert-form-wrapper .talk-to-an-expert-form > div textarea.input-focus:focus {
+ border-width: 1px;
+ border-style: solid;
+ --tw-border-opacity: 1;
+ border-color: rgb(117 35 255 / var(--tw-border-opacity));
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
+main .section .talk-to-an-expert-form-wrapper .talk-to-an-expert-form > div input.input-focus-checkbox {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ height: 16px;
+ width: 16px;
+ border-radius: 0.25rem;
+ border-width: 1px;
+ accent-color: #7523FF;
+}
+
+main .section .talk-to-an-expert-form-wrapper .talk-to-an-expert-form > div ul {
+ overflow-y: scroll;
+}
+
.pointer-events-none {
pointer-events: none;
}
diff --git a/styles/tailwind.css b/styles/tailwind.css
index a54f3df9a..b3d625564 100644
--- a/styles/tailwind.css
+++ b/styles/tailwind.css
@@ -88,7 +88,7 @@
@apply h-full w-full;
}
- main .section:not(.stretch, .product-hero-container, .workflow-carousel-container, .product-card-container, .page-jump-menu-container, .page-tabs-container) {
+ main .section:not(.stretch, .product-hero-container, .workflow-carousel-container, .product-card-container, .page-jump-menu-container, .page-tabs-container, .stats-container) {
@apply px-6 py-8 md:py-12;
}
@@ -555,6 +555,20 @@
main .section .product-hero-wrapper .product-hero .product-hero-content .vertical-gallery-container .image-content > picture > img{
@apply w-[290px] lg:w-[400px];
}
+
+ main .section .talk-to-an-expert-form-wrapper .talk-to-an-expert-form > div input.input-focus:focus,
+ main .section .talk-to-an-expert-form-wrapper .talk-to-an-expert-form > div textarea.input-focus:focus {
+ @apply border border-solid border-danaherpurple-500 outline-none;
+ }
+
+ main .section .talk-to-an-expert-form-wrapper .talk-to-an-expert-form > div input.input-focus-checkbox {
+ @apply mt-4 mb-4 w-[16px] h-[16px] border rounded accent-danaherpurple-500;
+ }
+
+ main .section .talk-to-an-expert-form-wrapper .talk-to-an-expert-form > div ul {
+ @apply overflow-y-scroll;
+ }
+
}
@layer utilities {
diff --git a/tools/actions/convert/test/fixtures/expert-bak-converted.html b/tools/actions/convert/test/fixtures/expert-bak-converted.html
new file mode 100644
index 000000000..40902ad97
--- /dev/null
+++ b/tools/actions/convert/test/fixtures/expert-bak-converted.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
Cell Line Development - Talk to an Expert
+
+
+
+
+
+
+
+
+
Speak to one of our world-leading life sciences experts
+
Whether you need to transform your workflows with intelligent instruments or explore how to turn scientific data into actionable insights, having expert advice at your fingertips is crucial to success. Get to know some of the leading experts from our life sciences companies below, then use the contact form to arrange a consultation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/actions/convert/test/fixtures/expert-bak.html b/tools/actions/convert/test/fixtures/expert-bak.html
new file mode 100644
index 000000000..42b9c08f4
--- /dev/null
+++ b/tools/actions/convert/test/fixtures/expert-bak.html
@@ -0,0 +1,1166 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cell Line Development Talk to an Expert | Danaher Life Sciences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ document.querySelectorAll('input#Job_Role + label + ul > li').forEach(function (el) {
+ el.addEventListener('click', function () {
+ const dropdownInput = document.querySelector('input[name="Job_Role"]');
+ if (el.innerText === 'Select') {
+ dropdownInput.value = '';
+ } else {
+ dropdownInput.value = el.innerText;
+ }
+ const dropdownLabel = document.querySelector('input#Job_Role + label');
+ dropdownLabel.children[0].innerHTML = el.innerText;
+ dropdownLabel.click();
+ });
+ });
+
+ document.querySelectorAll('input#Country + label + ul > li').forEach(function (el) {
+ el.addEventListener('click', function () {
+ const dropdownInput = document.querySelector('input[name="Country"]');
+ if (el.innerText === 'Select') {
+ dropdownInput.value = '';
+ } else {
+ dropdownInput.value = el.innerText;
+ }
+ const dropdownLabel = document.querySelector('input#Country + label');
+ dropdownLabel.children[0].innerHTML = el.innerText;
+ dropdownLabel.click();
+ });
+ });
+
+
+ function fm_valid() {
+ var isValid = true;
+ document.querySelectorAll('[data-required]').forEach(function (el) {
+ if(el.dataset.required == 'true') {
+ const msgEl = document.querySelector('[data-name="' + el.name + '"]');
+ console.log(msgEl);
+ if (el.value.length == 0) {
+ const name = el.name;
+ msgEl.innerHTML = "This field is required";
+ isValid = false;
+ } else {
+ msgEl.innerHTML = "";
+ }
+ }
+ });
+ return isValid;
+ }
+
+ window.onload = () => {
+ document.getElementsByName("UTM_Content")[0].value = localStorage.getItem("danaher_utm_content");
+ document.getElementsByName("UTM_Campaign")[0].value = localStorage.getItem("danaher_utm_campaign");
+ document.getElementsByName("UTM_Medium")[0].value = localStorage.getItem("danaher_utm_medium");
+ document.getElementsByName("UTM_Term")[0].value = localStorage.getItem("danaher_utm_term");
+ document.getElementsByName("UTM_Source")[0].value = localStorage.getItem("danaher_utm_source");
+ document.getElementsByName("UTM_NLC")[0].value = localStorage.getItem("danaher_utm_nlc");
+ document.getElementsByName("Page_Track_URL")[0].value = localStorage.getItem("danaher_utm_previouspage");
+ };
+
+ document.querySelector("#TTAE").addEventListener("submit", function(event){
+ if (fm_valid()) {
+ getInquiry();
+ } else {
+ event.preventDefault();
+ }
+ });
+
+ function getInquiry() {
+ const currentDate = new Date();
+ const year = currentDate.getUTCFullYear();
+ const month = String(currentDate.getUTCMonth() + 1).padStart(2, '0');
+ const day = String(currentDate.getUTCDate()).padStart(2, '0');
+ const hour = String(currentDate.getUTCHours()).padStart(2, '0');
+ const min = String(currentDate.getUTCMinutes()).padStart(2, '0');
+ const sec = String(currentDate.getUTCSeconds()).padStart(2, '0');
+ const milli = String(currentDate.getUTCMilliseconds()).padStart(3, '0');
+ const inquiry = year + month + day + hour + min + sec + milli;
+ document.getElementsByName("Inquiry_Number")[0].value = inquiry;
+ document.getElementByName("TTAE").submit();
+ }
+
+
+
+
+
+ .input-focus:focus {
+ border: 1px solid #7523FF !important;
+ outline: none;
+ }
+ .input-focus-checkbox {
+ margin-top: 14px;
+ margin-bottom: 14px;
+ width: 16px;
+ height: 16px;
+ border: 1px;
+ radius: 4px;
+ accent-color: #7523FF;
+ }
+
+ .prior:checked ~ .prior-checked\:block {
+ display: block;
+ }
+
+ .max-h-48 {
+ max-height: 12rem;
+ }
+
+ .overflow-scroll {
+ overflow-y: scroll;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/actions/convert/test/fixtures/solutions-converted.html b/tools/actions/convert/test/fixtures/solutions-converted.html
index dbf87ee6b..4f1d127dd 100644
--- a/tools/actions/convert/test/fixtures/solutions-converted.html
+++ b/tools/actions/convert/test/fixtures/solutions-converted.html
@@ -40,7 +40,7 @@ We see a way to identify high producing cell lines in <15 minutes
@@ -69,15 +69,16 @@
We see a way to access multidimensional data in minutes instead of weeks
Cell Line Development
-
WHY IT MATTERS
-
Leverage a partner with an extensive portfolio and accelerate your Cell Line Development
+
WHY IT MATTERS
+
Leverage a partner with an extensive portfolio and accelerate your Cell Line Development
Antibody drugs, including mAbs, bi- and trispecific antibodies, and antibody-drug conjugates, are a changing how we treat cancer and autoimmune diseases. Antibodies are derived from engineered producer cell lines.
-
Cell line development (CLD) is no simple task. Putting a lifesaving biologic, such as a targeted monoclonal antibody, on the market requires years of drug discovery research, development, clinical trials and scaling up for commercialization. Establishing cell lines is a long process, with numerous steps and challenges. Our Danaher Life Sciences companies support biopharma and service providers in their endeavor to accelerate the CLD process with its comprehensive platform of best-in-class science and technology companies. We recognize the necessity for solutions that eliminate bottlenecks faster and aim to address this with our extensive instrument, software, and services portfolio.
-
CUSTOMER SUCCESS STORY
+
Cell line development (CLD) is no simple task. Putting a lifesaving biologic, such as a targeted monoclonal antibody, on the market requires years of drug discovery research, development, clinical trials and scaling up for commercialization. Establishing cell lines is a long process, with numerous steps and challenges.
+
Our Danaher Life Sciences companies support biopharma and service providers in their endeavor to accelerate the CLD process with its comprehensive platform of best-in-class science and technology companies. We recognize the necessity for solutions that eliminate bottlenecks faster and aim to address this with our extensive instrument, software, and services portfolio.
+
CUSTOMER SUCCESS STORY
-
+
Customer Success Story: Implementation of Digital Workflows for Efficient Cell Line Development
@@ -88,8 +89,8 @@ Customer Success Story: Implementation of Digital Workflows for Efficient Ce
-
THE PROCESS
-
The Cell Line Development Workflow
+
THE PROCESS
+
The Cell Line Development Workflow
Innovative and integrated solutions in automation, analytics, and digital tools to improve efficiency and productivity
@@ -120,8 +121,8 @@
One lab, three paths to faster cell line development outcomes
/fragments/workflow_tabs/mabs/cell_line_developmen/workflow-carousels/digital
-
Resources
-
Resources for Cell Line Development
+
Resources
+
Resources for Cell Line Development
Method validation and references
@@ -131,7 +132,7 @@
Method validation and references
Beckman Coulter Life Sciences
Automation of IgG Quantification using the Biomek i7 Hybrid Automated Workstation
-
Application Note, Application Bulletin
+
Application Note
Download
@@ -290,17 +291,6 @@
FIND OUT MORE
thankyou
mktoForm_1007
-
-
-
Thank you, your submission has been submitted.
-
-
-
-
We will get in touch with you shortly.
-
-
-
While you wait please check out our latest insights and innovations
-
-
-
-
-