### Schema Markup for Manifestly Slack Startup Guide Source: https://help.manifest.ly/knowledge-base/manifestly-checklists-slack-startup-guide/ This JSON-LD schema markup provides structured data about the Manifestly Slack Startup Guide webpage. It includes details about the website, organization, breadcrumbs, author, and page content, aiding search engines in understanding the page's context and information. ```json { "@context": "https:\/\/schema.org", "@graph": [ { "@type": "WebSite", "@id": "https:\/\/help.manifest.ly\/#website", "url": "https:\/\/help.manifest.ly\/", "name": "Manifestly Checklists Help Center", "description": "Never Miss a Thing", "inLanguage": "en-US", "publisher": { "@id": "https:\/\/help.manifest.ly\/#organization" } }, { "@type": "Organization", "@id": "https:\/\/help.manifest.ly\/#organization", "name": "Manifestly Checklists Help Center", "url": "https:\/\/help.manifest.ly\/" }, { "@type": "BreadcrumbList", "@id": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/#breadcrumblist", "itemListElement": [ { "@type": "ListItem", "@id": "https:\/\/help.manifest.ly\/#listItem", "position": 1, "item": { "@type": "WebPage", "@id": "https:\/\/help.manifest.ly\/", "name": "Home", "description": "Never Miss a Thing", "url": "https:\/\/help.manifest.ly\/" }, "nextItem": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/#listItem" }, { "@type": "ListItem", "@id": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/#listItem", "position": 2, "item": { "@type": "WebPage", "@id": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/", "name": "Manifestly - Slack Startup Guide", "description": "The Manifestly Slack integration lets you create complex workflows and then use those workflows right within the Slack interface. The primary features in Slack are where you work on checklist runs and manage your users. The rest of the Manifestly features are in the web app and this is where we'll begin this startup guide. [\u2026]", "url": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/" }, "previousItem": "https:\/\/help.manifest.ly\/#listItem" } ] }, { "@type": "Person", "@id": "https:\/\/help.manifest.ly\/author\/kb_88bh3t\/#author", "url": "https:\/\/help.manifest.ly\/author\/kb_88bh3t\/", "name": "kb_88bh3t", "image": { "@type": "ImageObject", "@id": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/#authorImage", "url": "https:\/\/secure.gravatar.com\/avatar\/86d38bd138dff526b8ba5490e12279282ce7fddb43b49cbfd938b7a354be95b0?s=96&d=mm&r=g", "width": 96, "height": 96, "caption": "kb_88bh3t" } }, { "@type": "WebPage", "@id": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/#webpage", "url": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/", "name": "Manifestly \u2013 Slack Startup Guide - Manifestly Checklists Help Center", "description": "The Manifestly Slack integration lets you create complex workflows and then use those workflows right within the Slack interface. The primary features in Slack are where you work on checklist runs and manage your users. The rest of the Manifestly features are in the web app and this is where we'll begin this startup guide. [\u2026]", "inLanguage": "en-US", "isPartOf": { "@id": "https:\/\/help.manifest.ly\/#website" }, "breadcrumb": { "@id": "https:\/\/help.manifest.ly\/knowledge-base\/manifestly-checklists-slack-startup-guide\/#breadcrumblist" }, "author": "https:\/\/help.manifest.ly\/author\/kb_88bh3t\/#author", "creator": "https:\/\/help.manifest.ly\/author\/kb_88bh3t\/#author", "datePublished": "2021-10-01T13:44:15+00:00", "dateModified": "2025-03-06T01:39:08+00:00" } ] } ``` -------------------------------- ### Vimeo Global Configuration and A/B Testing Setup Source: https://vimeo.com/manifestlychecklists/albums This section initializes global configurations by extending the `window` object with Vimeo-specific settings, including routing, autocomplete, and cart details. It also sets up A/B testing configurations, defining experiments, their parameters, states, and publication details for various features like search activations, payment method translation, subscription cancellation, and video analytics upsells. ```javascript window = _extend(window, { "vimeo_esi": { "config": { "route": "Vimeo\\Controller\\ProfileController:albums", "controller": "Vimeo\\Controller\\ProfileController", "autocomplete_enabled": true, "onsite_referrer": false } }, "ablincoln_config": [], "vimeo": { "config": { "cart": { "cart_content": { "stock": { "store": "stock", "version": 1, "quantities": [], "items": [], "attributes": [], "currency": "USD", "items_sorted_by_index": [], "items_count": 0 } } } } } }); var ablincoln_config = ablincoln_config || {}; ablincoln_config.tests = { "JS.search.ActivationsFromSearch": { "id": 1257, "name": "JS.search.ActivationsFromSearch", "buckets": 1000, "input": "vuid", "url": "\/search", "experiments": [ { "id": 3675, "name": "activations from search", "buckets": 1000, "state": 3, "published_on": "2025-05-30 10:07:15", "paused_on": "0000-00-00 00:00:00", "stopped_on": "2025-07-21 11:26:35", "parameters": [ { "id": 5840, "name": "signInFlow", "choice": "variantA", "weight": 1 }, { "id": 5841, "name": "signInFlow", "choice": "variantB", "weight": 1 }, { "id": 5842, "name": "signInFlow", "choice": "control", "weight": 1 } ], "segments": [] }, { "id": 3703, "name": "release variant A", "buckets": 1000, "state": 1, "published_on": "2025-07-21 11:26:45", "paused_on": "0000-00-00 00:00:00", "stopped_on": "0000-00-00 00:00:00", "parameters": [ { "id": 5880, "name": "signInFlow", "choice": "variantA", "weight": 1 } ], "segments": [] } ] }, "JS.PaymentMethodFormContainer.ZuoraDynamicTranslation": { "id": 1255, "name": "JS.PaymentMethodFormContainer.ZuoraDynamicTranslation", "buckets": 1000, "input": "cuid", "url": "multiple urls", "experiments": [ { "id": 3657, "name": "Translate Zuora iframe based on user locale", "buckets": 0, "state": 2, "published_on": "2025-04-25 11:13:44", "paused_on": "2025-06-04 10:05:20", "stopped_on": "0000-00-00 00:00:00", "parameters": [ { "id": 5813, "name": "send_zuora_locale", "choice": "control", "weight": 0 }, { "id": 5814, "name": "send_zuora_locale", "choice": "variant", "weight": 1 } ], "segments": [] }, { "id": 3690, "name": "Translate Zuora iframe based on user locale #2", "buckets": 1000, "state": 1, "published_on": "2025-06-04 11:10:37", "paused_on": "0000-00-00 00:00:00", "stopped_on": "0000-00-00 00:00:00", "parameters": [ { "id": 5859, "name": "send_zuora_locale", "choice": "control", "weight": 0 }, { "id": 5860, "name": "send_zuora_locale", "choice": "variant", "weight": 1 } ], "segments": [] } ] }, "JS.Billing.CancelSubscriptionTest": { "id": 1243, "name": "JS.Billing.CancelSubscriptionTest", "buckets": 1000, "input": "cuid", "url": "\/manage\/team\/billing", "experiments": [ { "id": 3613, "name": "Cancel Subscription Test", "buckets": 1000, "state": 3, "published_on": "2025-04-09 13:21:46", "paused_on": "0000-00-00 00:00:00", "stopped_on": "2025-05-20 11:14:50", "parameters": [ { "id": 5758, "name": "new_cancellation_flow", "choice": "control", "weight": 1 }, { "id": 5759, "name": "new_cancellation_flow", "choice": "variant", "weight": 1 } ], "segments": [] }, { "id": 3680, "name": "* Cancel Subscription Test", "buckets": 1000, "state": 1, "published_on": "2025-05-20 11:14:57", "paused_on": "0000-00-00 00:00:00", "stopped_on": "0000-00-00 00:00:00", "parameters": [ { "id": 5850, "name": "new_cancellation_flow", "choice": "variant", "weight": 1 } ], "segments": [] } ] }, "JS.VideoAnalytics.ExportFreeUpsell": { "id": 1241, "name": "JS.VideoAnalytics.ExportFreeUpsell", "buckets": 1000, "input": "cuid", "url": "https:\/\/vimeo.com\/analytics\/:report", "experiments": [ { "id": 3611, "name": "Show Upsell Button", "buckets": 1, "state": 3, "published_on": "2025-04-08 12:30:28", "paused_on": "0000-00-00 00:00:00", "stopped_on": "2025-04-08 12:31:48", "parameters": [ { "id": 5755, "name": "show_upsell_button", "choice": "control", "weight": 1 }, { "id": 5756, "name": "show_upsell_button", "choice": "variant", "weight": 1 } ], "segments": [] }, { "id": 3618, "name": "* Show Upsell Button", "buckets": 1000, "state": 1, "published_on": "2025-04-08 12:34:41", "paused_on": "0000-00-00 00:00:00", "stopped_on": "0000-00-00 00:00:00", "parameters": [ { "id": 5764, "name": "show_upsell_button", "choice": "control", "weight": 1 }, { "id": 5765, "name": "show_upsell_button", "choice": "variant", "weight": 1 } ], "segments": [] } ] } }; ``` -------------------------------- ### Global Event Emitter Setup Source: https://www.manifest.ly/latest_features Initializes a global event emitter (`globalEE`) and makes it accessible. This emitter is used for broadcasting events across different parts of the application. ```javascript 646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(836).ee.get("handle");function i(e,t,r,i,a){a?(a.buffer([e],i),a.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},606:(e,t,r)=>{"use strict";r.d(t,{i:()=>a});var n=r(908);a.on=o;var i=a.handlers={};function a(e,t,r,a){o(a||n.d,i,e,t,r)}function o(e,t,r,i,a){a||(a="feature"),e||(e=n.d);var o=t[a]=t[a]||{};(o[r]=o[r]||[]).push([e,i])}},878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function a(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>a,jT:()=>n,sp:()=>i})},607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(566).bz)()},566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>o});var n=r(154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function a(e,t){return e?15&e[t]:16*Math.random()|0}function o(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?a(t,r++).toString(16):"y"===e?(3&a()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const o=[] ;for(var c=0;c{"use strict";r.d(t,{BB:()=>o,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>a});const n="NRBA",i="SESSION",a=144e5,o=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";r.d(t,{R:()=>i});var n=r(241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({agentIdentifier:null,drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},701:(e,t,r)=>{"use strict";r.d(t,{B:()=>a,t:()=>o});var n=r(241);const i=new Set,a={};function o(e,t){const r=t.agentIdentifier;a[r]??={},e&&"object"==typeof e&&(i.has(r)||(t.ee.emit("rumresp",[e]),a[r]=e,i.add(r),(0,n.W)({agentIdentifier:r,loaded:!0,drained:!0,type:"lifecycle",name:"load",feature:void 0,data:e})))}},990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout(((()=>{e.apply(this,r)}),t)))}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}},289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>a,Qr:()=>s,sB:()=>o});var n=r(878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(i())return e();(0,n.sp)("load",e,t)}function o(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}function s(e){if(i())return e();(0,n.sp)("popstate",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>a,US:()=>u,Zm:()=>o,bQ:()=>c,dV:()=>s,pV:()=>d});var n=r(154),i=r(863);const a={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function o(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=o();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=o();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e,t){o()[e]=t}function d(){return function(){let e=o();const t=e.info||{};e.info={beacon:a.beacon,errorBeacon:a.errorBeacon,...t}}(),function(){let e=o();const t=e.init||{};e.init={...t}}(),s(),function(){let e=o();const t=e.loader_config||{};e.loader_config={...t}}(),o()}},843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function() ``` -------------------------------- ### Google Tag Manager Initialization Source: https://www.manifest.ly/pricing Loads the Google Tag Manager script asynchronously. This snippet ensures that the dataLayer is available and pushes an event to mark the start of GTM's JavaScript execution. ```javascript (function(w,d,s,l,i){ w[l]=w[l]||[]; w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true; j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WTDG82BM'); ``` -------------------------------- ### Manifestly Custom Webhook JSON Payload Example Source: https://help.manifest.ly/knowledge-base/using-checklist-webhooks-for-automations/ An example of a custom JSON payload that can be configured for Manifestly webhooks. This allows users to tailor the data sent to external systems, enabling integrations with platforms like Slack or MS Teams using content variables. ```json { "text": "Hello, world. This is a message from Manifestly. 🙂" } ``` -------------------------------- ### New Relic Browser Agent Proxy Asset URL Normalization Source: https://www.manifest.ly/signup This JavaScript function (`x`) normalizes a given URL for proxy assets. It checks if the URL starts with 'http' and appends a trailing slash if missing. If the URL does not start with 'http', it prepends 'https://' to ensure a valid protocol, then updates the global `r.p` property, likely the public path for asset loading. ```JavaScript const x = e => { const t = e.startsWith("http"); e += "/"; r.p = t ? e : "https://" + e }; ``` -------------------------------- ### ShortPixel Constants and Actions Configuration Source: https://help.manifest.ly/knowledge-base/understanding-pricing-with-the-manifestly-slack-integration/ Defines constants and actions related to the ShortPixel image optimization service. Includes status codes, plugin URLs, API activation status, and AJAX URLs. ```javascript var ShortPixelConstants = [ { "STATUS_SUCCESS": 1, "STATUS_EMPTY_QUEUE": 0, "STATUS_ERROR": -1, "STATUS_FAIL": -2, "STATUS_QUOTA_EXCEEDED": -3, "STATUS_SKIP": -4, "STATUS_NO_KEY": -6, "STATUS_RETRY": -7, "STATUS_QUEUE_FULL": -404, "STATUS_MAINTENANCE": -500, "STATUS_SEARCHING": -8, "WP_PLUGIN_URL": "https:\/\/help.manifest.ly\/wp-content\/plugins\/shortpixel-image-optimiser", "WP_ADMIN_URL": "https:\/\/help.manifest.ly\/wp-admin\/", "API_IS_ACTIVE": true, "DEFAULT_COMPRESSION": 1, "MEDIA_ALERT": "todo", "FRONT_BOOTSTRAP": 1, "AJAX_URL": "https:\/\/help.manifest.ly\/wp-admin\/admin-ajax.php", "BULK_SECRET": false } ]; var ShortPixelActions = { "nonce_check_quota": "9cb759fe0e" }; ``` -------------------------------- ### Preload All Scripts Source: https://help.manifest.ly/knowledge-base/ms-teams-getting-started-with-manifestly/ Prepares resource hints for all scripts categorized as normal, defer, or async, initiating a preload strategy for them. ```javascript _preloadAllScripts(){ this._batchInjectResourceHints([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload") } ``` -------------------------------- ### Performance Timing Utility Source: https://www.manifest.ly/signup Provides a utility function to get the current performance timestamp in milliseconds. ```javascript function n(){return Math.floor(performance.now())} ``` -------------------------------- ### RocketLazyLoadScripts Initialization Source: https://help.manifest.ly/knowledge-base/gdpr/ The main execution call that starts the RocketLazyLoadScripts functionality. This line instantiates the class and begins its operation. ```javascript RocketLazyLoadScripts.run(); ``` -------------------------------- ### ShortPixel Optimization Settings Source: https://help.manifest.ly/knowledge-base/ms-teams-getting-started-with-manifestly/ Configuration object for ShortPixel image optimization plugin, including options for optimizing with SP, re-optimizing lossy/glossy/lossless images, restoring originals, and user interface messages for various optimization states and actions. ```json var _spTr = { "optimizeWithSP": "Optimize with ShortPixel", "redoLossy": "Re-optimize Lossy", "redoGlossy": "Re-optimize Glossy", "redoLossless": "Re-optimize Lossless", "restoreOriginal": "Restore Originals", "changeMLToListMode": "In order to access the ShortPixel Optimization actions and info, please change to {0}List View{1}List View{2}Dismiss{3}", "alertOnlyAppliesToNewImages": "This type of optimization will apply to new uploaded images. Images that were already processed will not be re-optimized unless you restart the bulk process.", "areYouSureStopOptimizing": "Are you sure you want to stop optimizing the folder {0}?", "reducedBy": "Reduced by", "bonusProcessing": "Bonus processing", "plusXthumbsOpt": "+{0} thumbnails optimized", "plusXretinasOpt": "+{0} Retina images optimized", "optXThumbs": "Optimize {0} thumbnails", "reOptimizeAs": "Reoptimize {0} as", "restoreBackup": "Restore backup" }; ``` -------------------------------- ### Injecting Resource Hints (Preload, Preconnect) Source: https://help.manifest.ly/ A method to batch inject resource hints like 'preload' and 'preconnect' into the document's head, optimizing resource loading by providing hints to the browser. ```javascript _batchInjectResourceHints(e,t){var n=document.createDocumentFragment();e.forEach((e=>{if(e.src){const i=document.createElement("link");i.href=e.src,i.rel=t,"preconnect"!==t&&(i.as="script"),e.getAttribute&&"module"===e.getAttribute("data-rocket-type")&&(i.crossOrigin=!0),e.crossOrigin&&(i.crossOrigin=e.crossOrigin),n.appendChild(i)}})),document.head.appendChild(n)} ``` -------------------------------- ### JS.TrustandSafety.GIPMigration Configuration Source: https://vimeo.com/manifestlychecklists/albums Configuration for the JS.TrustandSafety.GIPMigration module, detailing experiment setup for GIP migration. It specifies the input type and the URL for join-related operations. ```JS { "id": 1129, "name": "JS.TrustandSafety.GIPMigration", "buckets": 1000, "input": "vuid", "url": "\/join", "experiments": [ { "id": 3305, "name": "GIP Migration", "buckets": 100, "state": 2, "published_on": "2024-07-19 10:46:16", "paused_on": "2024-07-19 11:34:27", "stopped_on": "0000-00-00 00:00:00", "parameters": [ { "id": 5326, "name": "in_GIP", "choice": "variant", "weight": 0 }, { "id": 5327, "name": "in_GIP", "choice": "control", "weight": 1 } ], "segments": [] } ] } ``` -------------------------------- ### JavaScript Player Manager Initialization Source: https://vimeo.com/manifestlychecklists/albums Initializes the PlayerManager by running it with provided player asset URLs and then dispatches ready signals, assuming PlayerManager is globally available. ```javascript if (typeof playerAssetUrls !== 'undefined') { PlayerManager.run(playerAssetUrls); } ``` -------------------------------- ### Lazy Load Initialization and Event Handling Source: https://help.manifest.ly/knowledge-base/understanding-pricing-with-the-manifestly-slack-integration/ Configures lazy loading for images and iframes using specified selectors and options. Includes a MutationObserver to update the lazy loader when new content is added to the DOM. ```javascript window.lazyLoadOptions = { elements_selector: "img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, callback_loaded: function(element) { if (element.tagName === "IFRAME" && element.dataset.rocketLazyload == "fitvidscompatible") { if (element.classList.contains("lazyloaded")) { if (typeof window.jQuery != "undefined") { if (jQuery.fn.fitVids) { jQuery(element).parent().fitVids(); } } } } } }; window.addEventListener('LazyLoad::Initialized', function(e) { var lazyLoadInstance = e.detail.instance; if (window.MutationObserver) { var observer = new MutationObserver(function(mutations) { var image_count = 0; var iframe_count = 0; var rocketlazy_count = 0; mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { if (typeof mutation.addedNodes[i].getElementsByTagName !== 'function') { continue; } if (typeof mutation.addedNodes[i].getElementsByClassName !== 'function') { continue; } images = mutation.addedNodes[i].getElementsByTagName('img'); is_image = mutation.addedNodes[i].tagName === "IMG"; iframes = mutation.addedNodes[i].getElementsByTagName('iframe'); is_iframe = mutation.addedNodes[i].tagName === "IFRAME"; rocket_lazy = mutation.addedNodes[i].getElementsByClassName('rocket-lazyload'); image_count += images.length; iframe_count += iframes.length; rocketlazy_count += rocket_lazy.length; if (is_image) { image_count += 1; } if (is_iframe) { iframe_count += 1; } } }); if (image_count > 0 || iframe_count > 0 || rocketlazy_count > 0) { lazyLoadInstance.update(); } }); var b = document.getElementsByTagName("body")[0]; var config = { childList: !0, subtree: !0 }; observer.observe(b, config); } }, !1); ``` -------------------------------- ### Session Constants and States Source: https://www.manifest.ly/signup Defines constants and states related to session management, including session names, IDs, and various session lifecycle events like STARTED, PAUSE, RESET, RESUME, and UPDATE. ```javascript const n="NRBA",i="SESSION",a=144e5,o=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2} ``` -------------------------------- ### RocketLazyLoadScripts: run Method Source: https://help.manifest.ly/knowledge-base/gdpr/ The static entry point for initializing the RocketLazyLoadScripts. It creates an instance of the class and calls its internal methods to set up the lazy loading and event management features. ```javascript static run(){ const e=new RocketLazyLoadScripts; e._addUserInteractionListener(e) } ``` -------------------------------- ### Global Configuration and Initialization Source: https://www.manifest.ly/latest_features Manages global configurations, including beacon endpoints, feature flags, and agent initialization. It sets up the New Relic NREUM object and its properties for the browser agent. ```javascript r.d(t,{NT:()=>a,US:()=>u,Zm:()=>o,bQ:()=>c,dV:()=>s,pV:()=>d});var n=r(154),i=r(863);const a={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function o(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=o();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=o();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e,t){o()[e]=t}function d(){return function(){let e=o();const t=e.info||{};e.info={beacon:a.beacon,errorBeacon:a.errorBeacon,...t}}(),function(){let e=o();const t=e.init||{};e.init={...t}}(),s(),function(){let e=o();const t=e.loader_config||{};e.loader_config={...t}}(),o()}} ``` -------------------------------- ### Lazy Loading Initialization and Options Source: https://help.manifest.ly/knowledge-base/using-checklist-webhooks-for-automations/ Configures the lazy loading library with selectors for images and iframes, data attributes for sources, CSS classes for loading states, and a threshold for activation. Includes a callback for when images are loaded. ```javascript window.lazyLoadOptions = { elements_selector: "img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, callback_loaded: function(element) { if (element.tagName === "IFRAME" && element.dataset.rocketLazyload === "fitvidscompatible") { if (element.classList.contains("lazyloaded")) { if (typeof window.jQuery !== "undefined") { if (jQuery.fn.fitVids) { jQuery(element).parent().fitVids(); } } } } } }; ``` -------------------------------- ### kite_render Experiment Configurations Source: https://vimeo.com/manifestlychecklists/albums Multiple configurations for 'kite_render' experiments, varying by the number of asterisks in their names. These entries detail bucket counts, states, publication dates, and parameter weights for 'kite' choices. ```APIDOC Experiment Configurations for kite_render: 1. **Name**: * * kite_render * **ID**: 3389 * **Buckets**: 160 * **State**: 3 (Published) * **Published On**: 2024-06-23 05:42:33 * **Paused On**: 2024-07-03 09:01:59 * **Stopped On**: 2024-07-04 07:42:37 * **Parameters**: * kite (control, weight: 1) * kite (variant, weight: 1) 2. **Name**: * * * kite_render * **ID**: 3401 * **Buckets**: 400 * **State**: 3 (Published) * **Published On**: 2024-07-03 04:59:36 * **Paused On**: 2024-07-03 09:02:04 * **Stopped On**: 2024-07-04 07:42:43 * **Parameters**: * kite (control, weight: 1) * kite (variant, weight: 1) 3. **Name**: * * * * kite_render * **ID**: 3402 * **Buckets**: 600 * **State**: 3 (Published) * **Published On**: 2024-07-07 03:34:49 * **Paused On**: 0000-00-00 00:00:00 * **Stopped On**: 2024-07-08 10:30:58 * **Parameters**: * kite (control, weight: 1) * kite (variant, weight: 1) 4. **Name**: * * * * * kite_render * **ID**: 3405 * **Buckets**: 1000 * **State**: 3 (Published) * **Published On**: 2024-07-10 08:30:19 * **Paused On**: 0000-00-00 00:00:00 * **Stopped On**: 2024-07-16 06:55:43 * **Parameters**: * kite (control, weight: 1) * kite (variant, weight: 1) 5. **Name**: * * * * * * kite_render * **ID**: 3409 * **Buckets**: 1000 * **State**: 1 (Active) * **Published On**: 2024-07-16 06:56:00 * **Paused On**: 0000-00-00 00:00:00 * **Stopped On**: 0000-00-00 00:00:00 * **Parameters**: * kite (control, weight: 0) * kite (variant, weight: 1) ``` -------------------------------- ### DOM Ready and Event Handling Utilities Source: https://www.manifest.ly/signup Utilities for checking document readiness and attaching event listeners for 'load' and 'DOMContentLoaded' events. Also includes handling for 'popstate' events. ```javascript function i(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(i())return e();(0,n.sp)("load",e,t)}function o(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}function s(e){if(i())return e();(0,n.sp)("popstate",e)} ``` -------------------------------- ### Manifestly API Documentation Source: https://help.manifest.ly/knowledge-base/ms-teams-getting-started-with-manifestly/ Provides access to Manifestly's full and open API, allowing programmatic interaction with the platform's data and functionality. This includes managing runs, tasks, users, and more. ```APIDOC Manifestly API Overview: Manifestly offers a comprehensive RESTful API that is included in all subscriptions, enabling developers to integrate Manifestly with other systems and automate workflows. Key Features: - Full CRUD operations for runs, tasks, assignments, and users. - Authentication via API keys. - Data export capabilities. Documentation Link: https://help.manifest.ly/knowledge-base/the-manifestly-api-2/ Example Use Cases: - Automatically create tasks based on external events. - Sync Manifestly data with CRM or project management tools. - Build custom dashboards or reports using Manifestly data. Related Concepts: - Webhooks: For real-time event notifications from Manifestly to external systems. ``` -------------------------------- ### Google Tag Manager Initialization Source: https://www.manifest.ly/use-cases/ Loads the Google Tag Manager script asynchronously. This snippet ensures that the dataLayer is available and pushes an event to it upon script loading, essential for tracking and analytics. ```javascript (function(w,d,s,l,i){ w[l]=w[l]||[]; w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true; j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WTDG82BM'); ```