Spring ’26 Edition: Five apps that show what Catalog API and UCP make possible
(()=>{"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function t(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.type===u).map(e=>s(e.value)).filter(Boolean);if(!o.length)return;const c=l(p=1===o.length?o[0].split(" "):o)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(p)||r(p)||n(),f=c[0],m=i(c).slice(1);var p;return function(n){for(var r=1;r0?{last_name:m.join(" ")}:{})}function y(e){var t;return null===(t=e.find(e=>e.type===a))||void 0===t?void 0:t.value}function v(e){var t;return null===(t=e.find(e=>e.type===o))||void 0===t?void 0:t.value}globalThis.document.addEventListener("om.Analytics.track",e=>{let t=e.detail;if("conversion"===t.Analytics.type){var i,d,g,b;const e=(null===(i=globalThis._googlesitekit)||void 0===i?void 0:i.gtagUserData)&&null!==(d=t.Campaign)&&void 0!==d&&d.Form?function(e){if(!e||!e.inputs)return;const t=Array.isArray(e.inputs)?e.inputs:Object.values(e.inputs);return t.length?function(e){const t=[["address",p(e)],["email",y(e)],["phone_number",v(e)]].filter(e=>{return(t=e,i=2,l(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,l,a,o=[],u=!0,c=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=l.call(n)).done)&&(o.push(r.value),o.length!==t);u=!0);}catch(e){c=!0,i=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return o}}(t,i)||r(t,i)||n())[1];var t,i});if(0!==t.length)return Object.fromEntries(t)}(t.map(e=>{var t;if("hidden"===e.type)return null;const n=e.id?null===(t=document.querySelector("label[for='".concat(e.id,"']")))||void 0===t?void 0:t.textContent:e.placeholder||"";return function(e){let t=e||{},n=t.type,r=t.name,i=t.value,l=t.label;switch(n=s(n),r=s(r),i=s(i),l=function(e){return e&&"string"==typeof e?e.trim().toLowerCase().replace(/\s*\*+\s*$/,"").replace(/\s*\(required\)\s*$/i,"").replace(/\s*:\s*$/,"").trim():""}(l),n){case"email":return{type:a,value:f(i)};case"tel":return{type:o,value:m(i)}}return function(e){if(!e)return!1;const t=f(e);return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}(i)||c[a].includes(r)||c[a].includes(l)?{type:a,value:f(i)}:c[o].includes(r)||c[o].includes(l)?{type:o,value:m(i)}:c[u].includes(r)||c[u].includes(l)?{type:u,value:s(i)}:function(e){if(!e)return!1;if(!function(e){const t=e.replace(/\D/g,"");return!(t.length<7||t.length
Sociable: Reddit study highlights user purchase behavior
(()=>{"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function t(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.type===u).map(e=>s(e.value)).filter(Boolean);if(!o.length)return;const c=l(p=1===o.length?o[0].split(" "):o)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(p)||r(p)||n(),f=c[0],m=i(c).slice(1);var p;return function(n){for(var r=1;r0?{last_name:m.join(" ")}:{})}function y(e){var t;return null===(t=e.find(e=>e.type===a))||void 0===t?void 0:t.value}function v(e){var t;return null===(t=e.find(e=>e.type===o))||void 0===t?void 0:t.value}globalThis.document.addEventListener("om.Analytics.track",e=>{let t=e.detail;if("conversion"===t.Analytics.type){var i,d,g,b;const e=(null===(i=globalThis._googlesitekit)||void 0===i?void 0:i.gtagUserData)&&null!==(d=t.Campaign)&&void 0!==d&&d.Form?function(e){if(!e||!e.inputs)return;const t=Array.isArray(e.inputs)?e.inputs:Object.values(e.inputs);return t.length?function(e){const t=[["address",p(e)],["email",y(e)],["phone_number",v(e)]].filter(e=>{return(t=e,i=2,l(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,l,a,o=[],u=!0,c=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=l.call(n)).done)&&(o.push(r.value),o.length!==t);u=!0);}catch(e){c=!0,i=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return o}}(t,i)||r(t,i)||n())[1];var t,i});if(0!==t.length)return Object.fromEntries(t)}(t.map(e=>{var t;if("hidden"===e.type)return null;const n=e.id?null===(t=document.querySelector("label[for='".concat(e.id,"']")))||void 0===t?void 0:t.textContent:e.placeholder||"";return function(e){let t=e||{},n=t.type,r=t.name,i=t.value,l=t.label;switch(n=s(n),r=s(r),i=s(i),l=function(e){return e&&"string"==typeof e?e.trim().toLowerCase().replace(/\s*\*+\s*$/,"").replace(/\s*\(required\)\s*$/i,"").replace(/\s*:\s*$/,"").trim():""}(l),n){case"email":return{type:a,value:f(i)};case"tel":return{type:o,value:m(i)}}return function(e){if(!e)return!1;const t=f(e);return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}(i)||c[a].includes(r)||c[a].includes(l)?{type:a,value:f(i)}:c[o].includes(r)||c[o].includes(l)?{type:o,value:m(i)}:c[u].includes(r)||c[u].includes(l)?{type:u,value:s(i)}:function(e){if(!e)return!1;if(!function(e){const t=e.replace(/\D/g,"");return!(t.length<7||t.length