1import { _ as _export_sfc, J as resolveDirective, o as openBlock, c as createElementBlock, a as createVNode, w as withCtx, q as withDirectives, b as createBaseVNode, ab as PageRouteSymbol, f as __nuxt_component_0$1, v as vShow, e as defineNuxtComponent, M as useOrdantStore, t as toDisplayString, d as createCommentVNode, i as withModifiers, r as resolveComponent, F as Fragment, g as renderList, h as createBlock, z as normalizeStyle, n as normalizeClass, af as TransitionGroup, j as createTextVNode, l as SFButton, ag as isClient, k as SFInput, a6 as createStaticVNode, Q as ref, u as unref, ah as applyCustomerCSS, ai as applyCustomJSPlugins, aj as findDeep, a7 as useRoute, G as useNuxtApp, H as useAsyncData, ak as stripBodyMainFromHtml, a1 as watchEffect, ad as useRuntimeConfig, a9 as useHead, al as buildCanonicalUrl, am as jsonLdScript, an as buildArticleJsonLd, ao as buildSocialMeta, I as computed, ap as pickPageSeo, aq as absoluteImageUrl, ar as displayImage, as as findDeepAll, V as watch } from "#entry"; 2import { B as BlogGalleryO1Card, r as renderHtml, a as attachClickListener, b as renderStyles, _ as __nuxt_component_2 } from "./BQb3YbUI.js"; 3import { _ as __nuxt_component_1$1 } from "./BqL3v7_s.js"; 4import { P as PageHeader } from "./Bm4XbcE6.js"; 5import "./BQDAIf8x.js"; 6import "./GBa0xkkE.js"; 7import "./WIp78_aO.js"; 8const _sfc_main$b = defineNuxtComponent( 9 { 10 name: "PageHeader", 11 props: { 12 title: { 13 type: String 14 }, 15 hideSubtitle: { 16 type: Boolean, 17 default: false 18 }, 19 subtitle: { 20 type: String, 21 default: null 22 }, 23 image: { 24 type: String, 25 default: null 26 } 27 }, 28 data() { 29 return { 30 ordantStore: useOrdantStore() 31 }; 32 }, 33 computed: { 34 computedImage() { 35 return this.image ? this.$displayImage(this.image) : ""; 36 } 37 } 38 }, 39 "$NSw5sS9cgD" 40 /* nuxt-injected */ 41); 42const _hoisted_1$a = { class: "" }; 43const _hoisted_2$a = { class: "text-center" }; 44const _hoisted_3$9 = { class: "grid justify-items-center gap-6 pt-12 pb-4 text-center" }; 45const _hoisted_4$9 = { class: "page-header o-w-full-screen bg-brand-5 text-center" }; 46function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) { 47 const _component_ClientOnly = __nuxt_component_0$1; 48 const _directive_lazy = resolveDirective("lazy"); 49 return openBlock(), createElementBlock("div", _hoisted_1$a, [ 50 createVNode(_component_ClientOnly, null, { 51 default: withCtx(() => [ 52 withDirectives((openBlock(), createElementBlock("div", _hoisted_2$a, [ 53 createBaseVNode("div", _hoisted_3$9, [ 54 _cache[2] || (_cache[2] = createBaseVNode("h1", { class: "!text-center" }, "Print Business, Simplified", -1)), 55 _cache[3] || (_cache[3] = createBaseVNode("p", { class: "!text-center !text-wrap" }, " Read our recent blogs for tips to effectively manage your print business, no matter what industry youâre in. ", -1)), 56 createBaseVNode("div", { 57 class: "flex w-fit cursor-pointer flex-row items-center justify-center", 58 onClick: _cache[0] || (_cache[0] = ($event) => _ctx.ordantStore.openPopupForm((_ctx._.provides[PageRouteSymbol] || _ctx.$route).name, "Start A Free Trial")) 59 }, [..._cache[1] || (_cache[1] = [ 60 createBaseVNode("a", { class: "ordant-button default" }, " Start a free Trial ", -1), 61 createBaseVNode("i", { class: "fa-solid fa-arrow-right ml-2" }, null, -1) 62 ])]) 63 ]) 64 ])), [ 65 [_directive_lazy, _ctx.computedImage, "background-image"] 66 ]) 67 ]), 68 _: 1 69 }), 70 withDirectives(createBaseVNode("div", _hoisted_4$9, null, 512), [ 71 [vShow, _ctx.isServer] 72 ]) 73 ]); 74} 75const PageHeaderBlog = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$b, [["render", _sfc_render$a]]), { __name: "ElementsPageHeaderBlog" }); 76const _sfc_main$a = defineNuxtComponent( 77 { 78 name: "BlogPreview", 79 props: { 80 blog: { type: Object, default: () => { 81 } } 82 }, 83 computed: { 84 computedThumbnailUrl() { 85 var _a, _b, _c; 86 return ((_a = this.blog) == null ? void 0 : _a.thumbnail) || ((_c = (_b = this.blog) == null ? void 0 : _b.parent_page) == null ? void 0 : _c.thumbnail) || "https://images.unsplash.com/photo-1496128858413-b36217c2ce36?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1679&q=80"; 87 } 88 }, 89 methods: { 90 goToBlog() { 91 var _a, _b, _c; 92 console.log("GOING TO BLOG PAGE"); 93 this.$router.push(`/${((_b = (_a = this.blog) == null ? void 0 : _a.seo) == null ? void 0 : _b.slug) || ((_c = this.blog) == null ? void 0 : _c._id)}`); 94 }, 95 getBlogHref(blog) { 96 var _a; 97 return `/${((_a = blog == null ? void 0 : blog.seo) == null ? void 0 : _a.slug) || (blog == null ? void 0 : blog._id)}`; 98 } 99 } 100 }, 101 "$lu8XwTXdLL" 102 /* nuxt-injected */ 103); 104const _hoisted_1$9 = ["href"]; 105const _hoisted_2$9 = { class: "flex-shrink-0" }; 106const _hoisted_3$8 = ["src"]; 107const _hoisted_4$8 = { class: "flex flex-1 flex-col justify-between bg-white p-6" }; 108const _hoisted_5$7 = { class: "flex-1" }; 109const _hoisted_6$5 = ["href"]; 110const _hoisted_7$4 = { class: "text-xl font-semibold text-gray-900" }; 111const _hoisted_8$2 = { class: "mt-3 text-base text-gray-500" }; 112const _hoisted_9$2 = { class: "mt-6 flex items-center" }; 113const _hoisted_10$2 = { 114 key: 0, 115 class: "flex-shrink-0" 116}; 117const _hoisted_11$2 = { class: "ml-3" }; 118const _hoisted_12$2 = { class: "text-sm font-medium text-gray-900" }; 119const _hoisted_13$1 = { class: "hover:underline" }; 120const _hoisted_14$1 = { class: "flex space-x-1 text-sm text-gray-500" }; 121const _hoisted_15$1 = ["datetime"]; 122function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { 123 var _a, _b, _c, _d, _e, _f, _g, _h, _i; 124 return openBlock(), createElementBlock("a", { 125 class: "flex cursor-pointer flex-col overflow-hidden rounded-lg", 126 href: _ctx.getBlogHref(_ctx.blog), 127 onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.goToBlog && _ctx.goToBlog(...args), ["prevent", "stop"])) 128 }, [ 129 createBaseVNode("div", _hoisted_2$9, [ 130 createBaseVNode("img", { 131 class: "h-48 w-full object-cover", 132 src: _ctx.$displayImage(_ctx.computedThumbnailUrl), 133 alt: "" 134 }, null, 8, _hoisted_3$8) 135 ]), 136 createBaseVNode("div", _hoisted_4$8, [ 137 createBaseVNode("div", _hoisted_5$7, [ 138 createBaseVNode("a", { 139 href: (_a = _ctx.blog) == null ? void 0 : _a.href, 140 class: "mt-2 block" 141 }, [ 142 createBaseVNode("p", _hoisted_7$4, toDisplayString((_b = _ctx.blog) == null ? void 0 : _b.title) + "TT", 1), 143 createBaseVNode("p", _hoisted_8$2, toDisplayString((_c = _ctx.blog) == null ? void 0 : _c.description), 1) 144 ], 8, _hoisted_6$5) 145 ]), 146 createBaseVNode("div", _hoisted_9$2, [ 147 ((_e = (_d = _ctx.blog) == null ? void 0 : _d.author) == null ? void 0 : _e.imageUrl) ? (openBlock(), createElementBlock("div", _hoisted_10$2)) : createCommentVNode("", true), 148 createBaseVNode("div", _hoisted_11$2, [ 149 createBaseVNode("p", _hoisted_12$2, [ 150 createBaseVNode("a", _hoisted_13$1, toDisplayString((_f = _ctx.blog) == null ? void 0 : _f.author), 1) 151 ]), 152 createBaseVNode("div", _hoisted_14$1, [ 153 createBaseVNode("time", { 154 datetime: new Date((_g = _ctx.blog) == null ? void 0 : _g.date) 155 }, toDisplayString((_h = _ctx.blog) == null ? void 0 : _h.date), 9, _hoisted_15$1), 156 _cache[1] || (_cache[1] = createBaseVNode("span", { "aria-hidden": "true" }, "·", -1)), 157 createBaseVNode("span", null, toDisplayString(((_i = _ctx.blog) == null ? void 0 : _i.readingTime) || "5 min") + " read", 1) 158 ]) 159 ]) 160 ]) 161 ]) 162 ], 8, _hoisted_1$9); 163} 164const BlogPreview = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$a, [["render", _sfc_render$9]]), { __name: "ElementsBlogPreview" }); 165const _sfc_main$9 = defineNuxtComponent( 166 { 167 name: "FAQPreview", 168 props: { 169 faq: { type: Object, default: () => { 170 } },
171 type: { type: String, default: "kb" }, 172 pageData: { type: Object, default: () => { 173 } } 174 }, 175 methods: { 176 goToFAQ() { 177 var _a, _b, _c, _d, _e, _f, _g, _h; 178 if (((_a = this.pageData) == null ? void 0 : _a.type) === "page_category") { 179 this.$store.kbStore.currentCategory = this.$cloneDeep(this.pageData); 180 } 181 this.$store.kbStore.currentPage = this.$cloneDeep(this.faq); 182 this.$router.push(`/${this.type}/${((_c = (_b = this.faq) == null ? void 0 : _b.seo) == null ? void 0 : _c.slug) || ((_f = (_e = (_d = this.faq) == null ? void 0 : _d.parent_page) == null ? void 0 : _e.seo) == null ? void 0 : _f.slug) || ((_g = this.faq) == null ? void 0 : _g.link) || ((_h = this.faq) == null ? void 0 : _h._id)}`); 183 }, 184 getFAQHref(faq) { 185 var _a, _b, _c; 186 return `/${this.type}/${((_a = faq == null ? void 0 : faq.seo) == null ? void 0 : _a.slug) || ((_c = (_b = faq == null ? void 0 : faq.parent_page) == null ? void 0 : _b.seo) == null ? void 0 : _c.slug) || (faq == null ? void 0 : faq.link) || (faq == null ? void 0 : faq._id)}`; 187 } 188 }, 189 computed: { 190 publishedDate() { 191 const d = new Date(this.faq.updatedAt); 192 const options = { 193 year: "numeric", 194 month: "long", 195 day: "numeric" 196 }; 197 return new Intl.DateTimeFormat("en-US", options).format(d); 198 } 199 } 200 }, 201 "$eSCWbVaNys" 202 /* nuxt-injected */ 203); 204const _hoisted_1$8 = ["href"]; 205const _hoisted_2$8 = { class: "grid gap-4" }; 206const _hoisted_3$7 = { class: "grid gap-2" }; 207const _hoisted_4$7 = { class: "!text-xs !text-gray-600" }; 208const _hoisted_5$6 = { class: "truncate !text-wrap lg:!text-lg" }; 209function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { 210 var _a; 211 return openBlock(), createElementBlock("a", { 212 href: _ctx.getFAQHref(_ctx.faq), 213 class: "grid h-full place-content-between gap-4 rounded-lg border-1 bg-white border-gray-200 p-4", 214 onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.goToFAQ && _ctx.goToFAQ(...args), ["prevent", "stop"])) 215 }, [ 216 createBaseVNode("div", _hoisted_2$8, [ 217 createBaseVNode("div", _hoisted_3$7, [ 218 createBaseVNode("p", _hoisted_4$7, toDisplayString(_ctx.publishedDate), 1), 219 createBaseVNode("p", _hoisted_5$6, toDisplayString((_a = _ctx.faq) == null ? void 0 : _a.title), 1) 220 ]) 221 ]), 222 _cache[1] || (_cache[1] = createBaseVNode("p", { class: "!font-medium !capitalize !text-teal-500" }, "Read More", -1)) 223 ], 8, _hoisted_1$8); 224} 225const FAQPreview = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__scopeId", "data-v-b3ab51a6"]]), { __name: "ElementsFAQPreview" }); 226const _sfc_main$8 = defineNuxtComponent( 227 { 228 name: "BlogList", 229 components: { 230 SFButton, 231 FAQPreview, 232 BlogPreview, 233 BlogGalleryO1Card 234 }, 235 props: { 236 showTitle: { 237 type: Boolean, 238 default: true 239 }, 240 blogCategories: { 241 type: Array, 242 default: () => [] 243 }, 244 blogs: { 245 type: Array, 246 default: () => [] 247 } 248 }, 249 data() { 250 return { 251 // SSR: show all items; Client: pagination gets activated in mounted() 252 paginationActive: false, 253 itemsToShow: this.blogs.length, 254 itemsPerPage: 8, 255 // Keeps track of how many items were visible before the last "Show More" click 256 lastItemsToShow: this.blogs.length 257 }; 258 }, 259 computed: { 260 BlogPageTitle() { 261 return (this._.provides[PageRouteSymbol] || this.$route).params.pageId ? "Recommended" : "Recent Articles"; 262 }, 263 // Show only a subset on the client if pagination is active 264 displayedBlogs() { 265 return this.paginationActive ? this.blogs.slice(0, Math.max(this.itemsToShow, 12)) : this.blogs; 266 }, 267 computedBlogCategories() { 268 return this.blogCategories.filter((cat) => (cat == null ? void 0 : cat.type) === "page_category"); 269 } 270 }, 271 mounted() { 272 this.paginationActive = true; 273 this.itemsToShow = this.itemsPerPage; 274 this.lastItemsToShow = this.itemsToShow; 275 }, 276 methods: { 277 isClient() { 278 return isClient; 279 }, 280 showMore() { 281 this.lastItemsToShow = this.itemsToShow; 282 this.itemsToShow = Math.min(this.itemsToShow + this.itemsPerPage, this.blogs.length); 283 this.$nextTick(() => { 284 const newItem = document.querySelector(".blog-item.new"); 285 if (newItem) { 286 const scrollToPosition = document.body.scrollTop + 500; 287 document.body.scrollTo({ top: scrollToPosition, behavior: "smooth" }); 288 } 289 }); 290 }, 291 getItemStyle(index) { 292 if (index >= this.lastItemsToShow && index < this.itemsToShow) {
293 const delay = (index - this.lastItemsToShow) * 0.1; 294 return { transitionDelay: `${delay}s` }; 295 } 296 return { transitionDelay: "0s" }; 297 }, 298 isNewItem(index) { 299 return index >= this.lastItemsToShow && index < this.itemsToShow; 300 } 301 } 302 }, 303 "$0COL4AGiMi" 304 /* nuxt-injected */ 305); 306const _hoisted_1$7 = { class: "gap-page grid" }; 307const _hoisted_2$7 = { 308 key: 0, 309 class: "gap-section grid" 310}; 311const _hoisted_3$6 = { key: 0 }; 312const _hoisted_4$6 = { 313 key: 1, 314 class: "text-center" 315}; 316const _hoisted_5$5 = { 317 key: 1, 318 class: "gap-section grid" 319}; 320const _hoisted_6$4 = { key: 0 }; 321const _hoisted_7$3 = { class: "grid grid-cols-[repeat(auto-fit,_minmax(164px,_1fr))] gap-x-8 gap-y-12 lg:grid-cols-[repeat(auto-fit,_minmax(280px,_1fr))]" }; 322function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { 323 var _a, _b, _c, _d, _e, _f, _g; 324 const _component_BlogGalleryO1Card = resolveComponent("BlogGalleryO1Card"); 325 const _component_SFButton = resolveComponent("SFButton"); 326 const _component_FAQPreview = resolveComponent("FAQPreview"); 327 return openBlock(), createElementBlock("div", _hoisted_1$7, [ 328 ((_a = _ctx.blogs) == null ? void 0 : _a.length) ? (openBlock(), createElementBlock("div", _hoisted_2$7, [ 329 _ctx.showTitle ? (openBlock(), createElementBlock("h2", _hoisted_3$6, toDisplayString(_ctx.BlogPageTitle), 1)) : createCommentVNode("", true), 330 createVNode(TransitionGroup, { 331 name: "slide-fade", 332 tag: "div", 333 style: normalizeStyle({ maxWidth: "1440px", width: `calc(100vw - ${((_c = (_b = _ctx.$store.config.getCssSettings) == null ? void 0 : _b.page) == null ? void 0 : _c["padding-left"]) + ((_e = (_d = _ctx.$store.config.getCssSettings) == null ? void 0 : _d.page) == null ? void 0 : _e["padding-right"])}px)` }), 334 class: "grid grid-cols-[repeat(auto-fit,_minmax(164px,_1fr))] gap-x-8 gap-y-12 lg:grid-cols-[repeat(auto-fit,_minmax(280px,_1fr))]" 335 }, { 336 default: withCtx(() => [ 337 (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.displayedBlogs, (blog, index) => { 338 return openBlock(), createBlock(_component_BlogGalleryO1Card, { 339 key: blog._id, 340 blog, 341 class: normalizeClass(["blog-item", { new: _ctx.isNewItem(index) }]), 342 style: normalizeStyle(_ctx.getItemStyle(index)) 343 }, null, 8, ["blog", "style", "class"]); 344 }), 128)) 345 ]), 346 _: 1 347 }, 8, ["style"]), 348 _ctx.paginationActive && _ctx.itemsToShow < _ctx.blogs.length ? (openBlock(), createElementBlock("div", _hoisted_4$6, [ 349 createVNode(_component_SFButton, { 350 class: "max-w-[200px] mx-auto", 351 btnClass: "secondary", 352 onClick: _ctx.showMore 353 }, { 354 default: withCtx(() => [..._cache[0] || (_cache[0] = [ 355 createTextVNode(" Show More ", -1) 356 ])]), 357 _: 1 358 }, 8, ["onClick"]) 359 ])) : createCommentVNode("", true) 360 ])) : createCommentVNode("", true), 361 ((_f = _ctx.blogCategories) == null ? void 0 : _f.length) ? (openBlock(), createElementBlock("div", _hoisted_5$5, [ 362 _ctx.showTitle || ((_g = _ctx.blogs) == null ? void 0 : _g.length) ? (openBlock(), createElementBlock("h2", _hoisted_6$4, toDisplayString((_ctx._.provides[PageRouteSymbol] || _ctx.$route).path === "/blog" ? "" : "Related") + " Categories ", 1)) : createCommentVNode("", true), 363 createBaseVNode("div", _hoisted_7$3, [ 364 (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.computedBlogCategories, (blog) => { 365 return openBlock(), createElementBlock("div", { 366 key: blog.title 367 }, [ 368 createVNode(_component_FAQPreview, { 369 type: "blog", 370 faq: blog 371 }, null, 8, ["faq"]) 372 ]); 373 }), 128)) 374 ]) 375 ])) : createCommentVNode("", true) 376 ]); 377} 378const BlogList = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-7c0bfe9e"]]), { __name: "ElementsBlogList" }); 379function resolveBlogIndexPage(pages) { 380 if (!Array.isArray(pages)) { 381 return null; 382 } 383 return pages.find( 384 (page) => { 385 var _a; 386 return ((_a = page == null ? void 0 : page.seo) == null ? void 0 : _a.slug) === "blog" && (page == null ? void 0 : page.type) !== "blog" && (page == null ? void 0 : page.isActive) !== false; 387 } 388 ) || null; 389} 390const _sfc_main$7 = { 391 name: "ContactUsO1", 392 components: { 393 SFButton, 394 SFInput 395 }, 396 data() { 397 return { 398 form: { 399 name: "", 400 email: "", 401 phoneNumber: "" 402 } 403 }; 404 }, 405 computed: {}, 406 watch: {}, 407 mounted() { 408 }, 409 methods: { 410 async submitTrialForm() { 411 var _a, _b; 412 if (this.validateForm(false, "contact_us_form")) { 413 console.log("submitTrialForm", this.form); 414 this.$store.ordantStore.firstName = ((_a = this.form.name.split(" ")) == null ? void 0 : _a[0]) || ""; 415 this.$store.ordantStore.lastName = ((_b = this.form.name.split(" ")) == null ? void 0 : _b[1]) || ""; 416 this.$store.ordantStore.emailAddresses = this.form.email; 417 this.$store.ordantStore.phoneNumber = this.form.phoneNumber; 418 try { 419 await this.$store.ordantStore.createLead((this._.provides[PageRouteSymbol] || this.$route).name); 420 await this.$store.ordantStore.openPopupForm((this._.provides[PageRouteSymbol] || this.$route).name, "Start A Free Trial", false); 421 } catch (e) { 422 console.error("submitTrialForm", e); 423 } 424 } 425 }, 426 validateForm(silent = false, form_ref) { 427 const errs = this.$validateForm(this.$refs[form_ref]); 428 if (!silent) { 429 for (const err of errs) { 430 this.$toast.error(err); 431 if (err) { 432 break; 433 } 434 } 435 } 436 return !(errs == null ? void 0 : errs.length); 437 } 438 } 439}; 440const _hoisted_1$6 = { class: "flex h-full max-w-[387px] flex-col" }; 441const _hoisted_2$6 = { class: "flex flex-col items-center overflow-hidden rounded-t-[20px] bg-[#0087CA]" }; 442const _hoisted_3$5 = { class: "mb-[20px] px-[30px] pt-[24px]" }; 443const _hoisted_4$5 = { class: "flex h-[117px] w-full flex-col justify-end gap-y-[24px] bg-white" }; 444const _hoisted_5$4 = { class: "lg:gap-x-none mx-auto mb-[20px] grid grid-cols-6 items-center justify-items-center gap-x-[25px] gap-y-[32px] lg:gap-y-[32px]" }; 445const _hoisted_6$3 = { class: "flex h-[22px] w-[22px] flex-col items-center justify-center gap-y-[8px]" }; 446const _hoisted_7$2 = { class: "flex h-[22px] w-[22px] flex-col items-center justify-center gap-y-[8px]" }; 447const _hoisted_8$1 = { class: "flex h-[22px] w-[22px] flex-col items-center justify-center gap-y-[8px]" }; 448const _hoisted_9$1 = { class: "flex h-[22px] w-[22px] flex-col items-center justify-center gap-y-[8px]" }; 449const _hoisted_10$1 = { class: "flex h-[22px] w-[22px] flex-col items-center justify-center gap-y-[8px]" }; 450const _hoisted_11$1 = { class: "flex h-[22px] w-[22px] flex-col items-center justify-center gap-y-[8px]" }; 451const _hoisted_12$1 = { class: "fixed sticky top-0 flex flex-col rounded-b-[20px] bg-[#0087CA] px-[30px] py-[24px]" }; 452function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { 453 const _component_ClientOnly = __nuxt_component_0$1;
454 const _component_SFInput = resolveComponent("SFInput"); 455 const _component_SFButton = resolveComponent("SFButton"); 456 return openBlock(), createElementBlock("div", _hoisted_1$6, [ 457 createBaseVNode("div", _hoisted_2$6, [ 458 createBaseVNode("div", _hoisted_3$5, [ 459 createVNode(_component_ClientOnly) 460 ]), 461 _cache[11] || (_cache[11] = createBaseVNode("div", { class: "mb-[80px] max-w-[308px] px-[30px] text-center text-xl text-white" }, " Hundreds of customers trust Ordant to simplify their workflow ", -1)), 462 createBaseVNode("div", _hoisted_4$5, [ 463 _cache[10] || (_cache[10] = createBaseVNode("div", { class: "relative items-center justify-center" }, [ 464 createBaseVNode("img", { 465 src: "https://ordant.com/_nuxt/BlogCTA-image-01.926c2420.png", 466 class: "z-10 ml-[25px] h-[117px] w-[392px] -rotate-6 rounded-[5px] object-cover shadow-2xl", 467 alt: "" 468 }), 469 createBaseVNode("img", { 470 src: "https://ordant.com/_nuxt/BlogCTA-image-02.3f1dc692.png", 471 class: "-rotate-5 absolute z-20 -mt-[190px] ml-[160px] rounded-[5px] object-cover", 472 alt: "" 473 }) 474 ], -1)), 475 createBaseVNode("div", _hoisted_5$4, [ 476 createBaseVNode("div", _hoisted_6$3, [ 477 createVNode(_component_ClientOnly, null, { 478 default: withCtx(() => [..._cache[4] || (_cache[4] = [ 479 createBaseVNode("img", { 480 format: "webp", 481 loading: "lazy", 482 provider: "cloudfront", 483 fit: "inside", 484 src: "https://d2ljs4ffhjgrz3.cloudfront.net/ordant-site-v5/images/svg/connect-ordant-to/slack.svg", 485 height: "22px", 486 width: "22px", 487 class: "scale-[300%]", 488 alt: "Slack" 489 }, null, -1) 490 ])]), 491 _: 1 492 }) 493 ]), 494 createBaseVNode("div", _hoisted_7$2, [ 495 createVNode(_component_ClientOnly, null, { 496 default: withCtx(() => [..._cache[5] || (_cache[5] = [ 497 createBaseVNode("img", { 498 format: "webp", 499 loading: "lazy", 500 provider: "cloudfront", 501 fit: "inside", 502 src: "https://d2ljs4ffhjgrz3.cloudfront.net/ordant-site-v5/images/svg/connect-ordant-to/google.svg", 503 height: "22px", 504 width: "22px", 505 class: "scale-[300%]", 506 alt: "Google drive" 507 }, null, -1) 508 ])]), 509 _: 1 510 }) 511 ]), 512 createBaseVNode("div", _hoisted_8$1, [ 513 createVNode(_component_ClientOnly, null, { 514 default: withCtx(() => [..._cache[6] || (_cache[6] = [ 515 createBaseVNode("img", { 516 format: "webp", 517 loading: "lazy", 518 provider: "cloudfront", 519 fit: "inside", 520 src: "https://d2ljs4ffhjgrz3.cloudfront.net/ordant-site-v5/images/svg/connect-ordant-to/fedex.svg", 521 height: "22px", 522 width: "22px", 523 class: "scale-[300%]", 524 alt: "FedEx" 525 }, null, -1) 526 ])]), 527 _: 1 528 }) 529 ]), 530 createBaseVNode("div", _hoisted_9$1, [ 531 createVNode(_component_ClientOnly, null, { 532 default: withCtx(() => [..._cache[7] || (_cache[7] = [ 533 createBaseVNode("img", { 534 format: "webp", 535 loading: "lazy", 536 provider: "cloudfront", 537 fit: "inside", 538 src: "https://d2ljs4ffhjgrz3.cloudfront.net/ordant-site-v5/images/svg/connect-ordant-to/google.svg", 539 height: "22px", 540 width: "22px", 541 class: "scale-[300%]", 542 alt: "UPS" 543 }, null, -1) 544 ])]), 545 _: 1 546 }) 547 ]), 548 createBaseVNode("div", _hoisted_10$1, [ 549 createVNode(_component_ClientOnly, null, { 550 default: withCtx(() => [..._cache[8] || (_cache[8] = [ 551 createBaseVNode("img", { 552 format: "webp", 553 loading: "lazy", 554 provider: "cloudfront", 555 fit: "inside", 556 src: "https://d2ljs4ffhjgrz3.cloudfront.net/ordant-site-v5/images/svg/connect-ordant-to/quickbooks.svg", 557 height: "22px", 558 width: "22px", 559 class: "scale-[300%]", 560 alt: "QuickBooks" 561 }, null, -1) 562 ])]), 563 _: 1 564 }) 565 ]), 566 createBaseVNode("div", _hoisted_11$1, [ 567 createVNode(_component_ClientOnly, null, { 568 default: withCtx(() => [..._cache[9] || (_cache[9] = [ 569 createBaseVNode("img", { 570 format: "webp", 571 loading: "lazy", 572 provider: "cloudfront", 573 fit: "inside", 574 src: "https://d2ljs4ffhjgrz3.cloudfront.net/ordant-site-v5/images/svg/connect-ordant-to/hubspot.svg", 575 height: "22px", 576 width: "22px", 577 class: "scale-[300%]", 578 alt: "Hubspot" 579 }, null, -1) 580 ])]), 581 _: 1 582 }) 583 ]) 584 ]) 585 ]) 586 ]), 587 createBaseVNode("div", _hoisted_12$1, [ 588 _cache[12] || (_cache[12] = createBaseVNode("div", { class: "text-xl font-medium text-white mb-4" }, " Try it for free to see what we can do for you! ", -1)), 589 createBaseVNode("form", { 590 ref: "contact_us_form", 591 class: "grid justify-items-center gap-4", 592 onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => $options.submitTrialForm && $options.submitTrialForm(...args), ["prevent"])) 593 }, [ 594 createVNode(_component_SFInput, { 595 modelValue: $data.form.name, 596 "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.name = $event), 597 labelClass: "text-white", 598 class: "w-full", 599 rules: "[required]", 600 label: "First and Last Name" 601 }, null, 8, ["modelValue"]), 602 createVNode(_component_SFInput, { 603 modelValue: $data.form.email, 604 "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.email = $event), 605 labelClass: "text-white", 606 class: "w-full", 607 rules: "[required, email]", 608 label: "Email" 609 }, null, 8, ["modelValue"]), 610 createVNode(_component_SFInput, { 611 modelValue: $data.form.phoneNumber, 612 "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.form.phoneNumber = $event), 613 labelClass: "text-white", 614 class: "w-full", 615 rules: "[required, phone]", 616 label: "Phone number" 617 }, null, 8, ["modelValue"]), 618 createVNode(_component_SFButton, { 619 btnText: "Start A Free Trial", 620 btnClass: "bg-white rounded-lg mt-4" 621 }) 622 ], 544) 623 ]) 624 ]); 625} 626const v1 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$7, [["render", _sfc_render$6]]), { __name: "ElementsOrdantCtaV1" }); 627const _sfc_main$6 = { 628 name: "ContactUsO1", 629 components: { 630 SFButton, 631 SFInput 632 }, 633 props: { 634 title: { 635 type: String, 636 default: "" 637 }, 638 btntext: { 639 type: String, 640 default: "" 641 }, 642 btncolor: { 643 type: String, 644 default: "" 645 } 646 }, 647 data() { 648 return { 649 form: { 650 name: "", 651 email: "", 652 phoneNumber: "" 653 }, 654 user: { 655 title: "", 656 btnText: "", 657 btnColor: "" 658 } 659 }; 660 }, 661 computed: {}, 662 watch: { 663 title: { 664 handler(newVal) { 665 this.user.title = newVal; 666 }, 667 immediate: true 668 }, 669 btntext: { 670 handler(newVal) { 671 this.user.btnText = newVal; 672 }, 673 immediate: true 674 }, 675 btncolor: { 676 handler(newVal) { 677 this.user.btnColor = newVal; 678 }, 679 immediate: true 680 } 681 }, 682 mounted() { 683 }, 684 methods: { 685 async submitTrialForm() { 686 var _a, _b; 687 if (this.validateForm(false, "contact_us_form")) { 688 console.log("submitTrialForm", this.form); 689 this.$store.ordantStore.firstName = ((_a = this.form.name.split(" ")) == null ? void 0 : _a[0]) || ""; 690 this.$store.ordantStore.lastName = ((_b = this.form.name.split(" ")) == null ? void 0 : _b[1]) || ""; 691 this.$store.ordantStore.emailAddresses = this.form.email; 692 this.$store.ordantStore.phoneNumber = this.form.phoneNumber; 693 try { 694 await this.$store.ordantStore.createLead((this._.provides[PageRouteSymbol] || this.$route).name); 695 await this.$store.ordantStore.openPopupForm((this._.provides[PageRouteSymbol] || this.$route).name, "Start A Free Trial", false); 696 } catch (e) { 697 console.error("submitTrialForm", e); 698 } 699 } 700 }, 701 validateForm(silent = false, form_ref) { 702 const errs = this.$validateForm(this.$refs[form_ref]); 703 if (!silent) { 704 for (const err of errs) { 705 this.$toast.error(err); 706 if (err) { 707 break; 708 } 709 } 710 } 711 return !(errs == null ? void 0 : errs.length); 712 } 713 } 714}; 715const _hoisted_1$5 = { class: "flex h-full max-w-[387px] flex-col" }; 716const _hoisted_2$5 = { class: "flex flex-col items-center rounded-t-[20px] bg-white" }; 717const _hoisted_3$4 = { class: "grid w-full justify-items-center rounded-t-[20px] bg-[#0087CA] px-[30px] pt-[24px] text-3xl tracking-wide" }; 718const _hoisted_4$4 = { class: "grid gap-4 justify-items-center py-12" }; 719const _hoisted_5$3 = { class: "fixed sticky top-0 flex flex-col rounded-b-[20px] bg-[#0087CA] px-[30px] py-[24px]" }; 720function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { 721 const _component_ClientOnly = __nuxt_component_0$1; 722 const _component_NuxtLink = __nuxt_component_1$1;
723 const _component_SFInput = resolveComponent("SFInput"); 724 const _component_SFButton = resolveComponent("SFButton"); 725 return openBlock(), createElementBlock("div", _hoisted_1$5, [ 726 createBaseVNode("div", _hoisted_2$5, [ 727 createBaseVNode("div", _hoisted_3$4, [ 728 createVNode(_component_ClientOnly, null, { 729 default: withCtx(() => [..._cache[4] || (_cache[4] = [ 730 createBaseVNode("img", { 731 src: "https://d2ljs4ffhjgrz3.cloudfront.net/ordant-site-v5/images/svg/logo/white-logo.svg", 732 height: "18px", 733 width: "112px", 734 class: "mb-[10px] h-[11.25px] w-[70px] object-cover lg:h-[29px] lg:w-[177px]", 735 alt: "ordant-logo" 736 }, null, -1) 737 ])]), 738 _: 1 739 }) 740 ]), 741 createBaseVNode("div", _hoisted_4$4, [ 742 _cache[10] || (_cache[10] = createBaseVNode("div", { class: "text-[21px] font-semibold capitalize" }, "Modules", -1)), 743 createVNode(_component_NuxtLink, { 744 to: "/best-print-estimating-software/", 745 class: "cursor-pointer" 746 }, { 747 default: withCtx(() => [..._cache[5] || (_cache[5] = [ 748 createBaseVNode("p", null, " Estimating Module ", -1) 749 ])]), 750 _: 1 751 }), 752 createVNode(_component_NuxtLink, { 753 to: "/print-proofing-software/", 754 class: "cursor-pointer" 755 }, { 756 default: withCtx(() => [..._cache[6] || (_cache[6] = [ 757 createBaseVNode("p", null, " Print Proofing Module ", -1) 758 ])]), 759 _: 1 760 }), 761 createVNode(_component_NuxtLink, { 762 to: "/print-estimating-order-management/", 763 class: "cursor-pointer" 764 }, { 765 default: withCtx(() => [..._cache[7] || (_cache[7] = [ 766 createBaseVNode("p", null, " Order Management Module ", -1) 767 ])]), 768 _: 1 769 }), 770 createVNode(_component_NuxtLink, { 771 to: "/print-mis-quickbooks-integration/", 772 class: "cursor-pointer" 773 }, { 774 default: withCtx(() => [..._cache[8] || (_cache[8] = [ 775 createBaseVNode("p", null, " QuickBooks Module: Desktop & Online ", -1) 776 ])]), 777 _: 1 778 }), 779 createVNode(_component_NuxtLink, { 780 to: "/send-invoices/", 781 class: "cursor-pointer" 782 }, { 783 default: withCtx(() => [..._cache[9] || (_cache[9] = [ 784 createBaseVNode("p", null, " Invoicing and Online Payments Module ", -1) 785 ])]), 786 _: 1 787 }), 788 _cache[11] || (_cache[11] = createBaseVNode("div", { class: "text-[21px] font-semibold capitalize" }, "and many more!", -1)) 789 ]) 790 ]), 791 createBaseVNode("div", _hoisted_5$3, [ 792 _cache[12] || (_cache[12] = createBaseVNode("div", { class: "mb-4 text-xl font-medium text-white" }, " Try it for free to see what we can do for you! ", -1)), 793 createBaseVNode("form", { 794 ref: "contact_us_form", 795 class: "grid justify-items-center gap-4", 796 onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => $options.submitTrialForm && $options.submitTrialForm(...args), ["prevent"])) 797 }, [ 798 createVNode(_component_SFInput, { 799 modelValue: $data.form.name, 800 "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.name = $event), 801 labelClass: "text-white", 802 class: "w-full", 803 rules: "[required]", 804 label: "First and Last Name" 805 }, null, 8, ["modelValue"]), 806 createVNode(_component_SFInput, { 807 modelValue: $data.form.email, 808 "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.email = $event), 809 labelClass: "text-white", 810 class: "w-full", 811 rules: "[required, email]", 812 label: "Email" 813 }, null, 8, ["modelValue"]), 814 createVNode(_component_SFInput, { 815 modelValue: $data.form.phoneNumber, 816 "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.form.phoneNumber = $event), 817 labelClass: "text-white", 818 class: "w-full", 819 rules: "[required, phone]", 820 label: "Phone number" 821 }, null, 8, ["modelValue"]), 822 createVNode(_component_SFButton, { 823 btnText: "Start A Free Trial", 824 btnClass: "bg-white text-center rounded-lg mt-4" 825 }) 826 ], 544) 827 ]) 828 ]); 829} 830const v2 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$6, [["render", _sfc_render$5]]), { __name: "ElementsOrdantCtaV2" }); 831const _sfc_main$5 = { 832 name: "ContactUsO1", 833 components: { 834 SFButton, 835 SFInput 836 }, 837 props: { 838 title: { 839 type: String, 840 default: "" 841 }, 842 btntext: { 843 type: String, 844 default: "" 845 }, 846 btncolor: { 847 type: String, 848 default: "" 849 } 850 }, 851 data() { 852 return { 853 form: { 854 name: "", 855 email: "", 856 phoneNumber: "" 857 }, 858 user: { 859 title: "", 860 btnText: "", 861 btnColor: "" 862 } 863 }; 864 }, 865 computed: {}, 866 watch: { 867 title: { 868 handler(newVal) { 869 this.user.title = newVal; 870 }, 871 immediate: true 872 }, 873 btntext: { 874 handler(newVal) { 875 this.user.btnText = newVal; 876 }, 877 immediate: true 878 }, 879 btncolor: { 880 handler(newVal) { 881 this.user.btnColor = newVal; 882 }, 883 immediate: true 884 } 885 }, 886 mounted() { 887 }, 888 methods: { 889 async submitTrialForm() { 890 var _a, _b; 891 if (this.validateForm(false, "contact_us_form")) { 892 console.log("submitTrialForm", this.form); 893 this.$store.ordantStore.firstName = ((_a = this.form.name.split(" ")) == null ? void 0 : _a[0]) || ""; 894 this.$store.ordantStore.lastName = ((_b = this.form.name.split(" ")) == null ? void 0 : _b[1]) || ""; 895 this.$store.ordantStore.emailAddresses = this.form.email; 896 this.$store.ordantStore.phoneNumber = this.form.phoneNumber; 897 try { 898 await this.$store.ordantStore.createLead((this._.provides[PageRouteSymbol] || this.$route).name); 899 await this.$store.ordantStore.openPopupForm((this._.provides[PageRouteSymbol] || this.$route).name, "Start A Free Trial", false); 900 } catch (e) { 901 console.error("submitTrialForm", e); 902 } 903 } 904 }, 905 validateForm(silent = false, form_ref) { 906 const errs = this.$validateForm(this.$refs[form_ref]); 907 if (!silent) { 908 for (const err of errs) { 909 this.$toast.error(err); 910 if (err) { 911 break; 912 } 913 } 914 } 915 return !(errs == null ? void 0 : errs.length); 916 } 917 } 918}; 919const _hoisted_1$4 = { class: "flex h-full max-w-[387px] flex-col" }; 920const _hoisted_2$4 = { class: "relative flex flex-col items-center overflow-hidden rounded-t-[20px] bg-blue-T900" }; 921const _hoisted_3$3 = { class: "mb-[20px] grid max-h-[102px] min-h-[102px] w-full items-center bg-[#0087CA] px-[30px] pt-[24px] text-3xl tracking-wide text-[#0087CA]" }; 922const _hoisted_4$3 = { class: "align-items-center mb-[120px] mt-[8px] flex flex-col gap-y-[10px] text-sm font-medium text-white px-4" }; 923const _hoisted_5$2 = { class: "grid grid-cols-2 gap-x-[39px] gap-y-[12px]" }; 924const _hoisted_6$2 = { class: "fixed sticky top-0 flex flex-col rounded-b-[20px] bg-[#0087CA] px-[30px] py-[24px]" }; 925function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { 926 const _component_ClientOnly = __nuxt_component_0$1; 927 const _component_NuxtLink = __nuxt_component_1$1;
928 const _component_SFInput = resolveComponent("SFInput"); 929 const _component_SFButton = resolveComponent("SFButton"); 930 return openBlock(), createElementBlock("div", _hoisted_1$4, [ 931 createBaseVNode("div", _hoisted_2$4, [ 932 createBaseVNode("div", _hoisted_3$3, [ 933 createVNode(_component_ClientOnly, null, { 934 default: withCtx(() => [..._cache[4] || (_cache[4] = [ 935 createBaseVNode("img", { 936 src: "https://d2ljs4ffhjgrz3.cloudfront.net/ordant-site-v5/images/svg/logo/white-logo.svg", 937 height: "18px", 938 width: "112px", 939 class: "object-cover lg:h-[29px] lg:w-[177px]", 940 alt: "ordant-logo" 941 }, null, -1) 942 ])]), 943 _: 1 944 }) 945 ]), 946 createBaseVNode("div", _hoisted_4$3, [ 947 _cache[12] || (_cache[12] = createBaseVNode("p", { class: "!text-[21px] !font-semibold !capitalize text-white" }, "We Work With:", -1)), 948 createBaseVNode("div", _hoisted_5$2, [ 949 createVNode(_component_NuxtLink, { 950 to: "/digital-print-estimating/", 951 class: "cursor-pointer text-white" 952 }, { 953 default: withCtx(() => [..._cache[5] || (_cache[5] = [ 954 createTextVNode(" Digital Printing ", -1) 955 ])]), 956 _: 1 957 }), 958 createVNode(_component_NuxtLink, { 959 to: "/wide-format-estimating/", 960 class: "cursor-pointer text-white" 961 }, { 962 default: withCtx(() => [..._cache[6] || (_cache[6] = [ 963 createTextVNode(" Large Format ", -1) 964 ])]), 965 _: 1 966 }), 967 createVNode(_component_NuxtLink, { 968 to: "/label-print-estimating/", 969 class: "cursor-pointer text-white" 970 }, { 971 default: withCtx(() => [..._cache[7] || (_cache[7] = [ 972 createTextVNode(" Label Printing ", -1) 973 ])]), 974 _: 1 975 }), 976 createVNode(_component_NuxtLink, { 977 to: "/dye-sublimation/", 978 class: "cursor-pointer text-white" 979 }, { 980 default: withCtx(() => [..._cache[8] || (_cache[8] = [ 981 createTextVNode(" Sublimation Printing ", -1) 982 ])]), 983 _: 1 984 }), 985 createVNode(_component_NuxtLink, { 986 to: "/screen-print-estimating/", 987 class: "cursor-pointer text-white" 988 }, { 989 default: withCtx(() => [..._cache[9] || (_cache[9] = [ 990 createTextVNode(" Screen Printing ", -1) 991 ])]), 992 _: 1 993 }), 994 createVNode(_component_NuxtLink, { 995 to: "/apparel/", 996 class: "cursor-pointer text-white" 997 }, { 998 default: withCtx(() => [..._cache[10] || (_cache[10] = [ 999 createTextVNode(" Apparel ", -1) 1000 ])]), 1001 _: 1 1002 }), 1003 createVNode(_component_NuxtLink, { 1004 to: "/vehicle-wrap-estimating-software/", 1005 class: "cursor-pointer text-white" 1006 }, { 1007 default: withCtx(() => [..._cache[11] || (_cache[11] = [ 1008 createTextVNode(" Vehicle Wrap ", -1) 1009 ])]), 1010 _: 1 1011 }) 1012 ]), 1013 _cache[13] || (_cache[13] = createBaseVNode("p", { class: "!text-[21px] !font-semibold !capitalize text-white" }, "and many more!", -1)) 1014 ]), 1015 _cache[14] || (_cache[14] = createStaticVNode('<div class="absolute top-[355px] flex max-h-[68px] flex-row gap-x-[10px]"><img src="data:image/png;base64,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" class="rotate-270 object-cover" alt="screenshot"><img src="data:image/png;base64,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" class="rotate-270 object-cover" alt="screenshot"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABSCAYAAAAYYvmEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA3lSURBVHgB7VwLkBTVFb2vZ3pmdhfYAbIsv2InyQICEVZZMH74BDWlVYKKkEIQJAY1SakQy6Tir7KlfKyKijExpRUjKKSS1EIsEUsrEYElqZR8JGAFf6RccKOsKMyw7u7szuflnrfdQ+/s9MzOTI+OE09VT3e/X3efvve+++57PYIKhcVr6jxEK6lAkJJCERl5jP7U0EwFhpsKgUXrAjrJnTMnjPHXVFVSIdB05DgdOxm6upvo6/RlhGfxmoZhKx6VhcS/mk9Iz+K10r3owdlUYGhUIFRWeKmQmFJTTSyppAlXwVTahOPqxi+ZvEvW0ueBeVPH0u63js32L2/wBzc2BFUiVF3IDUJQgByCcyRd0+DXdT3gWfJQnSSqC7V30bYD75G/3EuT+a1j7zSWzppMq//yd3+oXSzn01/xJj1C7pwcqA6AQKcgKB8wMW6fvlIIMZvf3Ox0RUHUshnn0rxp46jma84Z88tX/4F2H/lgV+SPd8/xLVpXE9fk+3+9dzHNmlhDTiE3knpEuoGJuZFywNKZ59L9181whKymt44ronyRk0PPNK4/rS9ee+r++Zf40b5TyNpw69evXqVr8mCuBAGbmt6kcSt/C1WhfAHjDVUOu4as4lOhkXh20543yUn0nyTYnOvX7hRCW8/i5ycH8ODWPTTtnmfo2Cchygc3sGSSpi0j2NhI50vsPykJcwr9I4nVy1PmOZjJ7uSCw8dalbrkQ9TV9eP5V9S45/18TsWO37zOXewHL+x/l5xCZpJYgjwi/jw52KUmA28eRAU7uigXQOUm1wwjl89zTVdXV5kMf9a4uck5lXNlKqCf99113HtdQ1lgKXqx+nHKVng9bmoNtWesE2KCWkOfqXq5oDXYTrvfbhkXD374Z3km2NI1dMyN6OGcGBalJUlftGa50MRDlCWWzZxM37toIt186fl0C284D7aH6fDxj9PWO3zsY5oSGE7jRw6lbDElUE0Pv/i6N0aef8T2P9/sOuei6eRyj8yVdCvSqhtL0C8oB9y1+VXVe3mXrFNqBCP69A+voncf+3HGbv/mJ7fnpHb+cl/PMKU6cAefarLt06YX97+Xd6cA2PpJ+uJ1ywXJDeQQIPZ/u28J+8SU0VDfN/8SysXPea7pMN381EsU37lxBmlRr+uS5ZsrB1YMr2QC84EtSTzCPsi7ulR5kAa8tWz9EbxtEFXJtmr6Pb+3lRgMXveuvYmyRbAjTONZgoMtzb+UO55sjAemjHGN+la99FUMN4rgeSWdfW6ZlE6W89QnJrzzG74hfZ7/kA3g9vsrfPygz1C2AFF7191Eh5pbaeH6rbblQCZeRLZYwer63GsH9kUaG37kdrs57kc6GWYlGo0qgjg9UZ7T1D5Vmok+A1wexQvfkrVXkw1w4+g1oDK5AG8bD2KSYOf0HWL/KReS7rhyGiR8mmfRA9tkpPsEKUGQShj0FOX7k5YyCsB0zyIbLGPvFg+Qj0eLuvCNMFK3aweRx9uvmEbZAgNpdBCPv7JvZKgjPJIcQDJJ3KEJzbt4jV/aVJhSM5xH3c2UL7YdeJd9ovHcE+5ImX/oeCvlCn
1015QSjyy9jJxCLxcAATOGS5II2FWAZ3voWHp/pz+ANKZz9BCPKhYkSIItghSNHj0aDmZ+caZ+AOoG2PlNsF3FgmRnUrS0tGQcqjgBv+G72PlL/jx9GyeRIImlSJ0PHjzYRfFYm10FSMAUVrl8MYZVLZ1D6WT0Ml9YJUkEAgEtHo9rFI0csatgGtx8gZ4NvpIdCj3bkg16qVtzc7MWCoVcHLh6y67CNo7TwODm4sOYgJTA13puz2HbMvm07zR6SVJ1dTV0TlDbJ2/bVYBfowast16V8wzIw9w9Q9UwALVDMZKkDFJrqxJ/0f3ahn0Ui7xjV2nFU9tZHXz8sJdTLkBIJJ3HbkpascDsycTs2bM1Vjd45BjvlLm/ed5w8lTUp6qEANneo/9VEqEGo0c/VGn9BSQxXXlEAC6oHUXFgkR3D3tUVVXl7ujoAFFe0fFps6ipW8D8pdQpqAsmHzFWMoNqePBQR35OIKRozaLvqAF0scDqEwkmCOe61+v1UNtpEl+rCdGAwbbjOIRl0dsFqvx0+5XT6afzLlTh14XfnqDyM0UiUwHDiZlFpGpAQt2MDefuWCymsyugx95/o1mrvWC80D22dw3JAVFP73hDqZ3ylNnngpT1J7ZtBYx1rnaukLAOP7Ta2lr96NGj5T6fb2A4HB7IaRXuqsAQbc73N5BLH04FBNQM4ZNCrWfKBwkXoKGhgZggjHBjTFCUVQ6Rp2j0ZHMb7d++inu7E1QgFDNBQEKSjAEu1A2Gupy3QR6Pp6K7u7scET6tpm6kqJ+3XrrcjkpUsRMEWEnC+A2SpVwA3pS6GZuXiXIjrOm+atVt2qBhC8gB3MZBNXT3hViW4yREinPlK1UwmJSBbMBBUlkkEkGAzsVcCW1M3Qg6/4qfkae8jnIADDRmRIrJYUyHPnGjhQsXuhobGyFNvrKysgGdnZ0gCSrnY9KgjppRT7omzRnrqp16nfANrMukhpCWG9ifwsD2y0KOiT4kwTbV19e7Dxw4oNSOe7oBbMjLdV2HNEEvEkRhhsGcWWDCasXgqmpRVjmCBlVdPHjw0Lr75l+sQiJ17JXXVDmyEOULQcqJgLlz58aYJDx9NxPUyXvBBGlMlGASPQYxqmeE+mEf/fdrR3l3lM+luOzWisrRI+vgYJYC+pDExlsFunksF9u1a1c3nXU0iYlCHjbdMOSm6pFVqkoNdmsBJBMUY6KUNPEWZjsOierAxhIVZjKRHmFysMWphzzr7GjJwHb1rexxnOJMVIQJk+3t7SAAZEQ1TYt1dXWBQJ3LuFnCEnaKpUnoVFqwJcmIecdBkJGUIMkgCEbcwwSBE5fRlkttmitGJYSM67gNicJDm+oUHTJkSJTJ6W5razPn2t08jHEzeW5WRQ8JraRIyrgc0JCohBRNnTo1eurUqTATBPv0GW9tAwYMaGOCMMPSzuR1lBpJ2XwRII0Z3qjoYQ6kgYwIG3UXj/NcTFCEyYuTy1VS3VxW67jhHhgugiKISYuwhx7h2HgXq2AXE9TFhHX/P0tSMqRp3HHMYRbiKfIozwDHdMPXyhVBFQYOZz1BiXqY8kLo11wE3586Cx/dopY533ZFypC+Ix/gKEI4HhXfuHGjikexzOVM0l2bXqVNTYfVzSN8cv/8Geozi0z49Sv7aPXWPYnVc/2pizj9gke3Uojj83PTfLDj2Lw/uwpaMBhEex7XhBkz/ZWDLsx2fdGKp16ixn8eUSEURAmwsgSfVuBhEPf26X3fKfIW8oP+bsdBumvuhdR45wK65dLz1HQ86iK8PH3sqD51UQ/TWl3d0c81nuVidUMcaoh+7d2PjF35hMwGP3hyuxy24hF5qPlEr/QX9r0jx97xhER7zSeDvfIef3mvqoP85HrAs7sPpayLY6Qhr/njYMZ7c/KjQInBLWUJqAdU7MX976g3ipVqVmD2BXN7C9ZvUcueIZ0oA5XE/F26wB2mumZNqFGTqagL1cNK3M1cdwxHJbb85Lp+SZCT4yw1HcVbOUvSvYExo+/EsrxMwAc4x08GUxKUDHywgy+clPplGbjD8mVVl9UQZCFC8UVEROFOYEYxK3V7YEtTSlUpJjj6DW4gEMBMcDZVyMmP9woFx77mZqey5EIkJhyTJI6L5+VAFjOc/F+AkpWkgv15QinBSZIkDDeVoEQ5Kkno2QYNGlRytsnx3o3diq8kyQ6TJk1SEiTyDJMUIxwjiUMlwrBJJQdHPW7T2y61KaVC9G4lB8d7N0DIWBsCZk58SV0McDRUwpKk83RTeXjk2FGi7tqXpaaNKqYPaXKFkySZq+SwlHCge9KMc7Th4y+WHt9o9guQJ22uL7NMs96zXZvp8lO1m9y+tGswXyiS2JksP3PmzACeh6vEekvqWUqoZVhxYrvQInm1inlu7BP1zK+xjTxh5PWqZ+ZTipdg5EusZTDvyWjH+bEbE6QuaklK+TZxU+aN42asn5xbkfxQFoLUdZIeXthdE/mWz9vN5UTC0gaOe32QlFigRs4BF3BVVla62aH0sOft1TQNi+bdvJk3I41j4j2O1c1gj3Pzhq3H3AYZdaSRlzhXF9U0YZRXZXmzSoMVCeIsdVQ75vWN+yHrfarrknNIeNxYssOqhtcQ4wvGIPop1CahEuabtJ5b37yJPn9qYKgDHiqpvKmC1hUxIkkV+9ge47q9VBXlHbNJsmcduPp4h7cKr9dbzmlYB64zsIZJleNjMo9TNWPePJYeGivrkv86I7kdaRwL1MG5pR7KJY6t10WdFGmpbKOjg1Gl0yNGjPB+9NFH5oJ57HUspmCyrD1c4i1ynroHzpd8jL3tBSz5go8lH6fqCVWbaC85zSxrtmGkK2KM8inbc/zPOJmgKJ19G9Hy8nIXS5SyfT6fT4TDvT5lVw/K6VRWViY7OzsTGSiLPZeXOE4aOAvYH7MNax2Ud7nU5axGXFjIV+fG9RLpOMceadZyOHDaJinLN3HiRPRy8ZaWFnyjop0+fdp84D6V/H4/8fS42ieRpNIBbkOEQiGZXMd4CGmeow5fQ3A7MrkMDrhTMduBJOJ60khTx6napkIFEbFgns5OVsLB9Bp7c/PW1tZ6k/K87LFj3s7LJKtyRhmvmYZ8I89a12stl9SuuXks9Xpt1rppyhUEwgi+JfbU4yL0a+OwS9rz/tQ36/Szrki+VtL+K2TC/wBiCc9ITL3k1gAAAABJRU5ErkJggg==" class="rotate-270 object-cover" alt="screenshot"><img src="data:image/png;base64,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" class="rotate-270 object-cover" alt="screenshot"><img src="data:image/png;base64,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" class="rotate-270 object-cover" alt="screenshot"></div>', 1)) 1016 ]), 1017 createBaseVNode("div", _hoisted_6$2, [ 1018 _cache[15] || (_cache[15] = createBaseVNode("div", { class: "mb-4 text-xl font-medium text-white" }, " Try it for free to see what we can do for you! ", -1)), 1019 createBaseVNode("form", { 1020 ref: "contact_us_form", 1021 class: "grid justify-items-center gap-4", 1022 onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => $options.submitTrialForm && $options.submitTrialForm(...args), ["prevent"])) 1023 }, [ 1024 createVNode(_component_SFInput, { 1025 modelValue: $data.form.name, 1026 "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.name = $event), 1027 labelClass: "text-white", 1028 class: "w-full", 1029 rules: "[required]", 1030 label: "First and Last Name" 1031 }, null, 8, ["modelValue"]), 1032 createVNode(_component_SFInput, { 1033 modelValue: $data.form.email, 1034 "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.email = $event), 1035 labelClass: "text-white", 1036 class: "w-full", 1037 rules: "[required, email]", 1038 label: "Email" 1039 }, null, 8, ["modelValue"]), 1040 createVNode(_component_SFInput, { 1041 modelValue: $data.form.phoneNumber, 1042 "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.form.phoneNumber = $event), 1043 labelClass: "text-white", 1044 class: "w-full", 1045 rules: "[required, phone]", 1046 label: "Phone number" 1047 }, null, 8, ["modelValue"]), 1048 createVNode(_component_SFButton, { 1049 btnText: "Start A Free Trial", 1050 btnClass: "bg-white rounded-lg mt-4" 1051 }) 1052 ], 544) 1053 ]) 1054 ]); 1055} 1056const v3 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$5, [["render", _sfc_render$4]]), { __name: "ElementsOrdantCtaV3" }); 1057const _sfc_main$4 = { 1058 __name: "ElementsOrdantCtaRandomBlogCta", 1059 setup(__props) { 1060 const components = ref(["v1", "v2", "v3"]); 1061 const randomIndex = ref(Math.floor(Math.random() * components.value.length)); 1062 return (_ctx, _cache) => { 1063 const _component_ClientOnly = __nuxt_component_0$1; 1064 return openBlock(), createElementBlock("div", null, [ 1065 createVNode(_component_ClientOnly, null, { 1066 default: withCtx(() => [ 1067 unref(randomIndex) === 0 ? (openBlock(), createBlock(v1, { key: 0 })) : createCommentVNode("", true), 1068 unref(randomIndex) === 1 ? (openBlock(), createBlock(v2, { key: 1 })) : createCommentVNode("", true), 1069 unref(randomIndex) === 2 ? (openBlock(), createBlock(v3, { key: 2 })) : createCommentVNode("", true) 1070 ]), 1071 _: 1 1072 }) 1073 ]); 1074 }; 1075 } 1076}; 1077const _sfc_main$3 = defineNuxtComponent( 1078 { 1079 name: "FAQList", 1080 components: { 1081 FAQPreview 1082 }, 1083 props: { 1084 showTitle: { 1085 type: Boolean, 1086 default: true 1087 }, 1088 faqCategories: { 1089 type: Array, 1090 default: () => [] 1091 }, 1092 faqs: { 1093 type: Array, 1094 default: () => [] 1095 }, 1096 pageData: { 1097 type: Object, 1098 default: () => { 1099 } 1100 } 1101 }, 1102 data() { 1103 return {}; 1104 }, 1105 computed: { 1106 FAQPageTitle() { 1107 return (this._.provides[PageRouteSymbol] || this.$route).params.pageId ? "Related" : "Frequently Asked Questions"; 1108 } 1109 }, 1110 mounted() { 1111 } 1112 }, 1113 "$L2pPItLDaS" 1114 /* nuxt-injected */ 1115); 1116const _hoisted_1$3 = { class: "relative grid gap-8 bg-gray-50 px-6 pb-8 pt-8 xl:px-8 xl:pb-16 xl:pt-16" }; 1117const _hoisted_2$3 = { 1118 key: 0, 1119 class: "relative mx-auto w-full max-w-[100rem]" 1120}; 1121const _hoisted_3$2 = { 1122 key: 0, 1123 class: "pb-12 text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl" 1124}; 1125const _hoisted_4$2 = { class: "mx-auto grid w-full max-w-[100rem] gap-5" }; 1126const _hoisted_5$1 = { 1127 key: 1, 1128 class: "relative mx-auto w-full max-w-[100rem]" 1129}; 1130const _hoisted_6$1 = { 1131 key: 0, 1132 class: "pb-12 text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl" 1133}; 1134const _hoisted_7$1 = { class: "mx-auto grid max-w-lg gap-5 xl:max-w-none xl:grid-cols-3" }; 1135function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { 1136 var _a, _b, _c;
1137 const _component_FAQPreview = resolveComponent("FAQPreview"); 1138 return openBlock(), createElementBlock("div", _hoisted_1$3, [ 1139 ((_a = _ctx.faqs) == null ? void 0 : _a.length) ? (openBlock(), createElementBlock("div", _hoisted_2$3, [ 1140 ((_b = _ctx.faqCategories) == null ? void 0 : _b.length) ? (openBlock(), createElementBlock("h2", _hoisted_3$2, toDisplayString(_ctx.FAQPageTitle), 1)) : createCommentVNode("", true), 1141 createBaseVNode("div", _hoisted_4$2, [ 1142 (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.faqs, (faq, key) => { 1143 return openBlock(), createBlock(_component_FAQPreview, { 1144 key, 1145 pageData: _ctx.pageData, 1146 faq 1147 }, null, 8, ["pageData", "faq"]); 1148 }), 128)) 1149 ]) 1150 ])) : createCommentVNode("", true), 1151 ((_c = _ctx.faqCategories) == null ? void 0 : _c.length) ? (openBlock(), createElementBlock("div", _hoisted_5$1, [ 1152 _ctx.showTitle ? (openBlock(), createElementBlock("h2", _hoisted_6$1, " Related Categories ")) : createCommentVNode("", true), 1153 createBaseVNode("div", _hoisted_7$1, [ 1154 (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.faqCategories, (faqCat, key) => { 1155 return openBlock(), createBlock(_component_FAQPreview, { 1156 key, 1157 pageData: _ctx.pageData, 1158 faq: faqCat 1159 }, null, 8, ["pageData", "faq"]); 1160 }), 128)) 1161 ]) 1162 ])) : createCommentVNode("", true) 1163 ]); 1164} 1165const FAQList = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$3, [["render", _sfc_render$3]]), { __name: "ElementsFAQList" }); 1166const _sfc_main$2 = defineNuxtComponent( 1167 { 1168 name: "BlogPage", 1169 components: { 1170 FAQList, 1171 PageHeaderBlog, 1172 BlogList, 1173 RandomBlogCta: _sfc_main$4 1174 }, 1175 props: { 1176 blog_id: { type: String } 1177 }, 1178 // ---- NEW: setup() + useAsyncData (reactive to prop/route + store readiness) 1179 setup(props) { 1180 var _a; 1181 const route = useRoute(); 1182 const { $store } = useNuxtApp(); 1183 const blogId = computed(() => { 1184 var _a2; 1185 return (_a2 = props.blog_id) != null ? _a2 : route.params.pageId; 1186 }); 1187 const pagesKey = computed(() => { 1188 var _a2, _b, _c; 1189 return ((_c = (_b = (_a2 = $store.config) == null ? void 0 : _a2.getStoreConfig) == null ? void 0 : _b.pages) == null ? void 0 : _c.length) || 0; 1190 }); 1191 const pageData = ref(null); 1192 const blogTop = ref(null); 1193 const blogBottom = ref(null); 1194 const { data, pending, error } = useAsyncData( 1195 () => `blog:${blogId.value}:${pagesKey.value}`, 1196 async () => { 1197 var _a2, _b, _c, _d; 1198 const cfg = ((_a2 = $store.config) == null ? void 0 : _a2.getStoreConfig) || {}; 1199 const pages = cfg.pages || []; 1200 let page = null; 1201 const id = blogId.value; 1202 if (pages.length && id) { 1203 page = pages.find( 1204 (p) => { 1205 var _a3, _b2, _c2; 1206 return ((p == null ? void 0 : p._id) === id || ((_b2 = (_a3 = p == null ? void 0 : p.parent_page) == null ? void 0 : _a3.seo) == null ? void 0 : _b2.slug) === id || ((_c2 = p == null ? void 0 : p.seo) == null ? void 0 : _c2.slug) === id) && (p == null ? void 0 : p.type) === "blog"; 1207 } 1208 ); 1209 } 1210 if (!page && id) { 1211 const blog_menu = (_b = cfg.menus) == null ? void 0 : _b.blogs; 1212 page = findDeep(blog_menu, (c) => (c == null ? void 0 : c.link) === id); 1213 } 1214 const indexPage = id ? null : resolveBlogIndexPage(pages); 1215 let top = pages.find((p) => { 1216 var _a3, _b2; 1217 return ((_a3 = p == null ? void 0 : p.seo) == null ? void 0 : _a3.slug) === "blog-top" || ((_b2 = p == null ? void 0 : p.seo) == null ? void 0 : _b2.slug) === "blogtop"; 1218 }); 1219 let bottom = pages.find( 1220 (p) => { 1221 var _a3, _b2; 1222 return ((_a3 = p == null ? void 0 : p.seo) == null ? void 0 : _a3.slug) === "blog-bottom" || ((_b2 = p == null ? void 0 : p.seo) == null ? void 0 : _b2.slug) === "blogbottom"; 1223 } 1224 ); 1225 if ((_c = top == null ? void 0 : top.editorJsonData) == null ? void 0 : _c.html) { 1226 top = { 1227 ...top, 1228 editorJsonData: { 1229 ...top.editorJsonData, 1230 html: stripBodyMainFromHtml(top.editorJsonData.html) 1231 } 1232 }; 1233 } 1234 if ((_d = bottom == null ? void 0 : bottom.editorJsonData) == null ? void 0 : _d.html) { 1235 bottom = { 1236 ...bottom, 1237 editorJsonData: { 1238 ...bottom.editorJsonData, 1239 html: stripBodyMainFromHtml(bottom.editorJsonData.html) 1240 } 1241 }; 1242 } 1243 return { 1244 pageData: (page == null ? void 0 : page.parent_page) || page || null, 1245 // The UNCOLLAPSED record, for SEO only. `parent_page` is frequently an 1246 // empty object `{}`, which is truthy â so `pageData` above collapses to 1247 // a record with no `seo` bag at all and every such post rendered with an 1248 // empty <title>. `pickPageSeo` looks in both places, so hand it the 1249 // original rather than change what the template renders. 1250 seoSource: page || indexPage || null, 1251 blogTop: top || null, 1252 blogBottom: bottom || null 1253 }; 1254 }, 1255 { watch: [blogId, pagesKey] } 1256 ); 1257 watchEffect(() => { 1258 var _a2, _b, _c; 1259 pageData.value = ((_a2 = data.value) == null ? void 0 : _a2.pageData) || null; 1260 blogTop.value = ((_b = data.value) == null ? void 0 : _b.blogTop) || null; 1261 blogBottom.value = ((_c = data.value) == null ? void 0 : _c.blogBottom) || null; 1262 }); 1263 const siteSeo = ((_a = useRuntimeConfig().public) == null ? void 0 : _a.seo) || {}; 1264 const blogSeo = computed(() => { 1265 var _a2; 1266 const source = ((_a2 = data.value) == null ? void 0 : _a2.seoSource) || pageData.value; 1267 const seo = source ? pickPageSeo(source) : null; 1268 if (seo == null ? void 0 : seo.title) { 1269 return seo; 1270 } 1271 if (!blogId.value) { 1272 const site = siteSeo.siteName ? ` | ${siteSeo.siteName}` : ""; 1273 return { 1274 title: `Blog${site}`, 1275 description: siteSeo.siteName ? `Articles, guides and updates from ${siteSeo.siteName}.` : "Articles, guides and updates.", 1276 keywords: "" 1277 }; 1278 } 1279 return seo; 1280 }); 1281 const blogImage = computed(() => { 1282 var _a2, _b, _c; 1283 const thumbnail = ((_b = (_a2 = data.value) == null ? void 0 : _a2.seoSource) == null ? void 0 : _b.thumbnail) || ((_c = pageData.value) == null ? void 0 : _c.thumbnail); 1284 return thumbnail ? absoluteImageUrl(siteSeo.origin, displayImage(thumbnail)) : ""; 1285 }); 1286 useHead(() => { 1287 var _a2, _b; 1288 const seo = blogSeo.value; 1289 if (!seo) { 1290 return {}; 1291 } 1292 const url = buildCanonicalUrl(siteSeo.origin, route.path); 1293 const isPost = !!blogId.value && !!((_a2 = data.value) == null ? void 0 : _a2.seoSource); 1294 const source = ((_b = data.value) == null ? void 0 : _b.seoSource) || pageData.value; 1295 let article = null; 1296 if (isPost) { 1297 article = jsonLdScript( 1298 buildArticleJsonLd({ 1299 origin: siteSeo.origin, 1300 url, 1301 title: seo.title, 1302 description: seo.description, 1303 image: blogImage.value, 1304 // `displayDate` is what the post shows the reader; fall back to the 1305 // record timestamps so a post is never dateless. 1306 publishedAt: (source == null ? void 0 : source.displayDate) || (source == null ? void 0 : source.createdAt), 1307 updatedAt: source == null ? void 0 : source.updatedAt, 1308 authorName: source == null ? void 0 : source.author, 1309 publisherName: siteSeo.siteName 1310 }), 1311 "ld-article" 1312 ); 1313 } 1314 return { 1315 title: seo.title, 1316 meta: [ 1317 { hid: "description", name: "description", content: seo.description }, 1318 { hid: "keywords", name: "keywords", content: seo.keywords },
1319 ...buildSocialMeta({ 1320 title: seo.title, 1321 description: seo.description, 1322 image: blogImage.value, 1323 siteName: siteSeo.siteName, 1324 type: isPost ? "article" : "website" 1325 }) 1326 ], 1327 script: article ? [article] : [] 1328 }; 1329 }); 1330 const isServer = false; 1331 return { pageData, blogTop, blogBottom, pending, error, isServer }; 1332 }, 1333 data() { 1334 return { 1335 hasMounted: false 1336 }; 1337 }, 1338 computed: { 1339 computedVideoUrl() { 1340 var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j; 1341 let videoId = this.$extractYoutubeVideoId( 1342 ((_c = (_b = (_a = this.pageData) == null ? void 0 : _a.parent_page) == null ? void 0 : _b.editorJsonData) == null ? void 0 : _c.videoUrl) || ((_e = (_d = this.pageData) == null ? void 0 : _d.editorJsonData) == null ? void 0 : _e.videoUrl) 1343 ); 1344 if (videoId) { 1345 return `https://www.youtube.com/embed/${videoId}?rel=0`; 1346 } else { 1347 return ((_h = (_g = (_f = this.pageData) == null ? void 0 : _f.parent_page) == null ? void 0 : _g.editorJsonData) == null ? void 0 : _h.videoUrl) || ((_j = (_i = this.pageData) == null ? void 0 : _i.editorJsonData) == null ? void 0 : _j.videoUrl); 1348 } 1349 }, 1350 // Keep your original list logic (filters by category when pageData exists, 1351 // else returns all blogs sorted by date) 1352 blogList() { 1353 var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; 1354 let blogs = []; 1355 if ((_a = this.pageData) == null ? void 0 : _a._id) { 1356 let pages = (_c = (_b = this.$store.config) == null ? void 0 : _b.getStoreConfig) == null ? void 0 : _c.pages; 1357 for (let page of pages || []) { 1358 if (!this.$store.auth.loggedIn && (page == null ? void 0 : page.forGuest) === false) continue; 1359 let categories = ((_d = page == null ? void 0 : page.parent_page) == null ? void 0 : _d.contentCategories) || page.contentCategories || []; 1360 if (categories.includes((_e = this.pageData) == null ? void 0 : _e._id)) blogs.push(page); 1361 } 1362 } else if ((_h = (_g = (_f = this.$store.config) == null ? void 0 : _f.getStoreConfig) == null ? void 0 : _g.pages) == null ? void 0 : _h.length) { 1363 blogs = (_k = (_j = (_i = this.$store.config) == null ? void 0 : _i.getStoreConfig) == null ? void 0 : _j.pages) == null ? void 0 : _k.filter((p) => p.type === "blog"); 1364 blogs.sort((a, b) => new Date(b.date) - new Date(a.date)); 1365 } 1366 return blogs; 1367 }, 1368 blogCategories() { 1369 var _a, _b, _c, _d, _e; 1370 let blogChildren = (_d = (_c = (_b = (_a = this.$store.config) == null ? void 0 : _a.getStoreConfig) == null ? void 0 : _b.menus) == null ? void 0 : _c.blogs) == null ? void 0 : _d.children; 1371 let currentPage = this.$findDeep(blogChildren, (c) => { 1372 var _a2; 1373 return (c == null ? void 0 : c.parentPageId) === ((_a2 = this.pageData) == null ? void 0 : _a2._id); 1374 }); 1375 let nestedChildren = (currentPage == null ? void 0 : currentPage.children) || blogChildren || []; 1376 return ((_e = this.pageData) == null ? void 0 : _e.children) || nestedChildren; 1377 } 1378 }, 1379 // Preserve your old behavior that (on prop change) re-renders the blocks client-side. 1380 // Now it will cooperate with useAsyncData (these will just render once data is there). 1381 watch: { 1382 blog_id: { 1383 async handler(blog_id) { 1384 var _a, _b, _c, _d, _e, _f, _g, _h; 1385 let page = null; 1386 if (((_c = (_b = (_a = this.$store.config) == null ? void 0 : _a.getStoreConfig) == null ? void 0 : _b.pages) == null ? void 0 : _c.length) && blog_id) { 1387 page = (_e = (_d = this.$store.config) == null ? void 0 : _d.getStoreConfig) == null ? void 0 : _e.pages.find( 1388 (p) => { 1389 var _a2, _b2, _c2; 1390 return ((p == null ? void 0 : p._id) === blog_id || ((_b2 = (_a2 = p == null ? void 0 : p.parent_page) == null ? void 0 : _a2.seo) == null ? void 0 : _b2.slug) === blog_id || ((_c2 = p == null ? void 0 : p.seo) == null ? void 0 : _c2.slug) === blog_id) && p.t
1390ype === "blog"; 1391 } 1392 ); 1393 } 1394 if (!page) { 1395 let blog_menu = (_h = (_g = (_f = this.$store.config) == null ? void 0 : _f.getStoreConfig) == null ? void 0 : _g.menus) == null ? void 0 : _h.blogs; 1396 page = findDeep(blog_menu, (c) => (c == null ? void 0 : c.link) === blog_id); 1397 } 1398 if (page) this.pageData = (page == null ? void 0 : page.parent_page) || page; 1399 { 1400 this.$nextTick(async () => { 1401 await this.isMounted(); 1402 if (this.blog_id) this.setBlogPage(); 1403 this.setBlogTopPage(); 1404 this.setBlogBottomPage(); 1405 }); 1406 } 1407 }, 1408 immediate: true 1409 }, 1410 // Also react when page data or top/bottom content arrives via useAsyncData 1411 pageData: { 1412 async handler() { 1413 { 1414 this.$nextTick(async () => { 1415 await this.isMounted(); 1416 this.setBlogPage(); 1417 }); 1418 } 1419 }, 1420 immediate: true 1421 }, 1422 blogTop: { 1423 async handler() { 1424 { 1425 this.$nextTick(async () => { 1426 await this.isMounted(); 1427 this.setBlogTopPage(); 1428 }); 1429 } 1430 }, 1431 immediate: true 1432 }, 1433 blogBottom: { 1434 async handler() { 1435 { 1436 this.$nextTick(async () => { 1437 await this.isMounted(); 1438 this.setBlogBottomPage(); 1439 }); 1440 } 1441 }, 1442 immediate: true 1443 } 1444 }, 1445 mounted() { 1446 var _a; 1447 if (!this.$store.auth.loggedIn && ((_a = this.pageData) == null ? void 0 : _a.forGuest) === false) { 1448 return this.$router.push("/login"); 1449 } 1450 this.hasMounted = true; 1451 }, 1452 methods: { 1453 async isMounted() { 1454 if (!this.hasMounted) { 1455 await this.$sleep(100); 1456 return this.isMounted(); 1457 } else { 1458 return true; 1459 } 1460 }, 1461 async setBlogPage() { 1462 var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j; 1463 if (!this.pageData && this.blog_id) { 1464 await this.fetchCmsPage(); 1465 } 1466 if ((_b = (_a = this.pageData) == null ? void 0 : _a.editorJsonData) == null ? void 0 : _b.html) { 1467 { 1468 renderHtml(this.$preserveEmptyPTags((_d = (_c = this.pageData) == null ? void 0 : _c.editorJsonData) == null ? void 0 : _d.html)); 1469 applyCustomerCSS( 1470 ((_f = (_e = this.pageData) == null ? void 0 : _e.editorJsonData) == null ? void 0 : _f.customCSS) || "", 1471 "ordant_customer_page_css" 1472 ); 1473 attachClickListener(this.$refs.htmlContainer, this.onLinkClick); 1474 if ((_h = (_g = this.pageData) == null ? void 0 : _g.editorJsonData) == null ? void 0 : _h.customScript) { 1475 await applyCustomJSPlugins((_j = (_i = this.pageData) == null ? void 0 : _i.editorJsonData) == null ? void 0 : _j.customScript); 1476 } 1477 } 1478 } 1479 }, 1480 onLinkClick(event) { 1481 event.preventDefault(); 1482 const target = event.target.closest("a"); 1483 if (!target) return; 1484 const cleanUrl = window.location.href.split("#")[0]; 1485 window.history.replaceState(null, "", cleanUrl); 1486 const href = target.href; 1487 if (!href) return; 1488 const [action, id] = Object.entries({ 1489 "#redirect_": (redirectUrl) => this.$router.push(redirectUrl), 1490 "#openDrawer_": (drawerId) => this.$store.drawer.openDrawer(drawerId), 1491 "#openModal_": (modalId) => { 1492 const btnTextMap = { trial: "Start A Free Trial", demo: "Schedule A Demo" }; 1493 const btnText = btnTextMap[modalId] || ""; 1494 this.$store.ordantStore.openPopupForm((this._.provides[PageRouteSymbol] || this.$route).name, btnText); 1495 } 1496 }).find(([prefix]) => href.includes(prefix)) || []; 1497 if (action && id) { 1498 const value = href.split(action)[1]; 1499 id(value); 1500 } 1501 }, 1502 async fetchCmsPage() { 1503 var _a; 1504 if (!this.blog_id) return; 1505 const response = await this.$store.cmsPage.getPage(this.blog_id); 1506 let page = ((_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) || {}; 1507 this.pageData = (page == null ? void 0 : page.parent_page) || page; 1508 }, 1509 createStyleTag(styleCss) { 1510 const head = document.head || document.getElementsByTagName("head")[0]; 1511 const style = document.createElement("style"); 1512 head.appendChild(style); 1513 style.appendChild(document.createTextNode(styleCss)); 1514 }, 1515 async setBlogTopPage() { 1516 var _a, _b, _c, _d, _e, _f, _g, _h; 1517 if ((_b = (_a = this.blogTop) == null ? void 0 : _a.editorJsonData) == null ? void 0 : _b.html) { 1518 renderHtml(this.blogTop.editorJsonData.html, "ordant_customer_1"); 1519 applyCustomerCSS( 1520 ((_d = (_c = this.pageData) == null ? void 0 : _c.editorJsonData) == null ? void 0 : _d.customCSS) || "", 1521 "ordant_customer_page_cssTop" 1522 ); 1523 attachClickListener(this.$refs.htmlContainer1, this.onLinkClick); 1524 if ((_f = (_e = this.pageData) == null ? void 0 : _e.editorJsonData) == null ? void 0 : _f.customScript) { 1525 await applyCustomJSPlugins((_h = (_g = this.pageData) == null ? void 0 : _g.editorJsonData) == null ? void 0 : _h.customScript); 1526 } 1527 } 1528 }, 1529 async setBlogBottomPage() { 1530 var _a, _b, _c, _d, _e, _f, _g, _h; 1531 if ((_b = (_a = this.blogBottom) == null ? void 0 : _a.editorJsonData) == null ? void 0 : _b.html) { 1532 renderHtml(this.blogBottom.editorJsonData.html, "ordant_customer_2"); 1533 applyCustomerCSS( 1534 ((_d = (_c = this.pageData) == null ? void 0 : _c.editorJsonData) == null ? void 0 : _d.customCSS) || "", 1535 "ordant_customer_page_cssBot" 1536 ); 1537 attachClickListener(this.$refs.htmlContainer2, this.onLinkClick); 1538 if ((_f = (_e = this.pageData) == null ? void 0 : _e.editorJsonData) == null ? void 0 : _f.customScript) { 1539 await applyCustomJSPlugins((_h = (_g = this.pageData) == null ? void 0 : _g.editorJsonData) == null ? void 0 : _h.customScript); 1540 } 1541 } 1542 } 1543 } 1544 }, 1545 "$wsYobsZ5pU" 1546 /* nuxt-injected */ 1547); 1548const _hoisted_1$2 = { class: "page blog-page mx-auto w-screen max-w-[1440px]" }; 1549const _hoisted_2$2 = { 1550 key: 0, 1551 class: "mx-auto grid w-full max-w-[1440px] justify-items-center gap-8" 1552}; 1553const _hoisted_3$1 = { 1554 id: "ordant_customer_1", 1555 ref: "htmlContainer1", 1556 class: "gap-page grid w-full" 1557}; 1558const _hoisted_4$1 = ["innerHTML"]; 1559const _hoisted_5 = { class: "relative mx-auto grid w-full max-w-[1440px] justify-items-center gap-8 lg:grid-cols-[1fr,387px]" }; 1560const _hoisted_6 = { class: "gap-section mx-auto grid w-full max-w-[778px]" }; 1561const _hoisted_7 = { class: "gap-section grid" }; 1562const _hoisted_8 = ["src", "alt"]; 1563const _hoisted_9 = { 1564 id: "ordant_customer", 1565 ref: "htmlContainer", 1566 class: "" 1567}; 1568const _hoisted_10 = ["innerHTML"]; 1569const _hoisted_11 = { class: "sticky top-0 hidden w-full lg:flex" }; 1570const _hoisted_12 = { 1571 key: 1, 1572 class: "aspect-h-9 aspect-w-16 relative w-full" 1573}; 1574const _hoisted_13 = ["src"]; 1575const _hoisted_14 = { 1576 id: "ordant_customer_2", 1577 ref: "htmlContainer2", 1578 class: "gap-page grid w-full" 1579}; 1580const _hoisted_15 = ["innerHTML"]; 1581function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { 1582 var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N;
1583 const _component_PageHeaderBlog = resolveComponent("PageHeaderBlog"); 1584 const _component_RandomBlogCta = resolveComponent("RandomBlogCta"); 1585 const _component_BlogList = resolveComponent("BlogList"); 1586 return openBlock(), createElementBlock("div", _hoisted_1$2, [ 1587 !_ctx.blog_id ? (openBlock(), createElementBlock("div", _hoisted_2$2, [ 1588 createBaseVNode("div", _hoisted_3$1, [ 1589 withDirectives(createBaseVNode("div", null, [ 1590 createBaseVNode("div", { 1591 innerHTML: _ctx.$preserveEmptyPTags((_b = (_a = _ctx.blogTop) == null ? void 0 : _a.editorJsonData) == null ? void 0 : _b.html) 1592 }, null, 8, _hoisted_4$1) 1593 ], 512), [ 1594 [vShow, _ctx.isServer && ((_d = (_c = _ctx.blogTop) == null ? void 0 : _c.editorJsonData) == null ? void 0 : _d.html)] 1595 ]) 1596 ], 512) 1597 ])) : createCommentVNode("", true), 1598 withDirectives(createVNode(_component_PageHeaderBlog, { 1599 title: (_e = _ctx.pageData) == null ? void 0 : _e.title, 1600 subtitle: `${((_f = _ctx.pageData) == null ? void 0 : _f.author) ? ((_g = _ctx.pageData) == null ? void 0 : _g.author) + "," : ""} ${((_h = _ctx.pageData) == null ? void 0 : _h.type) === "page_category" ? "" : _ctx.$moment((_i = _ctx.pageData) == null ? void 0 : _i.date).format("DD-MMMM-YYYY")}` 1601 }, null, 8, ["title", "subtitle"]), [ 1602 [vShow, ((_j = _ctx.pageData) == null ? void 0 : _j.title) && !((_l = (_k = _ctx.blogTop) == null ? void 0 : _k.editorJsonData) == null ? void 0 : _l.html)] 1603 ]), 1604 withDirectives(createBaseVNode("div", _hoisted_5, [ 1605 withDirectives(createBaseVNode("div", _hoisted_6, [ 1606 createBaseVNode("div", _hoisted_7, [ 1607 createBaseVNode("h1", null, toDisplayString((_m = _ctx.pageData) == null ? void 0 : _m.title), 1), 1608 createBaseVNode("div", null, [ 1609 createBaseVNode("img", { 1610 src: _ctx.$displayImage((_n = _ctx.pageData) == null ? void 0 : _n.thumbnail), 1611 alt: ((_o = _ctx.pageData) == null ? void 0 : _o.subtitle) || ((_p = _ctx.pageData) == null ? void 0 : _p.title) 1612 }, null, 8, _hoisted_8) 1613 ]) 1614 ]), 1615 createBaseVNode("div", _hoisted_9, [ 1616 withDirectives(createBaseVNode("div", null, [ 1617 createBaseVNode("div", { 1618 innerHTML: _ctx.$preserveEmptyPTags((_r = (_q = _ctx.pageData) == null ? void 0 : _q.editorJsonData) == null ? void 0 : _r.html) 1619 }, null, 8, _hoisted_10) 1620 ], 512), [ 1621 [vShow, _ctx.isServer && ((_t = (_s = _ctx.pageData) == null ? void 0 : _s.editorJsonData) == null ? void 0 : _t.html)] 1622 ]) 1623 ], 512) 1624 ], 512), [ 1625 [vShow, (_v = (_u = _ctx.pageData) == null ? void 0 : _u.editorJsonData) == null ? void 0 : _v.html] 1626 ]), 1627 withDirectives(createBaseVNode("div", _hoisted_11, [ 1628 createVNode(_component_RandomBlogCta) 1629 ], 512), [ 1630 [vShow, !_ctx.isServer && ((_x = (_w = _ctx.pageData) == null ? void 0 : _w.editorJsonData) == null ? void 0 : _x.html)] 1631 ]) 1632 ], 512), [ 1633 [vShow, (_z = (_y = _ctx.pageData) == null ? void 0 : _y.editorJsonData) == null ? void 0 : _z.html] 1634 ]), 1635 ((_C = (_B = (_A = _ctx.pageData) == null ? void 0 : _A.parent_page) == null ? void 0 : _B.editorJsonData) == null ? void 0 : _C.videoUrl) || ((_E = (_D = _ctx.pageData) == null ? void 0 : _D.editorJsonData) == null ? void 0 : _E.videoUrl) ? (openBlock(), createElementBlock("div", _hoisted_12, [ 1636 createBaseVNode("iframe", { 1637 src: _ctx.computedVideoUrl, 1638 allow: "fullscreen;", 1639 class: "absolute left-0 top-0 h-full w-full" 1640 }, null, 8, _hoisted_13) 1641 ])) : createCommentVNode("", true), 1642 ((_F = _ctx.blogList) == null ? void 0 : _F.length) || ((_G = _ctx.blogCategories) == null ? void 0 : _G.length) ? (openBlock(), createBlock(_component_BlogList, { 1643 key: 2, 1644 showTitle: !!((_I = (_H = _ctx.pageData) == null ? void 0 : _H.parent_page) == null ? void 0 : _I.editorJsonData) || !!((_J = _ctx.pageData) == null ? void 0 : _J.editorJsonData), 1645 blogCategories: _ctx.blogCategories, 1646 blogs: _ctx.blogList 1647 }, null, 8, ["showTitle", "blogCategories", "blogs"])) : createCommentVNode("", true), 1648 createBaseVNode("div", _hoisted_14, [ 1649 withDirectives(createBaseVNode("div", null, [ 1650 createBaseVNode("div", { 1651 innerHTML: _ctx.$preserveEmptyPTags((_L = (_K = _ctx.blogBottom) == null ? void 0 : _K.editorJsonData) == null ? void 0 : _L.html) 1652 }, null, 8, _hoisted_15) 1653 ], 512), [ 1654 [vShow, _ctx.isServer && ((_N = (_M = _ctx.blogBottom) == null ? void 0 : _M.editorJsonData) == null ? void 0 : _N.html)] 1655 ]) 1656 ], 512) 1657 ]); 1658} 1659const __nuxt_component_0 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-cf1413c1"]]), { __name: "BlogPage" }); 1660const _sfc_main$1 = defineNuxtComponent( 1661 { 1662 name: "FAQPage", 1663 components: { SFButton, PageHeader, FAQList }, 1664 props: { 1665 FAQ_id: { type: String } 1666 }, 1667 // Reactive data fetching that cooperates with Nuxt prefetching 1668 setup(props) { 1669 var _a; 1670 const route = useRoute(); 1671 const { $store } = useNuxtApp(); 1672 const faqId = computed(() => { 1673 var _a2; 1674 return (_a2 = props.FAQ_id) != null ? _a2 : route.params.pageId; 1675 }); 1676 const pagesKey = computed(() => { 1677 var _a2, _b, _c; 1678 return ((_c = (_b = (_a2 = $store.config) == null ? void 0 : _a2.getStoreConfig) == null ? void 0 : _b.pages) == null ? void 0 : _c.length) || 0; 1679 }); 1680 const pageData = ref(null); 1681 const { data, pending, error } = useAsyncData( 1682 () => `faq:${faqId.value}:${pagesKey.value}`, 1683 async () => { 1684 var _a2, _b; 1685 const cfg = ((_a2 = $store.config) == null ? void 0 : _a2.getStoreConfig) || {}; 1686 const pages = cfg.pages || []; 1687 const id = faqId.value; 1688 let page = null; 1689 if (pages.length && id) { 1690 page = pages.find( 1691 (p) => { 1692 var _a3, _b2, _c, _d, _e, _f, _g; 1693 return (((_b2 = (_a3 = p == null ? void 0 : p.parent_page) == null ? void 0 : _a3.type) == null ? void 0 : _b2.includes("kb")) || ((_d = (_c = p == null ? void 0 : p.parent_page) == null ? void 0 : _c.type) == null ? void 0 : _d.includes("knowledge-base"))) && ((p == null ? void 0 : p._id) === id || ((_f = (_e = p == null ? void 0 : p.parent_page) == null ? void 0 : _e.seo) == null ? void 0 : _f.slug) === id || ((_g = p == null ? void 0 : p.seo) == null ? void 0 : _g.slug) === id); 1694 } 1695 ); 1696 } 1697 if (!page) {
1698 const kb_menu = (_b = cfg.menus) == null ? void 0 : _b.knowledgeBases; 1699 page = findDeep(kb_menu, (c) => (c == null ? void 0 : c.link) === id); 1700 } 1701 return { pageData: (page == null ? void 0 : page.parent_page) || page || null, seoSource: page || null }; 1702 }, 1703 { watch: [faqId, pagesKey] } 1704 ); 1705 watchEffect(() => { 1706 var _a2; 1707 pageData.value = ((_a2 = data.value) == null ? void 0 : _a2.pageData) || null; 1708 }); 1709 const siteSeo = ((_a = useRuntimeConfig().public) == null ? void 0 : _a.seo) || {}; 1710 const kbSeo = computed(() => { 1711 var _a2; 1712 const source = ((_a2 = data.value) == null ? void 0 : _a2.seoSource) || pageData.value; 1713 const seo = source ? pickPageSeo(source) : null; 1714 if (seo == null ? void 0 : seo.title) { 1715 return seo; 1716 } 1717 if (!faqId.value) { 1718 const site = siteSeo.siteName ? ` | ${siteSeo.siteName}` : ""; 1719 return { 1720 title: `Knowledge Base${site}`, 1721 description: siteSeo.siteName ? `Help articles, answers and product guides from ${siteSeo.siteName}.` : "Help articles, answers and product guides.", 1722 keywords: "" 1723 }; 1724 } 1725 return seo; 1726 }); 1727 useHead(() => { 1728 const seo = kbSeo.value; 1729 if (!seo) { 1730 return {}; 1731 } 1732 return { 1733 title: seo.title, 1734 meta: [ 1735 { hid: "description", name: "description", content: seo.description }, 1736 { hid: "keywords", name: "keywords", content: seo.keywords }, 1737 ...buildSocialMeta({ 1738 title: seo.title, 1739 description: seo.description, 1740 siteName: siteSeo.siteName, 1741 type: "article" 1742 }) 1743 ] 1744 }; 1745 }); 1746 const isServer = false; 1747 return { pageData, pending, error, isServer }; 1748 }, 1749 data() { 1750 return {}; 1751 }, 1752 computed: { 1753 computedVideoUrl() { 1754 var _a, _b, _c, _d, _e; 1755 const v = ((_c = (_b = (_a = this.pageData) == null ? void 0 : _a.parent_page) == null ? void 0 : _b.editorJsonData) == null ? void 0 : _c.videoUrl) || ((_e = (_d = this.pageData) == null ? void 0 : _d.editorJsonData) == null ? void 0 : _e.videoUrl); 1756 const videoId = this.$extractYoutubeVideoId(v); 1757 return videoId ? `https://www.youtube.com/embed/${videoId}?rel=0` : v; 1758 }, 1759 // Preserve original FAQ aggregation logic 1760 FAQList() { 1761 var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j; 1762 let faqs = []; 1763 if ((_a = this.pageData) == null ? void 0 : _a._id) { 1764 const pages = ((_c = (_b = this.$store.config) == null ? void 0 : _b.getStoreConfig) == null ? void 0 : _c.pages) || []; 1765 for (const page of pages) { 1766 if (!this.$store.auth.loggedIn && (page == null ? void 0 : page.forGuest) === false) continue; 1767 const categories = ((_d = page == null ? void 0 : page.parent_page) == null ? void 0 : _d.contentCategories) || page.contentCategories || []; 1768 if (categories && categories.includes((_e = this.pageData) == null ? void 0 : _e._id)) { 1769 faqs.push(page); 1770 } 1771 } 1772 const contentCategories = ((_f = this.pageData) == null ? void 0 : _f.contentCategories) || ((_h = (_g = this.pageData) == null ? void 0 : _g.parent_page) == null ? void 0 : _h.contentCategories); 1773 if (!(contentCategories == null ? void 0 : contentCategories.length)) return faqs; 1774 const faqPages = ((_j = (_i = this.$store.config) == null ? void 0 : _i.getStoreConfig) == null ? void 0 : _j.pages) || []; 1775 if (!faqPages.length) return faqs; 1776 const faqCategoryPages = findDeepAll( 1777 faqPages, 1778 (c) => { 1779 var _a2, _b2, _c2; 1780 return ((_a2 = c == null ? void 0 : c.parent_page) == null ? void 0 : _a2.contentCategories) && ((_c2 = c == null ? void 0 : c.parent_page) == null ? void 0 : _c2.contentCategories.includes((_b2 = this.$store.kbStore.currentCategory) == null ? void 0 : _b2._id)); 1781 } 1782 ); 1783 faqs = faqCategoryPages; 1784 } 1785 return faqs; 1786 }, 1787 faqCategories() { 1788 var _a, _b, _c, _d, _e; 1789 const faqChildren = (_d = (_c = (_b = (_a = this.$store.config) == null ? void 0 : _a.getStoreConfig) == null ? void 0 : _b.menus) == null ? void 0 : _c.knowledgeBases) == null ? void 0 : _d.children; 1790 const currentPage = this.$findDeep(faqChildren, (c) => { 1791 var _a2; 1792 return (c == null ? void 0 : c.parentPageId) === ((_a2 = this.pageData) == null ? void 0 : _a2._id); 1793 }); 1794 const nestedChildren = (currentPage == null ? void 0 : currentPage.children) || faqChildren || []; 1795 return ((_e = this.pageData) == null ? void 0 : _e.children) || nestedChildren; 1796 }, 1797 template() { 1798 var _a, _b; 1799 if ((_b = (_a = this.pageData) == null ? void 0 : _a.editorJsonData) == null ? void 0 : _b.html) { 1800 return "<div class='temp_wrapper'>" + this.pageData.editorJsonData.html.replace( 1801 "<script>", 1802 '<script type="application/javascript">' 1803 ) + "</div>"; 1804 } 1805 return null; 1806 } 1807 }, 1808 watch: { 1809 // Keep prop-driven client-side rendering 1810 FAQ_id: { 1811 handler(page_id) { 1812 if (page_id) { 1813 this.$nextTick(() => this.setFAQPage()); 1814 } 1815 }, 1816 immediate: true 1817 }, 1818 // Also render when data resolves 1819 pageData: { 1820 handler() { 1821 { 1822 this.$nextTick(() => this.setFAQPage()); 1823 } 1824 }, 1825 immediate: true 1826 } 1827 }, 1828 mounted() { 1829 var _a; 1830 if (!this.$store.auth.loggedIn && ((_a = this.pageData) == null ? void 0 : _a.forGuest) === false) { 1831 return this.$router.push("/login"); 1832 } 1833 }, 1834 methods: { 1835 async setFAQPage() { 1836 var _a, _b; 1837 if (!((_b = (_a = this.pageData) == null ? void 0 : _a.editorJsonData) == null ? void 0 : _b.html)) return; 1838 { 1839 renderHtml(this.pageData.editorJsonData.html); 1840 renderStyles(this.pageData.editorJsonData.mainCss, this.pageData.editorJsonData.sectionCss); 1841 } 1842 }, 1843 // kept for parity in case you need manual fetch 1844 async fetchCmsPage() { 1845 var _a; 1846 if (!this.FAQ_id) return; 1847 const response = await this.$store.cmsPage.getPage(this.FAQ_id); 1848 const page = ((_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) || {}; 1849 this.pageData = (page == null ? void 0 : page.parent_page) || page; 1850 }, 1851 createStyleTag(styleCss) { 1852 const head = document.head || document.getElementsByTagName("head")[0]; 1853 const style = document.createElement("style"); 1854 head.appendChild(style); 1855 style.appendChild(document.createTextNode(styleCss)); 1856 } 1857 } 1858 }, 1859 "$Mbue1yZ8Mo" 1860 /* nuxt-injected */ 1861); 1862const _hoisted_1$1 = { 1863 id: "ordant_customer", 1864 class: "ordant-customer p-4" 1865}; 1866const _hoisted_2$1 = ["innerHTML"]; 1867const _hoisted_3 = { 1868 key: 0, 1869 class: "aspect-h-9 aspect-w-16 relative w-full" 1870}; 1871const _hoisted_4 = ["src"]; 1872function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { 1873 var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
1874 const _component_PageHeader = resolveComponent("PageHeader"); 1875 const _component_SFButton = resolveComponent("SFButton"); 1876 const _component_FAQList = resolveComponent("FAQList"); 1877 return openBlock(), createElementBlock("div", null, [ 1878 createVNode(_component_PageHeader, { 1879 title: ((_a = _ctx.pageData) == null ? void 0 : _a.title) || "Help", 1880 hideSubtitle: "", 1881 subtitle: `${_ctx.$moment((_b = _ctx.pageData) == null ? void 0 : _b.date).format("DD-MMMM-YYYY")}` 1882 }, null, 8, ["title", "subtitle"]), 1883 createVNode(_component_SFButton, { 1884 class: "!ml-0 max-w-[150px] !py-0", 1885 iconClass: "fal fa-arrow-left", 1886 showIcon: "", 1887 btnClass: "default", 1888 btnText: "Back", 1889 onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.go(-1)) 1890 }), 1891 createBaseVNode("div", _hoisted_1$1, [ 1892 withDirectives(createBaseVNode("div", null, [ 1893 createBaseVNode("div", { 1894 innerHTML: (_d = (_c = _ctx.pageData) == null ? void 0 : _c.editorJsonData) == null ? void 0 : _d.html 1895 }, null, 8, _hoisted_2$1) 1896 ], 512), [ 1897 [vShow, _ctx.isServer && ((_f = (_e = _ctx.pageData) == null ? void 0 : _e.editorJsonData) == null ? void 0 : _f.html)] 1898 ]) 1899 ]), 1900 ((_i = (_h = (_g = _ctx.pageData) == null ? void 0 : _g.parent_page) == null ? void 0 : _h.editorJsonData) == null ? void 0 : _i.videoUrl) || ((_k = (_j = _ctx.pageData) == null ? void 0 : _j.editorJsonData) == null ? void 0 : _k.videoUrl) ? (openBlock(), createElementBlock("div", _hoisted_3, [ 1901 createBaseVNode("iframe", { 1902 src: _ctx.computedVideoUrl, 1903 allow: "fullscreen;", 1904 class: "absolute left-0 top-0 h-full w-full" 1905 }, null, 8, _hoisted_4) 1906 ])) : createCommentVNode("", true), 1907 ((_m = (_l = _ctx.pageData) == null ? void 0 : _l.editorJsonData) == null ? void 0 : _m.html) ? (openBlock(), createBlock(_component_SFButton, { 1908 key: 1, 1909 class: "!ml-0 max-w-[150px]", 1910 iconClass: "fal fa-arrow-left", 1911 showIcon: "", 1912 btnClass: "default", 1913 btnText: "Back", 1914 onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$router.go(-1)) 1915 })) : createCommentVNode("", true), 1916 ((_n = _ctx.FAQList) == null ? void 0 : _n.length) || ((_o = _ctx.faqCategories) == null ? void 0 : _o.length) ? (openBlock(), createBlock(_component_FAQList, { 1917 key: 2, 1918 pageData: _ctx.pageData, 1919 showTitle: !!((_q = (_p = _ctx.pageData) == null ? void 0 : _p.parent_page) == null ? void 0 : _q.editorJsonData) || !!((_r = _ctx.pageData) == null ? void 0 : _r.editorJsonData), 1920 faqCategories: _ctx.faqCategories, 1921 faqs: _ctx.FAQList 1922 }, null, 8, ["pageData", "showTitle", "faqCategories", "faqs"])) : createCommentVNode("", true), 1923 ((_t = (_s = _ctx.pageData) == null ? void 0 : _s.editorJsonData) == null ? void 0 : _t.html) ? (openBlock(), createBlock(_component_SFButton, { 1924 key: 3, 1925 class: "!ml-0 max-w-[150px]", 1926 iconClass: "fal fa-arrow-left", 1927 showIcon: "", 1928 btnClass: "default", 1929 btnText: "Back", 1930 onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$router.go(-1)) 1931 })) : createCommentVNode("", true) 1932 ]); 1933} 1934const __nuxt_component_1 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-ed8349a2"]]), { __name: "FAQPage" }); 1935const _sfc_main = defineNuxtComponent( 1936 { 1937 name: "CustomPageCMS", 1938 components: { CmsPage: __nuxt_component_2, BlogPage: __nuxt_component_0, FAQPage: __nuxt_component_1 }, 1939 // NEW: use setup()+useAsyncData so route params are the target ones during prefetch 1940 setup() { 1941 const route = useRoute(); 1942 const { $store } = useNuxtApp(); 1943 const cmsPage = computed(() => { 1944 var _a; 1945 return (_a = route.params.cmsPage) != null ? _a : "home"; 1946 }); 1947 const pageId = computed(() => route.params.pageId); 1948 const { data, pending, error } = useAsyncData( 1949 () => { 1950 var _a; 1951 return `cms:${cmsPage.value}:${(_a = pageId.value) != null ? _a : ""}`; 1952 }, 1953 async () => { 1954 var _a, _b; 1955 const pages = (_b = (_a = $store.config) == null ? void 0 : _a.getStoreConfig) == null ? void 0 : _b.pages; 1956 let page = null; 1957 if (pages) { 1958 page = pages.find( 1959 (p) => { 1960 var _a2, _b2, _c; 1961 return ((_a2 = p == null ? void 0 : p.seo) == null ? void 0 : _a2.slug) === cmsPage.value || ((_c = (_b2 = p == null ? void 0 : p.parent_page) == null ? void 0 : _b2.seo) == null ? void 0 : _c.slug) === cmsPage.value; 1962 } 1963 ); 1964 } 1965 return { pageData: (page == null ? void 0 : page.parent_page) || page || {} }; 1966 }, 1967 { watch: [cmsPage, pageId] } 1968 ); 1969 const applyCurrentType = () => { 1970 var _a, _b, _c, _d; 1971 const pages = (_b = (_a = $store.config) == null ? void 0 : _a.getStoreConfig) == null ? void 0 : _b.pages; 1972 if (pages == null ? void 0 : pages.length) { 1973 const p = pages.find( 1974 (p2) => { 1975 var _a2, _b2, _c2, _d2, _e, _f; 1976 return ((_a2 = p2 == null ? void 0 : p2.seo) == null ? void 0 : _a2.slug) === cmsPage.value || ((_c2 = (_b2 = p2 == null ? void 0 : p2.parent_page) == null ? void 0 : _b2.seo) == null ? void 0 : _c2.slug) === cmsPage.value || pageId.value && (((_d2 = p2 == null ? void 0 : p2.seo) == null ? void 0 : _d2.slug) === pageId.value || ((_f = (_e = p2 == null ? void 0 : p2.parent_page) == null ? void 0 : _e.seo) == null ? void 0 : _f.slug) === pageId.value); 1977 } 1978 ); 1979 (_d = (_c = $store.config).setCurrentPageType) == null ? void 0 : _d.call(_c, p == null ? void 0 : p.type); 1980 } 1981 }; 1982 watch(() => { 1983 var _a, _b; 1984 return (_b = (_a = $store.config) == null ? void 0 : _a.getStoreConfig) == null ? void 0 : _b.pages; 1985 }, applyCurrentType, { immediate: true }); 1986 watch([cmsPage, pageId], applyCurrentType); 1987 const pageData = computed(() => { 1988 var _a; 1989 return (_a = data.value) == null ? void 0 : _a.pageData; 1990 }); 1991 return { pageData, pending, error }; 1992 }, 1993 // Keep your existing computed intact 1994 computed: { 1995 isBlog() { 1996 var _a, _b, _c, _d; 1997 if ((_b = (_a = this.$store.config) == null ? void 0 : _a.getStoreConfig) == null ? void 0 : _b.pages) { 1998 let page = (_d = (_c = this.$store.config) == null ? void 0 : _c.getStoreConfig) == null ? void 0 : _d.pages.find( 1999 (p) => { 2000 var _a2, _b2, _c2; 2001 return ((_a2 = p == null ? void 0 : p.seo) == null ? void 0 : _a2.slug) === (this._.provides[PageRouteSymbol] || this.$route).params.cmsPage || ((_c2 = (_b2 = p == null ? void 0 : p.parent_page) == null ? void 0 : _b2.seo) == null ? void 0 : _c2.slug) === (this._.provides[PageRouteSymbol] || this.$route).params.cmsPage; 2002 } 2003 ); 2004 if ((page == null ? void 0 : page.isActive) && (page == null ? void 0 : page.type) === "blog") { 2005 return true; 2006 } 2007 } 2008 return (this._.provides[PageRouteSymbol] || this.$route).params.cmsPage === "blog"; 2009 } 2010 } 2011 }, 2012 "$Fucq-Z7iPl" 2013 /* nuxt-injected */ 2014); 2015const _hoisted_1 = { class: "grid w-screen max-w-full" }; 2016const _hoisted_2 = { key: 0 }; 2017function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { 2018 var _a, _b, _c, _d, _e; 2019 const _component_BlogPage = __nuxt_component_0; 2020 const _component_FAQPage = __nuxt_component_1; 2021 const _component_CmsPage = __nuxt_component_2; 2022 return openBlock(), createElementBlock("div", _hoisted_1, [ 2023 ((_b = (_a = _ctx.$store.config) == null ? void 0 : _a.getStoreConfig) == null ? void 0 : _b.pages) ? (openBlock(), createElementBlock("div", _hoisted_2, [ 2024 (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params.cmsPage === "blog" || _ctx.isBlog || ((_c = _ctx.pageData) == null ? void 0 : _c.type) === "blog" ? (openBlock(), createBlock(_component_BlogPage, { 2025 key: 0, 2026 blog_id: (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params.cmsPage !== "blog" ? (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params.cmsPage : (_d = (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params) == null ? void 0 : _d.pageId 2027 }, null, 8, ["blog_id"])) : (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params.cmsPage === "kb" ? (openBlock(), createBlock(_component_FAQPage, { 2028 key: 1, 2029 FAQ_id: (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params.pageId 2030 }, null, 8, ["FAQ_id"])) : (openBlock(), createBlock(_component_CmsPage, { 2031 key: 2, 2032 slug: ["feature", "module", "features", "modules"].includes((_ctx._.provides[PageRouteSymbol] || _ctx.$route).params.cmsPage) ? ((_e = (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params) == null ? void 0 : _e.pageId) || (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params.cmsPage : (_ctx._.provides[PageRouteSymbol] || _ctx.$route).params.cmsPage 2033 }, null, 8, ["slug"])) 2034 ])) : createCommentVNode("", true) 2035 ]); 2036} 2037const __pageId__ = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); 2038export { 2039 __pageId__ as default 2040};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.