1(function() { 2 try { 3 var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}; 4 e.SENTRY_RELEASE = { id: "b96dc26" }; 5 var n = new e.Error().stack; 6 n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "be38fc67-a1c4-4b67-8205-62d70ac5f905", e._sentryDebugIdIdentifier = "sentry-dbid-be38fc67-a1c4-4b67-8205-62d70ac5f905"); 7 } catch (e) {} 8})(); 9import { n as __esmMin } from "./rolldown-runtime-sLwMD6dS.js"; 10import { $s as visit, Js as init_turbo, M as init_currency_helper, Os as Checkbox, j as CurrencyHelper, ks as init_checkbox } from "./controllers-jdPQjaCB.js"; 11import { i as require_compiler_runtime, t as require_jsx_runtime } from "./jsx-runtime-CHSMGLHp.js"; 12import { t as require_react } from "./react-CrLPhuc5.js"; 13import { n as init_icon, t as Icon } from "./icon-BNzYbsdJ.js"; 14import { r as init_button, t as Button } from "./button-DOiPZHfy.js"; 15import { cn as PageHeaderActions, fn as PageHeaderHeading, hn as init_page_header, mn as PageHeaderTitle, sn as PageHeader } from "./turbo-mount-DM0tFk1M.js"; 16import { c as EmptyStateImage, d as init_empty_state, i as EmptyStateContent, l as EmptyStateTitle, n as EmptyStateActions, t as EmptyState } from "./empty-state-Crv2GUlN.js"; 17import { i as init_avatar, n as AvatarFallback, r as AvatarImage, t as Avatar } from "./avatar-CNLP-wOW.js"; 18import { a as init_dist, l as router, s as usePage, t as Head_default } from "./dist-ZlUHm0R7.js"; 19import { r as init_AppLayout, t as AppLayout } from "./AppLayout-KSwds5qH.js"; 20import { n as useFlashMessages, t as init_useFlashMessages } from "./useFlashMessages-CaMVzoCv.js"; 21import { n as useLegacyBodyClass, t as init_useLegacyBodyClass } from "./useLegacyBodyClass-D667Iu64.js"; 22import { i as init_FilterPanel, t as FilterApplyButton } from "./FilterPanel-CpIyVxQv.js"; 23import { i as markOnboardingStepSeen, n as init_SequencesSubmenu, r as init_onboardingSteps, t as SequencesSubmenu } from "./SequencesSubmenu-CPPYbJ2m.js"; 24//#region app/frontend/pages/MessageTemplates/TemplatesMemberFilter.tsx 25function TemplatesMemberFilter(t0) { 26 const $ = (0, import_compiler_runtime$2.c)(27); 27 const { options, selectedUserIds, onApply } = t0; 28 const [open, setOpen] = (0, import_react$1.useState)(false); 29 let t1; 30 if ($[0] !== selectedUserIds) { 31 t1 = () => new Set(selectedUserIds); 32 $[0] = selectedUserIds; 33 $[1] = t1; 34 } else t1 = $[1]; 35 const [selected, setSelected] = (0, import_react$1.useState)(t1); 36 const containerRef = (0, import_react$1.useRef)(null); 37 let t2; 38 if ($[2] !== selectedUserIds) { 39 t2 = selectedUserIds.join("|"); 40 $[2] = selectedUserIds; 41 $[3] = t2; 42 } else t2 = $[3]; 43 const applied = t2; 44 let t3; 45 let t4; 46 if ($[4] !== applied) { 47 t3 = () => { 48 setSelected(new Set(applied ? applied.split("|") : [])); 49 }; 50 t4 = [applied]; 51 $[4] = applied; 52 $[5] = t3; 53 $[6] = t4; 54 } else { 55 t3 = $[5]; 56 t4 = $[6]; 57 } 58 (0, import_react$1.useEffect)(t3, t4); 59 let t5; 60 let t6; 61 if ($[7] !== open) { 62 t5 = () => { 63 if (!open) return; 64 const onMouseDown = function onMouseDown(event) { 65 if (containerRef.current && !containerRef.current.contains(event.target)) setOpen(false); 66 }; 67 document.addEventListener("mousedown", onMouseDown); 68 return () => document.removeEventListener("mousedown", onMouseDown); 69 }; 70 t6 = [open]; 71 $[7] = open; 72 $[8] = t5; 73 $[9] = t6; 74 } else { 75 t5 = $[8]; 76 t6 = $[9]; 77 } 78 (0, import_react$1.useEffect)(t5, t6); 79 let t7; 80 if ($[10] === Symbol.for("react.memo_cache_sentinel")) { 81 t7 = function toggle(value) { 82 setSelected((prev) => { 83 const next = new Set(prev); 84 if (next.has(value)) next.delete(value); 85 else next.add(value); 86 return next; 87 }); 88 }; 89 $[10] = t7; 90 } else t7 = $[10]; 91 const toggle = t7; 92 let t8; 93 if ($[11] !== onApply || $[12] !== selected) { 94 t8 = function apply() { 95 onApply(Array.from(selected)); 96 setOpen(false); 97 }; 98 $[11] = onApply; 99 $[12] = selected; 100 $[13] = t8; 101 } else t8 = $[13]; 102 const apply = t8; 103 let t10; 104 let t11; 105 let t9; 106 if ($[14] === Symbol.for("react.memo_cache_sentinel")) { 107 t9 = () => setOpen(_temp$1); 108 t10 = t$2("js.message_templates.index.team_member"); 109 t11 = /* @__PURE__ */ (0, import_jsx_runtime$2.jsx)(Icon, { 110 icon: "angle-down", 111 "aria-hidden": "true" 112 }); 113 $[14] = t10; 114 $[15] = t11; 115 $[16] = t9; 116 } else { 117 t10 = $[14]; 118 t11 = $[15]; 119 t9 = $[16]; 120 } 121 let t12; 122 if ($[17] !== open) { 123 t12 = /* @__PURE__ */ (0, import_jsx_runtime$2.jsxs)(Button, { 124 size: "sm", 125 className: "h-filter__button", 126 "aria-expanded": open, 127 onClick: t9, 128 children: [t10, t11] 129 }); 130 $[17] = open; 131 $[18] = t12; 132 } else t12 = $[18]; 133 let t13; 134 if ($[19] !== apply || $[20] !== open || $[21] !== options || $[22] !== selected) {
135 t13 = open && /* @__PURE__ */ (0, import_jsx_runtime$2.jsxs)("div", { 136 className: "dropdown-menu show", 137 children: [/* @__PURE__ */ (0, import_jsx_runtime$2.jsx)("ul", { 138 className: "dropdown-menu__list--scrollable", 139 children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime$2.jsx)("li", { 140 className: "dropdown-item", 141 children: /* @__PURE__ */ (0, import_jsx_runtime$2.jsxs)("label", { 142 className: "d-flex align-items-center gap-2 w-100", 143 children: [/* @__PURE__ */ (0, import_jsx_runtime$2.jsx)(Checkbox, { 144 checked: selected.has(option.value), 145 onChange: () => toggle(option.value) 146 }), option.label] 147 }) 148 }, option.value)) 149 }), /* @__PURE__ */ (0, import_jsx_runtime$2.jsx)(FilterApplyButton, { 150 onClick: apply, 151 children: t$2("js.message_templates.index.apply_filters") 152 })] 153 }); 154 $[19] = apply; 155 $[20] = open; 156 $[21] = options; 157 $[22] = selected; 158 $[23] = t13; 159 } else t13 = $[23]; 160 let t14; 161 if ($[24] !== t12 || $[25] !== t13) { 162 t14 = /* @__PURE__ */ (0, import_jsx_runtime$2.jsx)("div", { 163 className: "h-filter", 164 ref: containerRef, 165 children: /* @__PURE__ */ (0, import_jsx_runtime$2.jsxs)("div", { 166 className: "dropdown", 167 children: [t12, t13] 168 }) 169 }); 170 $[24] = t12; 171 $[25] = t13; 172 $[26] = t14; 173 } else t14 = $[26]; 174 return t14; 175} 176function _temp$1(value_0) { 177 return !value_0; 178} 179var import_compiler_runtime$2, import_react$1, import_jsx_runtime$2, t$2; 180function init_TemplatesMemberFilter() { 181 return (init_TemplatesMemberFilter = __esmMin((() => { 182 import_compiler_runtime$2 = require_compiler_runtime(); 183 import_react$1 = require_react(); 184 init_FilterPanel(); 185 init_button(); 186 init_checkbox(); 187 init_icon(); 188 import_jsx_runtime$2 = require_jsx_runtime(); 189 t$2 = (key) => window.i18n.t(key); 190 })))(); 191} 192//#endregion 193//#region app/frontend/pages/MessageTemplates/TemplatesTable.tsx 194function initials(fullName) { 195 return fullName.split(/\s+/).filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase() ?? "").join(""); 196} 197function TemplatesTable(t0) { 198 const $ = (0, import_compiler_runtime$1.c)(27); 199 const { templates, sharedWorkspace, offset, pageSize, total, hasMore, onPageChange } = t0; 200 let t1; 201 if ($[0] === Symbol.for("react.memo_cache_sentinel")) { 202 t1 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("th", { children: t$1("js.message_templates.index.email_template") }); 203 $[0] = t1; 204 } else t1 = $[0]; 205 let t2; 206 if ($[1] !== sharedWorkspace) { 207 t2 = sharedWorkspace && /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("th", {}); 208 $[1] = sharedWorkspace; 209 $[2] = t2; 210 } else t2 = $[2]; 211 let t3; 212 let t4; 213 if ($[3] === Symbol.for("react.memo_cache_sentinel")) { 214 t3 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("th", { 215 className: "hidden-xs", 216 children: t$1("js.message_templates.index.created") 217 }); 218 t4 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("th", {}); 219 $[3] = t3; 220 $[4] = t4; 221 } else { 222 t3 = $[3]; 223 t4 = $[4]; 224 } 225 let t5; 226 if ($[5] !== t2) { 227 t5 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("thead", { 228 className: "h-table__heading", 229 children: /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("tr", { children: [ 230 t1, 231 t2, 232 t3, 233 t4 234 ] }) 235 }); 236 $[5] = t2; 237 $[6] = t5; 238 } else t5 = $[6]; 239 let t6; 240 if ($[7] !== sharedWorkspace || $[8] !== templates) { 241 let t7; 242 if ($[10] !== sharedWorkspace) { 243 t7 = (template) => /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)(TemplateRow, { 244 template, 245 sharedWorkspace 246 }, template.id); 247 $[10] = sharedWorkspace; 248 $[11] = t7; 249 } else t7 = $[11]; 250 t6 = templates.map(t7); 251 $[7] = sharedWorkspace; 252 $[8] = templates; 253 $[9] = t6; 254 } else t6 = $[9]; 255 let t7; 256 if ($[12] !== t6) { 257 t7 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("tbody", { children: t6 }); 258 $[12] = t6; 259 $[13] = t7; 260 } else t7 = $[13]; 261 let t8; 262 if ($[14] !== t5 || $[15] !== t7) { 263 t8 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("table", { children: [t5, t7] }); 264 $[14] = t5; 265 $[15] = t7; 266 $[16] = t8; 267 } else t8 = $[16]; 268 let t9; 269 if ($[17] !== hasMore || $[18] !== offset || $[19] !== onPageChange || $[20] !== pageSize || $[21] !== templates.length || $[22] !== total) { 270 t9 = total >
270 pageSize && /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("div", { 271 className: "h-table__footer", 272 children: /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("div", { 273 className: "box-pagination", 274 children: [ 275 /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("div", { 276 className: "elements-count", 277 children: [ 278 CurrencyHelper.numberWithDelimiter(offset + 1), 279 " -", 280 " ", 281 CurrencyHelper.numberWithDelimiter(offset + templates.length), 282 /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("span", { children: [" ", t$1("js.message_templates.index.out_of", { total: CurrencyHelper.numberWithDelimiter(total) })] }) 283 ] 284 }), 285 /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)(Button, { 286 size: "sm", 287 disabled: templates.length === 0 || offset === 0, 288 onClick: () => onPageChange(Math.max(offset - pageSize, 0)), 289 children: t$1("js.message_templates.index.previous") 290 }), 291 /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)(Button, { 292 size: "sm", 293 disabled: !hasMore, 294 onClick: () => onPageChange(offset + pageSize), 295 children: t$1("js.message_templates.index.next") 296 }) 297 ] 298 }) 299 }); 300 $[17] = hasMore; 301 $[18] = offset; 302 $[19] = onPageChange; 303 $[20] = pageSize; 304 $[21] = templates.length; 305 $[22] = total; 306 $[23] = t9; 307 } else t9 = $[23]; 308 let t10; 309 if ($[24] !== t8 || $[25] !== t9) { 310 t10 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("div", { 311 className: "h-table", 312 children: [t8, t9] 313 }); 314 $[24] = t8; 315 $[25] = t9; 316 $[26] = t10; 317 } else t10 = $[26]; 318 return t10; 319} 320function TemplateRow(t0) { 321 const $ = (0, import_compiler_runtime$1.c)(29); 322 const { template, sharedWorkspace } = t0; 323 let t1; 324 if ($[0] !== template.editPath || $[1] !== template.editable) { 325 t1 = template.editable ? () => visit(template.editPath) : void 0; 326 $[0] = template.editPath; 327 $[1] = template.editable; 328 $[2] = t1; 329 } else t1 = $[2]; 330 const openEditPage = t1; 331 const t2 = template.editable ? "h-table__row-link" : void 0; 332 let t3; 333 if ($[3] !== template.name) { 334 t3 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("h4", { children: template.name }); 335 $[3] = template.name; 336 $[4] = t3; 337 } else t3 = $[4]; 338 let t4; 339 if ($[5] !== template.subject) { 340 t4 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("strong", { children: template.subject }); 341 $[5] = template.subject; 342 $[6] = t4; 343 } else t4 = $[6]; 344 let t5; 345 if ($[7] !== t4 || $[8] !== template.bodyPreview) { 346 t5 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("div", { 347 className: "template-information", 348 children: [ 349 t4, 350 " ", 351 template.bodyPreview 352 ] 353 }); 354 $[7] = t4; 355 $[8] = template.bodyPreview; 356 $[9] = t5; 357 } else t5 = $[9]; 358 let t6; 359 if ($[10] !== t3 || $[11] !== t5) { 360 t6 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("td", { children: [t3, t5] }); 361 $[10] = t3; 362 $[11] = t5; 363 $[12] = t6; 364 } else t6 = $[12]; 365 let t7; 366 if ($[13] !== sharedWorkspace || $[14] !== template.user) { 367 t7 = sharedWorkspace && /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("td", { children: /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)(Avatar, { 368 size: "sm", 369 title: t$1("js.message_templates.index.created_by", { name: template.user.fullName }), 370 children: [template.user.avatarUrl && /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)(AvatarImage, { 371 src: template.user.avatarUrl, 372 alt: template.user.fullName 373 }), /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)(AvatarFallback, { children: initials(template.user.fullName) })] 374 }) }); 375 $[13] = sharedWorkspace; 376 $[14] = template.user; 377 $[15] = t7; 378 } else t7 = $[15]; 379 let t8; 380 if ($[16] !== template.createdAgo) { 381 t8 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("td", { 382 className: "hidden-xs", 383 children: template.createdAgo 384 }); 385 $[16] = template.createdAgo; 386 $[17] = t8; 387 } else t8 = $[17]; 388 let t9; 389 if ($[18] !== template.editable) { 390 t9 = template.editable && /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("div", { 391 className: "h-table__caret-link", 392 children: "âº" 393 }); 394 $[18] = template.editable; 395 $[19] = t9; 396 } else t9 = $[19]; 397 let t10; 398 if ($[20] !== t9) { 399 t10 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsx)("td", { children: t9 }); 400 $[20] = t9; 401 $[21] = t10; 402 } else t10 = $[21]; 403 let t11; 404 if ($[22] !== openEditPage || $[23] !== t10 || $[24] !== t2 || $[25] !== t6 || $[26] !== t7 || $[27] !== t8) { 405 t11 = /* @__PURE__ */ (0, import_jsx_runtime$1.jsxs)("tr", { 406 className: t2, 407 onClick: openEditPage, 408 children: [ 409 t6, 410 t7, 411 t8, 412 t10 413 ] 414 }); 415 $[22] = openEditPage; 416 $[23] = t10; 417 $[24] = t2; 418 $[25] = t6; 419 $[26] = t7; 420 $[27] = t8; 421 $[28] = t11; 422 } else t11 = $[28]; 423 return t11; 424} 425var import_compiler_runtime$1, import_jsx_runtime$1, t$1; 426function init_TemplatesTable() { 427 return (init_TemplatesTable = __esmMin((() => { 428 import_compiler_runtime$1 = require_compiler_runtime(); 429 init_turbo(); 430 init_avatar(); 431 init_button(); 432 init_currency_helper(); 433 import_jsx_runtime$1 = require_jsx_runtime(); 434 t$1 = (key, options) => window.i18n.t(key, options); 435 })))(); 436} 437//#endregion 438//#region app/frontend/images/empty_states/templates.svg 439var templates_default; 440function init_templates() { 441 return (init_templates = __esmMin((() => { 442 templates_default = "/assets/templates-B3hI8FFL.svg"; 443 })))(); 444} 445//#endregion 446//#region app/frontend/pages/MessageTemplates/Index.tsx 447function Index() { 448 const $ = (0, import_compiler_runtime.c)(48); 449 const { props } = usePage(); 450 useLegacyBodyClass("message_templates index"); 451 useFlashMessages(props.flash); 452 const { templates, hasMore, total, offset, pageSize, selectedUserIds, sharedWorkspace, teamMembers, showOnboarding, paths, submenu } = props; 453 let t0; 454 if ($[0] !== paths.templates) { 455 t0 = function navigate(params) { 456 const query = Object.fromEntries(Object.entries(params).filter(_temp)); 457 router.get(paths.templates, query, { 458 preserveScroll: true, 459 preserveState: false 460 }); 461 }; 462 $[0] = paths.templates; 463 $[1] = t0; 464 } else t0 = $[1]; 465 const navigate = t0; 466 let t1; 467 if ($[2] !== navigate) { 468 t1 = function handleFilterApply(userIds) { 469 navigate({ user_ids: userIds.length ? userIds.join("|") : void 0 }); 470 }; 471 $[2] = navigate; 472 $[3] = t1; 473 } else t1 = $[3]; 474 const handleFilterApply = t1; 475 let t2; 476 if ($[4] !== navigate || $[5] !== selectedUserIds) { 477 t2 = function handlePageChange(nextOffset) { 478 navigate({ 479 offset: nextOffset > 0 ? String(nextOffset) : void 0, 480 user_ids: selectedUserIds.length ? selectedUserIds.join("|") : void 0 481 }); 482 }; 483 $[4] = navigate; 484 $[5] = selectedUserIds; 485 $[6] = t2; 486 } else t2 = $[6]; 487 const handlePageChange = t2; 488 const hasFilter = selectedUserIds.length > 0; 489 let t3; 490 if ($[7] === Symbol.for("react.memo_cache_sentinel")) { 491 t3 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Head_default, { title: t("js.message_templates.index.title") }); 492 $[7] = t3; 493 } else t3 = $[7]; 494 let t4; 495 if ($[8] !== submenu) { 496 t4 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { 497 className: "dashboard-main__submenu", 498 children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SequencesSubmenu, { ...submenu }) 499 }); 500 $[8] = submenu; 501 $[9] = t4; 502 } else t4 = $[9]; 503 let t5; 504 if ($[10] === Symbol.for("react.memo_cache_sentinel")) { 505 t5 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PageHeaderTitle, { children: t("js.message_templates.index.title") }); 506 $[10] = t5; 507 } else t5 = $[10]; 508 let t6; 509 if ($[11] !== paths.teams || $[12] !== sharedWorkspace) {
510 t6 = sharedWorkspace && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { 511 className: "ml-4", 512 children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { 513 className: "h-avatar h-avatar--sm shared-icon", 514 href: paths.teams, 515 title: t("js.message_templates.index.shared_workspace"), 516 children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { 517 icon: "users", 518 "aria-hidden": "true" 519 }) 520 }) 521 }); 522 $[11] = paths.teams; 523 $[12] = sharedWorkspace; 524 $[13] = t6; 525 } else t6 = $[13]; 526 let t7; 527 if ($[14] !== t6) { 528 t7 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(PageHeaderHeading, { children: [t5, t6] }); 529 $[14] = t6; 530 $[15] = t7; 531 } else t7 = $[15]; 532 const t8 = paths.newTemplate; 533 let t10; 534 let t9; 535 if ($[16] === Symbol.for("react.memo_cache_sentinel")) { 536 t9 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { 537 icon: "plus", 538 "aria-hidden": "true" 539 }); 540 t10 = t("js.message_templates.index.new_template"); 541 $[16] = t10; 542 $[17] = t9; 543 } else { 544 t10 = $[16]; 545 t9 = $[17]; 546 } 547 let t11; 548 if ($[18] !== paths.newTemplate) { 549 t11 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PageHeaderActions, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, { 550 asChild: true, 551 variant: "primary", 552 size: "sm", 553 children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("a", { 554 href: t8, 555 children: [t9, t10] 556 }) 557 }) }); 558 $[18] = paths.newTemplate; 559 $[19] = t11; 560 } else t11 = $[19]; 561 let t12; 562 if ($[20] !== t11 || $[21] !== t7) { 563 t12 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(PageHeader, { children: [t7, t11] }); 564 $[20] = t11; 565 $[21] = t7; 566 $[22] = t12; 567 } else t12 = $[22]; 568 let t13; 569 if ($[23] !== handleFilterApply || $[24] !== selectedUserIds || $[25] !== teamMembers) { 570 t13 = teamMembers.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { 571 className: "main-actions", 572 children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { 573 className: "main-actions__start", 574 children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TemplatesMemberFilter, { 575 options: teamMembers, 576 selectedUserIds, 577 onApply: handleFilterApply 578 }) 579 }) 580 }); 581 $[23] = handleFilterApply; 582 $[24] = selectedUserIds; 583 $[25] = teamMembers; 584 $[26] = t13; 585 } else t13 = $[26]; 586 let t14; 587 if ($[27] !== handlePageChange || $[28] !== hasFilter || $[29] !== hasMore || $[30] !== offset || $[31] !== pageSize || $[32] !== paths.templates || $[33] !== sharedWorkspace || $[34] !== templates || $[35] !== total) { 588 t14 = templates.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TemplatesTable, { 589 templates, 590 sharedWorkspace, 591 offset, 592 pageSize, 593 total, 594 hasMore, 595 onPageChange: handlePageChange 596 }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(EmptyState, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(EmptyStateImage, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { 597 src: templates_default, 598 alt: "" 599 }) }), hasFilter ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(EmptyStateContent, { children: [ 600 /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EmptyStateTitle, { children: t("js.message_templates.index.no_match") }), 601 /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: t("js.message_templates.index.no_match_description") }), 602 /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EmptyStateActions, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, { 603 asChild: true, 604 size: "sm", 605 children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { 606 href: paths.templates, 607 children: t("js.message_templates.index.reset_search") 608 }) 609 }) }) 610 ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(EmptyStateContent, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(EmptyStateTitle, { children: t("js.message_templates.index.no_template") }
610), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: t("js.message_templates.index.no_template_description") })] })] }); 611 $[27] = handlePageChange; 612 $[28] = hasFilter; 613 $[29] = hasMore; 614 $[30] = offset; 615 $[31] = pageSize; 616 $[32] = paths.templates; 617 $[33] = sharedWorkspace; 618 $[34] = templates; 619 $[35] = total; 620 $[36] = t14; 621 } else t14 = $[36]; 622 let t15; 623 if ($[37] !== paths.browseTemplates || $[38] !== showOnboarding) { 624 t15 = showOnboarding && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HunterTemplatesOnboarding, { browsePath: paths.browseTemplates }); 625 $[37] = paths.browseTemplates; 626 $[38] = showOnboarding; 627 $[39] = t15; 628 } else t15 = $[39]; 629 let t16; 630 if ($[40] !== t12 || $[41] !== t13 || $[42] !== t14 || $[43] !== t15) { 631 t16 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { 632 className: "dashboard-main__content", 633 children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { 634 className: "board-box pb-0", 635 children: [ 636 t12, 637 t13, 638 t14, 639 t15 640 ] 641 }) 642 }); 643 $[40] = t12; 644 $[41] = t13; 645 $[42] = t14; 646 $[43] = t15; 647 $[44] = t16; 648 } else t16 = $[44]; 649 let t17; 650 if ($[45] !== t16 || $[46] !== t4) { 651 t17 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [t3, /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("main", { 652 className: "dashboard-main", 653 children: [t4, t16] 654 })] }); 655 $[45] = t16; 656 $[46] = t4; 657 $[47] = t17; 658 } else t17 = $[47]; 659 return t17; 660} 661function _temp(t0) { 662 const [, value] = t0; 663 return value != null; 664} 665function HunterTemplatesOnboarding(t0) { 666 const $ = (0, import_compiler_runtime.c)(10); 667 const { browsePath } = t0; 668 const [dismissed, setDismissed] = (0, import_react.useState)(false); 669 let t1; 670 if ($[0] === Symbol.for("react.memo_cache_sentinel")) { 671 t1 = function handleClose() { 672 markOnboardingStepSeen("discover_hunter_templates"); 673 setDismissed(true); 674 }; 675 $[0] = t1; 676 } else t1 = $[0]; 677 const handleClose = t1; 678 if (dismissed) return null; 679 let t2; 680 if ($[1] === Symbol.for("react.memo_cache_sentinel")) { 681 t2 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { 682 className: "fal fa-envelope-open-text", 683 "aria-hidden": "true" 684 }); 685 $[1] = t2; 686 } else t2 = $[1]; 687 let t3; 688 if ($[2] === Symbol.for("react.memo_cache_sentinel")) { 689 t3 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { 690 className: "close-onboarding-box", 691 children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { 692 type: "button", 693 className: "btn-empty", 694 onClick: handleClose, 695 children: t("js.message_templates.index.close") 696 }) 697 }); 698 $[2] = t3; 699 } else t3 = $[2]; 700 let t4; 701 if ($[3] === Symbol.for("react.memo_cache_sentinel")) { 702 t4 = t("js.message_templates.index.browse_templates"); 703 $[3] = t4; 704 } else t4 = $[3]; 705 let t5; 706 if ($[4] !== browsePath) { 707 t5 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, { 708 asChild: true, 709 variant: "primary", 710 children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { 711 href: browsePath, 712 target: "_blank", 713 rel: "noopener noreferrer", 714 onClick: _temp2, 715 children: t4 716 }) 717 }); 718 $[4] = browsePath; 719 $[5] = t5; 720 } else t5 = $[5]; 721 let t6; 722 let t7; 723 if ($[6] === Symbol.for("react.memo_cache_sentinel")) { 724 t6 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { children: t("js.message_templates.index.onboarding_title") }); 725 t7 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: t("js.message_templates.index.onboarding_subtitle") }); 726 $[6] = t6; 727 $[7] = t7; 728 } else { 729 t6 = $[6]; 730 t7 = $[7]; 731 } 732 let t8; 733 if ($[8] !== t5) { 734 t8 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { 735 className: "onboarding-box onboarding-box-horizontal onboarding-box--blue mt-10", 736 children: [ 737 t2, 738 t3, 739 t5, 740 t6, 741 t7 742 ] 743 }); 744 $[8] = t5; 745 $[9] = t8; 746 } else t8 = $[9]; 747 return t8; 748} 749function _temp2(e) { 750 return e.stopPropagation(); 751} 752var import_compiler_runtime, import_react, import_jsx_runtime, t; 753function init_Index() { 754 return (init_Index = __esmMin((() => { 755 import_compiler_runtime = require_compiler_runtime(); 756 init_dist(); 757 import_react = require_react(); 758 init_AppLayout(); 759 init_useLegacyBodyClass(); 760 init_useFlashMessages(); 761 init_button(); 762 init_empty_state(); 763 init_icon(); 764 init_page_header(); 765 init_SequencesSubmenu(); 766 init_TemplatesMemberFilter(); 767 init_TemplatesTable(); 768 init_onboardingSteps(); 769 init_templates(); 770 import_jsx_runtime = require_jsx_runtime(); 771 t = (key, options) => window.i18n.t(key, options); 772 Index.layout = (page) => (0, import_react.createElement)(AppLayout, { navCollapsed: true }, page); 773 })))(); 774} 775//#endregion 776init_Index(); 777export { Index as default };
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.