P/Kaufmann Contract Bernard on Material Bank (2024)

Material Bank logo

Not a registered user? Register

Thank you for using
Material Bank.

Mobile Menu

Brands

Boards

Skip to Content

P/Kaufmann Contract Bernard on Material Bank (5)

Try before you specify with Lending Library.

Get hands-on with this product for up to 10 days to see if it suits your needs.

We'll send an email when the product is in stock

Material:

`; this.toggleMaterials(mit.removeSpecialCharAndSpaces(group), productId); }, toggleMaterials(group, productId) { let el = document.getElementById('material_' + productId), selectedItem = document.querySelector('.' + group + '.item-material.selected'); el.classList.add('selected'); if (selectedItem !== null) { selectedItem.classList.remove('selected'); } }, addToCart(item) { const self = this; if (!item.product_id) { dispatchMessages([ { type: 'error', text: 'Product not found' } ], 5000); } if (this.projectList && this.projectList.length <= 0) { this.dispatchCreateProject(item); } else { this.dispatchAddToCart( item, self.customer.current_project, self.customer.current_project_name, self.customer.current_project_type ); } }, dispatchCreateProject(item) { const self = this; self.openCreateProject(); window.addEventListener("res-create-project", (res)=> { if (res.detail.status === 'success') { self.dispatchAddToCart( item, res.detail['project_id'], res.detail['project_title'], res.detail['project_type'] ); } }); }, openCreateProject() { window.dispatchEvent( new CustomEvent( "open-create-project-modal" ) ); }, isRecommendationsModalEnabled() { const browserStorage = JSON.parse(hyva.getBrowserStorage()?.getItem('recommendations-modal-settings')); if (!browserStorage) { return false; } const allowedGroups = browserStorage.hasOwnProperty('allowed-groups') ? browserStorage['allowed-groups'] : []; return allowedGroups.includes((this.customer.groupId).toString()); }, openRecommendationsModal(data, project, inProgress = false) { const inventoryProduct = this.inventory ? Object.values(this.inventory).find(item => item.product_id == data.productId ) : null; const controlRuleId = data.hasOwnProperty('modal_data') ? data.modal_data?.[0]?.control_rule_id || null : null; const detail = { inProgress: inProgress, serverMessage: data?.message ?? null, isInRealTimeStock: inventoryProduct?.qty > 0, skus: [data.product_id], bagProject: project, addedMaterialImage: data.photo ?? null, controlRuleId: controlRuleId }; window.dispatchEvent( new CustomEvent('open-recommendations-modal', { detail: detail }) ); }, dispatchAddToCart(item, projectId, projectName, projectType) { const self = this, productId = item.product_id; self.disableBtn = true; self.startLoader(true); if (this.isRecommendationsModalEnabled() && !this.blockRecommendationsModal) { const project = { 'project_title': projectName, 'project_type': projectType, 'project_id': projectId }; this.openRecommendationsModal(item, project, true); } let associatedProductData = ''; if (Object.keys(this.parentProduct).length) { associatedProductData = '&related_product[0]=' + this.parentProduct.brand + ': ' + this.parentProduct.name + '&related_product_id[0]=' + this.parentProduct.id; if (typeof pdpUrlParams !== 'undefined') { const listParams = { item_list_id: pdpUrlParams.get('itemListId'), item_list_name: pdpUrlParams.get('itemListName') ? decodeURI(pdpUrlParams.get('itemListName')) : null, index: pdpUrlParams.get('index') ? parseInt(pdpUrlParams.get('index')) : null, }; associatedProductData += `&item_list_id[0]=${listParams.item_list_id}&item_list_name[0]=${listParams.item_list_name}&index[0]=${listParams.index}`; } } fetch(self.addToCartUrl, { method: 'POST', body:'product_id[0]=' + productId + '&' + 'project_id[0]=' + projectId + '&' + 'project_name[0]=' + projectName + '&' + 'project_type[0]=' + projectType + '&' + 'qty[0]=1' + associatedProductData, headers: { 'Content-type': 'application/x-www-form-urlencoded' } }).then(response => { return response.json(); }).then(res => { if (res.status === 'success') { this.gtmTrackAddToCart(item); if (this.isRecommendationsModalEnabled() && !this.blockRecommendationsModal) { const project = { 'project_title': projectName, 'project_type': projectType, 'project_id': projectId }; this.openRecommendationsModal(item, project); window.dispatchEvent(new CustomEvent("block-recommendations-modal")); } else { setTimeout(() => { hyva.setCookie('mage-cache-sessid', '', -1, true); // remove the cookie to force customer section window.dispatchEvent(new CustomEvent("reload-customer-section-data")); }, 1000); self.itemAdded = productId; if (res.hasOwnProperty('message') && res.message) { window.dispatchEvent( new CustomEvent('show-control-rules-modal', { detail: { data: res } }) ); } else { dispatchMessages([ { type: 'success', text: 'Added to cart' } ], 5000); if (self.customer && (self.customer.groupId === 1 || self.customer.groupId === 2)) { /* window.dispatchEvent( new CustomEvent("show-brand-package-text", { detail: { hideAfter: 5000 } }) ); */ } } } } else { dispatchMessages([ { type: 'error', text: res && res.message ? res.message : 'Some error occurred' } ], 5000); } }).finally(() => { self.startLoader(false); self.disableBtn = false; setTimeout(() => { self.itemAdded = false; }, 2000); }); }, loadFavoriteList(items) { this.boardList = items ? items : []; }, getInventory (data) { this.inventory = data; }, responseSaveToBoard(detail) { const self = this; const response = detail.response; if (response.hasOwnProperty('items')) { response.items.forEach((newItem) => { if (self.boardList.find( (item) => item && (Number(item.item_id) === Number(newItem.item_id)) ) === undefined) { self.boardList.push(newItem); } }); clearTimeout(self.timeout); self.disableBtn = false; } else if (response.id) { if (self.boardList.find( (item) => item && (Number(item.item_id) === Number(response.item_id)) ) === undefined) { self.boardList.push(response); } } // force update boardList self.boardList.push({id:1}); }, isSaved(productId) { return this.boardList.find( (item) => item && (Number(item.item_id) === Number(productId)) ) !== undefined; }, openBoardModal(productId) { window.dispatchEvent( new CustomEvent('open-save-to-board-modal', { detail: {itemIds: [productId]} }) ); }, receiveData(data) { if (data.customer?.firstname) { this.cart = data.cart; this.customer = data.customer; this.mapCartItems(data.cart.items); } }, mapCartItems(items) { const self = this; items.forEach(item => { self.cartItemList.push({ 'product_sku' : item.product_sku }); }); }, updateClass(listTitle, index) { if (index > 9) { return 'hide-finishes-on-mobile ' + mit.removeSpecialCharAndSpaces(listTitle); } return mit.removeSpecialCharAndSpaces(listTitle); }, seeMore() { document.getElementsByClassName('hide-finishes-on-mobile').forEach(el => { el.classList.remove('hide-finishes-on-mobile'); }); }, /** Dispatch event to open mini pdp modal **/ openMiniPdp(productId) { window.dispatchEvent( new CustomEvent( "open-mini-pdp", { detail: productId } ) ); }, getProjects(projectList) { this.projectList = projectList; }, startLoader(isLoading) { window.dispatchEvent( new CustomEvent( "start-loader", { detail: isLoading } ) ); }, gtmTrackAddToCart(item) { const listParams = { item_list_id: pdpUrlParams.get('itemListId'), item_list_name: pdpUrlParams.get('itemListName') ? decodeURI(pdpUrlParams.get('itemListName')) : null, index: pdpUrlParams.get('index') ? parseInt(pdpUrlParams.get('index')) : null, }; item = this.prepareGTMItemData({ ...item, ...listParams }); mitGTM.addToCart([item], 'Product detail page'); }, prepareGTMItemData(item) { const itemCategory = []; const itemCategory2 = []; const itemCategory3 = []; if (item.hasOwnProperty('taxonomy')) { const taxonomies = item.taxonomy.split('|'); for (const taxonomy of taxonomies) { const splittedTaxonomy = taxonomy.split('.'); if (splittedTaxonomy[0] && !itemCategory.includes(splittedTaxonomy[0])) { itemCategory.push(splittedTaxonomy[0]); } if (splittedTaxonomy[1] && !itemCategory2.includes(splittedTaxonomy[1])) { itemCategory2.push(splittedTaxonomy[1]); } if (splittedTaxonomy[2] && !itemCategory3.includes(splittedTaxonomy[2])) { itemCategory3.push(splittedTaxonomy[2]); } } } return { 'item_name': item.hasOwnProperty('title') ? item.title : null, 'item_id': item.hasOwnProperty('sku') ? item.sku : null, 'item_brand': item.hasOwnProperty('brand') ? item.brand : null, 'item_type': mitGTM.getItemType(item), 'item_category': itemCategory.join(', '), 'item_category2': itemCategory2.join(', '), 'item_category3': itemCategory3.join(', '), 'item_variant': item.hasOwnProperty('color') ? item.color : null, 'item_list_id': item?.item_list_id || null, 'item_list_name': item?.item_list_name || null, 'index': item?.index || null, 'quantity': 1, 'price': 0, } }, /* MB activeChild Param */ preselectActiveChild() { let productId = mit.getUrlParameter('activeChild'), self = this; if (!productId && typeof window.productConfigurableJson !== 'undefined') { productId = window.productConfigurableJson['first_child_id']; } if ( productId && typeof window.productConfigurableJson !== 'undefined' && window.productConfigurableJson['child_list'][productId] ) { const parentProduct = window.productConfigurableJson['child_list'][productId]; this.parentProduct = { id: parentProduct.product_id.value, name: parentProduct.name.value, brand: parentProduct.manufacturer.value, }; } }, } }

Download Modeling Files

P/Kaufmann Contract Bernard on Material Bank (10)

P/Kaufmann Contract Bernard on Material Bank (11)

P/Kaufmann Contract Bernard on Material Bank (12)

P/Kaufmann Contract Bernard on Material Bank (13)

P/Kaufmann Contract Bernard on Material Bank (14)

P/Kaufmann Contract Bernard on Material Bank (15)

P/Kaufmann Contract Bernard on Material Bank (16)

P/Kaufmann Contract Bernard on Material Bank (17)

Select an Associated Product

P/Kaufmann Contract Bernard on Material Bank (20)

Sign Out

My Profile

Contact Info

  • First Name
  • Last Name
  • Email
  • Office Phone
  • Mobile Phone
  • Country
  • City
  • Zip

Preferences

  • Preferred Contact Method
  • Urgent Order Notification

    Receive urgent text notifications related to your order

216">

Edit Profile

`; div.appendChild(article); } } function generateLabel(fieldId, labelTxt, isDisabled = false, isRequired = false) { const label = document.createElement('label'); label.classList.add('label', 'form-label'); if (isDisabled) { label.classList.add('text-mbgray-200', 'cursor-not-allowed'); } label.setAttribute('for', fieldId); label.innerText = labelTxt + (isRequired && !isDisabled ? '*' : ''); return label; } function attachCustomAttributes(attribute, field) { if (!(attribute.hasOwnProperty('custom_attributes') && attribute.custom_attributes)) { return; } attribute.custom_attributes.forEach(attribute => { const existingAttribute = field.getAttribute(attribute.name); if (existingAttribute) { if (existingAttribute.includes('{')) { const existingObjValue = existingAttribute.substring(existingAttribute.indexOf('{') + 1, existingAttribute.lastIndexOf('}')); const newObjValue = attribute.value.substring(attribute.value.indexOf('{') + 1, attribute.value.lastIndexOf('}')); field.setAttribute(attribute.name, `{ ${newObjValue}, ${existingObjValue} }`); } else { field.setAttribute(attribute.name, `${attribute.value}; ${existingAttribute}`); } } else { field.setAttribute(attribute.name, attribute.value); } }); } function generateCustomSelect(attribute) { /** * TODO: Move custom select element to a script scope once AlpineJs v3 is installed * in order to use the scope inheritance that's not available on previously versions */ const field = document.createElement('input'); field.setAttribute('type', 'hidden'); field.setAttribute('name', attribute.code); field.setAttribute('id', attribute.code); field.setAttribute('x-ref', attribute.code); field.setAttribute('placeholder', ' '); if (attribute.is_required) { field.required = true; } field.classList.add('form-select', 'peer'); const valueWrapper = document.createElement('div'); valueWrapper.classList.add('flex', 'justify-between', 'items-center', 'form-input', 'peer', 'overflow-ellipsis', 'overflow-hidden', 'min-h-[33px]'); valueWrapper.setAttribute('x-ref', `${attribute.code}_button`); valueWrapper.setAttribute('tabindex', '0'); valueWrapper.innerHTML = ` `; const optionsList = document.createElement('ul'); optionsList.classList.add('w-full', 'absolute', 'hidden', 'flex-col', 'gap-y-4', 'p-4', 'z-20', 'cursor-pointer', 'bg-white', 'overflow-y-auto', 'shadow-xl', 'overflow-x-hidden', 'max-h-[80vh]', 'group-focus-within:flex', 'md:max-h-[372px]', 'md:gap-y-1', 'md:p-2', 'md:rounded-lg', 'max-md:fixed', 'max-md:bottom-0', 'max-md:max-w-full', 'max-md:left-0', 'max-md:rounded-tl-2xl', 'max-md:rounded-tr-2xl'); optionsList.setAttribute('tabindex', '0'); optionsList.insertAdjacentHTML( 'afterbegin', `
  • ${attribute.label}
  • ` ); if (typeof attribute.options === 'object' && !Array.isArray(attribute.options)) { attribute.options = Object.values(attribute.options); } attribute.options.forEach(option => { const optValue = option.value ?? option.code; const optLabel = option.label ?? option.name; if (!optValue) { return; } optionsList.insertAdjacentHTML( 'beforeend', `
  • ${optLabel}
  • ` ); }); field.setAttribute('x-on:change', 'onChange($event)'); attachCustomAttributes(attribute, field); attribute.hasOwnProperty('custom_classes') ? attribute.custom_classes.push('group', 'relative') : attribute.custom_classes = ['group', 'relative']; const wrapper = wrapField(field, attribute); wrapper.appendChild(generateBackDrop()); wrapper.appendChild(valueWrapper); wrapper.appendChild(optionsList); return wrapper; } function generateMultilineFields(attribute, nLines) { if (isNaN(nLines)) { nLines = 2; // Min value allowed } const fieldsArr = []; for (let i = 1; nLines >= i; i++) { const fieldId = attribute.code + `_${i}`; const field = document.createElement('input'); field.setAttribute('type', 'text'); field.setAttribute('name', `${attribute.code}[${i - 1}]`); field.setAttribute('id', fieldId); field.setAttribute('maxlength', '50'); field.setAttribute('placeholder', ' '); field.classList.add('form-input', 'peer'); if (fieldId === 'street_1') { field.setAttribute('x-on:keyup.debounce', 'addressAutocomplete($event.target)'); field.setAttribute('x-on:focus', 'suggestionsOpen = true'); field.setAttribute('x-on:click.away', 'suggestionsOpen = false'); field.setAttribute('autocomplete', 'none'); } attachCustomAttributes(attribute, field); const isRequired = attribute.is_required && i === 1; if (isRequired) { field.required = true; } // Set form validation event field.setAttribute('x-on:blur', 'onChange($event)'); const label = generateLabel(fieldId, `${attribute.label}` + (i === 1 ? '' : ` ${i}`), attribute.is_disabled, isRequired); const wrapper = wrapField(field, attribute, true, label); fieldsArr.push(wrapper); } return fieldsArr; } function generateTooltip(attribute) { const tooltipWrapper = document.createElement('div'); tooltipWrapper.classList.add('has-tooltip', 'ml-auto'); const tooltip = document.createElement('p'); tooltip.classList.add('-right-2', 'top-10', 'text-xs', 'p-3', 'tooltip', 'rounded-xl', 'hover:w-52'); tooltip.appendChild(document.createTextNode(attribute.help_tooltip)); tooltipWrapper.insertAdjacentHTML( 'afterbegin', '' // Remove new line from SVG ); tooltipWrapper.appendChild(tooltip); return tooltipWrapper; } function generateBackDrop() { const backDrop = document.createElement('div'); backDrop.className = 'fixed hidden inset-0 bg-black bg-opacity-30 z-10 max-md:group-focus-within:flex'; backDrop.setAttribute('x-on:click', '$event.target.blur()'); return backDrop; } function phoneCountryFields(attribute, phoneFieldEl) { phoneFieldEl.placeholder = 'Phone Number'; const countryPhoneCode = attribute.code + '_country'; const countryPhoneEl = document.createElement('input'); countryPhoneEl.name = countryPhoneCode; countryPhoneEl.id = countryPhoneCode; countryPhoneEl.placeholder = 'Country'; countryPhoneEl.type = 'hidden'; countryPhoneEl.className = 'form-input peer overflow-ellipsis overflow-hidden cursor-pointer group relative'; countryPhoneEl.setAttribute('x-ref', countryPhoneCode); countryPhoneEl.setAttribute('x-on:change', 'onChange($event); updateSelectedPhoneCountry($event.target); checkDataUpdate($event.target)'); if (attribute.is_required) { countryPhoneEl.required = true; } const valueWrapper = document.createElement('div'); valueWrapper.classList = 'flex justify-between items-center form-input peer overflow-ellipsis overflow-hidden min-h-[33px]'; valueWrapper.setAttribute('x-ref', `${countryPhoneCode}_button`); valueWrapper.setAttribute('tabindex', '0'); valueWrapper.innerHTML = `Country `; const optionsList = document.createElement('ul'); optionsList.className = 'w-full absolute hidden flex-col gap-y-4 p-4 z-20 cursor-pointer bg-white overflow-y-auto shadow-xl' + ' overflow-x-hidden max-h-[80vh] group-focus-within:flex md:w-auto md:max-h-[372px] md:gap-y-1 md:p-2' + ' md:rounded-lg max-md:fixed max-md:bottom-0 max-md:max-w-full max-md:left-0 max-md:rounded-tl-2xl max-md:rounded-tr-2xl'; optionsList.setAttribute('tabindex', '0'); optionsList.insertAdjacentHTML( 'afterbegin', `
  • ${attribute.label}
  • ` ); const allowedCountries = [{"code":"CA","label":"Canada","regions":[{"code":66,"label":"Alberta"},{"code":67,"label":"British Columbia"},{"code":68,"label":"Manitoba"},{"code":70,"label":"New Brunswick"},{"code":69,"label":"Newfoundland and Labrador"},{"code":72,"label":"Northwest Territories"},{"code":71,"label":"Nova Scotia"},{"code":73,"label":"Nunavut"},{"code":74,"label":"Ontario"},{"code":75,"label":"Prince Edward Island"},{"code":76,"label":"Quebec"},{"code":77,"label":"Saskatchewan"},{"code":78,"label":"Yukon Territory"}]},{"code":"US","label":"United States","regions":[{"code":1,"label":"Alabama"},{"code":4,"label":"Arizona"},{"code":5,"label":"Arkansas"},{"code":12,"label":"California"},{"code":13,"label":"Colorado"},{"code":14,"label":"Connecticut"},{"code":15,"label":"Delaware"},{"code":16,"label":"District of Columbia"},{"code":18,"label":"Florida"},{"code":19,"label":"Georgia"},{"code":22,"label":"Idaho"},{"code":23,"label":"Illinois"},{"code":24,"label":"Indiana"},{"code":25,"label":"Iowa"},{"code":26,"label":"Kansas"},{"code":27,"label":"Kentucky"},{"code":28,"label":"Louisiana"},{"code":29,"label":"Maine"},{"code":31,"label":"Maryland"},{"code":32,"label":"Massachusetts"},{"code":33,"label":"Michigan"},{"code":34,"label":"Minnesota"},{"code":35,"label":"Mississippi"},{"code":36,"label":"Missouri"},{"code":37,"label":"Montana"},{"code":38,"label":"Nebraska"},{"code":39,"label":"Nevada"},{"code":40,"label":"New Hampshire"},{"code":41,"label":"New Jersey"},{"code":42,"label":"New Mexico"},{"code":43,"label":"New York"},{"code":44,"label":"North Carolina"},{"code":45,"label":"North Dakota"},{"code":47,"label":"Ohio"},{"code":48,"label":"Oklahoma"},{"code":49,"label":"Oregon"},{"code":51,"label":"Pennsylvania"},{"code":53,"label":"Rhode Island"},{"code":54,"label":"South Carolina"},{"code":55,"label":"South Dakota"},{"code":56,"label":"Tennessee"},{"code":57,"label":"Texas"},{"code":58,"label":"Utah"},{"code":59,"label":"Vermont"},{"code":61,"label":"Virginia"},{"code":62,"label":"Washington"},{"code":63,"label":"West Virginia"},{"code":64,"label":"Wisconsin"},{"code":65,"label":"Wyoming"}]}]; allowedCountries.forEach(country => { const optValue = country.code; const optLabel = country.label; if (!optValue) { return; } optionsList.insertAdjacentHTML( 'beforeend', `
  • ${optLabel}
  • ` ); }); // Phone Country dropdown element const countryWrapper = wrapField(countryPhoneEl, {custom_classes: ['col-span-1', 'group', 'relative']}, false); countryWrapper.appendChild(generateBackDrop()); countryWrapper.appendChild(valueWrapper); countryWrapper.appendChild(optionsList); // Phone text field element attribute.custom_classes ? attribute.custom_classes.push('col-span-3') : attribute['custom_classes'] = ['col-span-3']; const phoneWrapper = wrapField(phoneFieldEl, attribute, false); const phoneSection = document.createElement('div'); phoneSection.className = 'relative grid grid-cols-4 gap-x-3 col-span-2'; phoneSection.appendChild( generateLabel(attribute.code, attribute.label, false, attribute.is_required) ); phoneSection.appendChild(countryWrapper); phoneSection.appendChild(phoneWrapper); return phoneSection; }
    { selectedCountry = $event.detail.address && 'country_id' in $event.detail.address && $event.detail.address.country_id ? $event.detail.address.country_id : selectedCountry; addressData.country_name = $event.detail.address && 'country_name' in $event.detail.address && $event.detail.address.country_name ? $event.detail.address.country_name : ''; countrySearch = addressData.country_name; updateStateRequired(); setRegionsByCountry(); sanitizeFormData($event.detail.address); checkIsEdit($event.detail); checkIsFirstAddress($event.detail); initFormValidation(); });" @private-content-loaded.window="initCustomerCountry($event.detail.data)" @close-address-form.window="closeForm()">
    P/Kaufmann Contract Bernard on Material Bank (2024)
    Top Articles
    Latest Posts
    Article information

    Author: Dong Thiel

    Last Updated:

    Views: 5800

    Rating: 4.9 / 5 (59 voted)

    Reviews: 90% of readers found this page helpful

    Author information

    Name: Dong Thiel

    Birthday: 2001-07-14

    Address: 2865 Kasha Unions, West Corrinne, AK 05708-1071

    Phone: +3512198379449

    Job: Design Planner

    Hobby: Graffiti, Foreign language learning, Gambling, Metalworking, Rowing, Sculling, Sewing

    Introduction: My name is Dong Thiel, I am a brainy, happy, tasty, lively, splendid, talented, cooperative person who loves writing and wants to share my knowledge and understanding with you.