1import { Q as QBreadcrumbsEl } from "./QBreadcrumbsEl-DJmFSikN.js"; 2import { M as createAlert, N as updateAlert, O as getAlert, g as getSfdcOrgs, P as getAlerts, Q as updateAlertsBulk, R as deleteAlerts } from "./api-EaByEhnn.js"; 3import { y as getEnvs } from "./api-CsX1TBBI.js"; 4import { Q as QForm } from "./QForm-B7u6vHMU.js"; 5import { E as DIALOG_MODE_ADD, j as jsUtilsExports, D as picklistOptions, aA as generateId2, z as deepClone, aE as DIALOG_MODE_EDIT, h as notifySuccess, y as confirmDelete, C as hasRole } from "./utils-Dl9t6EOZ.js"; 6import { S as SharingDialog } from "./SharingDialog-8nsVnUso.js"; 7import { d as distExports } from "./realsyncUtils-B_eb3OgH.js"; 8import { m as mixinsV3 } from "./mixinsV3-DJOx874v.js"; 9import { C as Checkbox } from "./Checkbox-CQ3iS9dA.js"; 10import { q as defineComponent, s as ref, x as watch, _ as _export_sfc, c as createBlock, o as openBlock, w as withCtx, e as createCommentVNode, a as createVNode, f as createElementBlock, r as resolveComponent, F as Fragment, a5 as renderList, R as onBeforeMount, l as computed, j as createTextVNode } from "./index-l2g1tnsc.js"; 11import { E as EnvRef } from "./EnvRef-DLnnFTas.js"; 12import "./http-QV44vcaW.js"; 13import "./mixins-BCMXzTHA.js"; 14import "./lodash-D-1jTqv6.js"; 15import "./Tooltip-Bsgn4djW.js"; 16import "./Icon-PX2LcDsd.js"; 17import "./Tooltip-BL9mlxg7.js"; 18import "./Popover-DdmYwYku.js"; 19import "./light-ChFcYHVz.js"; 20import "./Scrollbar-w6xdyLLY.js"; 21import "./RecordRef-71_FjUo4.js"; 22import "./RecordLink-BhuEBSlE.js"; 23import "./RouteLink-CCU5m11L.js"; 24const _sfc_main$1 = /* @__PURE__ */ defineComponent({ 25 __name: "MetadataAlertDialog", 26 props: { 27 mode: {}, 28 modelValue: { type: Boolean }, 29 alertId: {} 30 }, 31 emits: ["ok", "update:modelValue"], 32 setup(__props, { expose: __expose, emit: __emit }) { 33 __expose(); 34 const { message, processing, initing, messageType, processForm, initForm, initingSuccess, processingCancellable, processingCancelled, form } = mixinsV3(); 35 function initModel(model2) { 36 return jsUtilsExports.initFields(model2, { 37 status: distExports.EntityStatus.active, 38 type: "metadataChange", 39 sharing: "private", 40 props: {}, 41 options: { 42 notifications: {}, 43 metadataChange: { 44 metadataChangeRules: [], 45 setupChangeRules: [] 46 } 47 } 48 }); 49 } 50 const props = __props; 51 const emit = __emit; 52 const modeAdd = ref(props.mode === DIALOG_MODE_ADD); 53 const model = ref(initModel()); 54 const changeRulesById = ref({}); 55 const sharingDialogOpen = ref(false); 56 const dialogData = ref({}); 57 const grid = ref(); 58 const sfdcOrgs = ref([]); 59 watch( 60 () => props.modelValue, 61 () => { 62 if (!props.modelValue) { 63 return; 64 } 65 modeAdd.value = props.mode === DIALOG_MODE_ADD; 66 message.value = null; 67 let apiModel = void 0; 68 initForm(async () => { 69 if (!modeAdd.value) { 70 [apiModel, sfdcOrgs.value] = await Promise.all([getAlert(props.alertId), getSfdcOrgs()]); 71 } else { 72 sfdcOrgs.value = await getSfdcOrgs(); 73 } 74 model.value = initModel(apiModel); 75 }); 76 } 77 ); 78 function getPicklists() { 79 return picklistOptions; 80 } 81 function close() { 82 emit("update:modelValue", false); 83 } 84 async function refresh() { 85 grid.value.refresh(); 86 } 87 function generateId() { 88 return generateId2("map"); 89 } 90 function onSave() { 91 processForm(async () => { 92 if (modeAdd.value) { 93 await createAlert(model.value); 94 } else { 95 await updateAlert(model.value.id, model.value); 96 } 97 emit("ok", model.value); 98 close(); 99 }); 100 } 101 function onSharingDialogOk(_model) { 102 model.value = _model; 103 } 104 function addMetadataRuleRow() { 105 model.value.options.metadataChange.metadataChangeRules.push({ 106 id: generateId2(""), 107 active: true, 108 added: true, 109 modified: true, 110 deleted: true 111 }); 112 } 113 function addSetupAuditRuleRow() { 114 model.value.options.metadataChange.setupChangeRules.push({ 115 id: generateId2(""), 116 active: true, 117 operation: "contains" 118 }); 119 } 120 function removeRowFromMetadataRules(id) { 121 jsUtilsExports.removeArrayItemBy(model.value.options.metadataChange.metadataChangeRules, (it) => it.id === id); 122 } 123 function removeRowFromSetupAuditRules(id) { 124 jsUtilsExports.removeArrayItemBy(model.value.options.metadataChange.setupChangeRules, (it) => it.id === id); 125 } 126 const __returned__ = { message, processing, initing, messageType, processForm, initForm, initingSuccess, processingCancellable, processingCancelled, form, initModel, props, emit, modeAdd, model, changeRulesById, sharingDialogOpen, dialogData, grid, sfdcOrgs, getPicklists, close, refresh, generateId, onSave, onSharingDialogOk, addMetadataRuleRow, addSetupAuditRuleRow, removeRowFromMetadataRules, removeRowFromSetupAuditRules, SharingDialog, Checkbox };
127 Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); 128 return __returned__; 129 } 130}); 131function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { 132 const _component_InputText = resolveComponent("InputText"); 133 const _component_Column = resolveComponent("Column"); 134 const _component_InputSelect = resolveComponent("InputSelect"); 135 const _component_Row = resolveComponent("Row"); 136 const _component_DialogSection = resolveComponent("DialogSection"); 137 const _component_Icon = resolveComponent("Icon"); 138 const _component_ContentDialog = resolveComponent("ContentDialog"); 139 return openBlock(), createBlock(_component_ContentDialog, { 140 title: $setup.modeAdd ? "New Metadata Alert" : "Edit Metadata Alert", 141 modelValue: $setup.props.modelValue, 142 "onUpdate:modelValue": [ 143 _cache[8] || (_cache[8] = ($event) => $setup.props.modelValue = $event), 144 _cache[9] || (_cache[9] = ($event) => _ctx.$emit("update:modelValue")) 145 ], 146 message: $setup.message, 147 messageType: $setup.messageType, 148 initing: $setup.initing, 149 initingSuccess: $setup.initingSuccess, 150 processing: $setup.processing, 151 processingCancellable: $setup.processingCancellable, 152 height: "auto", 153 width: "1100px", 154 onProcessingCancelled: _cache[10] || (_cache[10] = ($event) => $setup.processingCancelled = true),
155 onDOk: $setup.onSave, 156 okLabel: "Save", 157 helpUrl: "/docs/metasync/metadata-alerts" 158 }, { 159 "buttons-left": withCtx(() => [..._cache[11] || (_cache[11] = [])]), 160 default: withCtx(() => [ 161 $setup.initingSuccess ? (openBlock(), createBlock(QForm, { 162 key: 0, 163 autofocus: "", 164 ref: "form" 165 }, { 166 default: withCtx(() => [ 167 createVNode(_component_Row, null, { 168 default: withCtx(() => [ 169 createVNode(_component_Column, null, { 170 default: withCtx(() => [ 171 createVNode(_component_InputText, { 172 modelValue: $setup.model.name, 173 "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.model.name = $event), 174 required: "", 175 label: "Name" 176 }, null, 8, ["modelValue"]) 177 ]), 178 _: 1 179 }), 180 createVNode(_component_Column, { mxw: "200px" }, { 181 default: withCtx(() => [ 182 createVNode(_component_InputSelect, { 183 options: $setup.getPicklists().statusActiveInactive, 184 modelValue: $setup.model.status, 185 "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.model.status = $event), 186 required: "", 187 label: "Status" 188 }, null, 8, ["options", "modelValue"]) 189 ]), 190 _: 1 191 }) 192 ]), 193 _: 1 194 }), 195 createVNode(_component_Row, { class: "q-mb-md" }, { 196 default: withCtx(() => [ 197 createVNode(_component_Column, null, { 198 default: withCtx(() => [ 199 createVNode(_component_InputText, { 200 type: "textarea", 201 autogrow: "", 202 modelValue: $setup.model.description, 203 "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.model.description = $event), 204 label: "Description" 205 }, null, 8, ["modelValue"]) 206 ]), 207 _: 1 208 }) 209 ]), 210 _: 1 211 }), 212 createVNode(_component_DialogSection, { title: "Sfdc Org" }, { 213 default: withCtx(() => [ 214 createVNode(_component_Column, { mxw: "300px" }, { 215 default: withCtx(() => [ 216 createVNode(_component_InputSelect, { 217 options: $setup.sfdcOrgs, 218 modelValue: $setup.model.sfdcOrgId, 219 "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.model.sfdcOrgId = $event), 220 label: "Sfdc Org", 221 required: "" 222 }, null, 8, ["options", "modelValue"]) 223 ]), 224 _: 1 225 }) 226 ]), 227 _: 1 228 }), 229 $setup.model.type === "metadataChange" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ 230 createVNode(_component_DialogSection, { 231 title: "Metadata Changes", 232 help: "Allows you to configure metadata changes for which alert needs to be raised" 233 }, { 234 default: withCtx(() => [ 235 (openBlock(true), createElementBlock(Fragment, null, renderList($setup.model.options.metadataChange.metadataChangeRules, (item) => { 236 return openBlock(), createBlock(_component_Row, { 237 key: item.id 238 }, { 239 default: withCtx(() => [ 240 createVNode(_component_Icon, { 241 name: "delete", 242 onClick: () => $setup.removeRowFromMetadataRules(item.id), 243 clickable: "" 244 }, null, 8, ["onClick"]), 245 createVNode($setup["Checkbox"], { 246 modelValue: item.active, 247 "onUpdate:modelValue": ($event) => item.active = $event, 248 label: "Active" 249 }, null, 8, ["modelValue", "onUpdate:modelValue"]), 250 createVNode(_component_Column, { size: "3" }, { 251 default: withCtx(() => [ 252 createVNode(_component_InputText, { 253 type: "textarea", 254 modelValue: item.includeMetadata, 255 "onUpdate:modelValue": ($event) => item.includeMetadata = $event, 256 autogrow: "", 257 label: "Include Metadata" 258 }, null, 8, ["modelValue", "onUpdate:modelValue"]) 259 ]), 260 _: 2 261 }, 1024), 262 createVNode(_component_Column, { size: "3" }, { 263 default: withCtx(() => [ 264 createVNode(_component_InputText, { 265 type: "textarea", 266 modelValue: item.excludeMetadata, 267 "onUpdate:modelValue": ($event) => item.excludeMetadata = $event, 268 autogrow: "", 269 label: "Exclude Metadata" 270 }, null, 8, ["modelValue", "onUpdate:modelValue"]) 271 ]), 272 _: 2 273 }, 1024), 274 createVNode($setup["Checkbox"], { 275 modelValue: item.added, 276 "onUpdate:modelValue": ($event) => item.added = $event, 277 label: "Added" 278 }, null, 8, ["modelValue", "onUpdate:modelValue"]), 279 createVNode($setup["Checkbox"], { 280 modelValue: item.modified, 281 "onUpdate:modelValue": ($event) => item.modified = $event, 282 label: "Modified" 283 }, null, 8, ["modelValue", "onUpdate:modelValue"]), 284 createVNode($setup["Checkbox"], { 285 modelValue: item.deleted, 286 "onUpdate:modelValue": ($event) => item.deleted = $event, 287 label: "Deleted" 288 }, null, 8, ["modelValue", "onUpdate:modelValue"]) 289 ]), 290 _: 2 291 }, 1024); 292 }), 128)), 293 createVNode(_component_Row, null, { 294 default: withCtx(() => [ 295 createVNode(_component_Icon, { 296 name: "add_circle", 297 onClick: $setup.addMetadataRuleRow, 298 clickable: "" 299 }) 300 ]), 301 _: 1 302 }) 303 ]), 304 _: 1 305 }), 306 createVNode(_component_DialogSection, { 307 title: "Setup Changes", 308 help: "Allows you to configure setup changes for which alert needs to be raised" 309 }, { 310 default: withCtx(() => [ 311 (openBlock(true), createElementBlock(Fragment, null, renderList($setup.model.options.metadataChange.setupChangeRules, (item) => { 312 return openBlock(), createBlock(_component_Row, { 313 key: item.id 314 }, { 315 default: withCtx(() => [ 316 createVNode(_component_Icon, { 317 name: "delete", 318 onClick: () => $setup.removeRowFromSetupAuditRules(item.id), 319 clickable: "" 320 }, null, 8, ["onClick"]), 321 createVNode($setup["Checkbox"], { 322 modelValue: item.active, 323 "onUpdate:modelValue": ($event) => item.active = $event, 324 label: "Active" 325 }, null, 8, ["modelValue", "onUpdate:modelValue"]), 326 createVNode(_component_Column, { mxw: "200px" }, { 327 default: withCtx(() => [ 328 createVNode(_component_InputSelect, { 329 options: $setup.getPicklists().SetupAuditRuleField, 330 modelValue: item.field, 331 "onUpdate:modelValue": ($event) => item.field = $event, 332 label: "Field", 333 required: "", 334 help: "The field in SetupAuditTrail that should be matched. The list values that appears in SetupAuditTrail fields is not well documented by Salesforce but we have gather what we have seen in the help docs. Click on Dialog help icon for more info." 335 }, null, 8, ["options", "modelValue", "onUpdate:modelValue"]) 336 ]), 337 _: 2 338 }, 1024), 339 createVNode(_component_Column, { mxw: "200px" }, { 340 default: withCtx(() => [ 341 createVNode(_component_InputSelect, { 342 options: $setup.getPicklists().SetupAuditRuleOperation, 343 modelValue: item.operation, 344 "onUpdate:modelValue": ($event) => item.operation = $event, 345 label: "Operation", 346 required: "" 347 }, null, 8, ["options", "modelValue", "onUpdate:modelValue"]) 348 ]), 349 _: 2 350 }, 1024), 351 !(item.operation === "blank" || item.operation === "notBlank") ? (openBlock(), createBlock(_component_Column, { key: 0 }, { 352 default: withCtx(() => [ 353 createVNode(_component_InputText, { 354 type: "textarea", 355 modelValue: item.value, 356 "onUpdate:modelValue": ($event) => item.value = $event, 357 autogrow: "", 358 label: "Value", 359 required: "", 360 help: "Value that field should be matched against as per the operation. If Operation is Equals, you can use * to enable wildcard matching" 361 }, null, 8, ["modelValue", "onUpdate:modelValue"]) 362 ]), 363 _: 2 364 }, 1024)) : createCommentVNode("", true) 365 ]), 366 _: 2 367 }, 1024); 368 }), 128)), 369 createVNode(_component_Row, null, { 370 default: withCtx(() => [ 371 createVNode(_component_Icon, { 372 name: "add_circle", 373 onClick: $setup.addSetupAuditRuleRow, 374 clickable: "" 375 }) 376 ]), 377 _: 1 378 }) 379 ]), 380 _: 1 381 }) 382 ], 64)) : createCommentVNode("", true), 383 createVNode(_component_DialogSection, { title: "Notifications" }, { 384 default: withCtx(() => [ 385 createVNode(_component_Row, null, { 386 default: withCtx(() => [ 387 createVNode(_component_Column, { mxw: "200px" }, { 388 default: withCtx(() => [ 389 createVNode(_component_InputText, { 390 modelValue: $setup.model.options.notifications.subjectPrefix, 391 "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $setup.model.options.notifications.subjectPrefix = $event), 392 label: "Subject Prefix" 393 }, null, 8, ["modelValue"]) 394 ]), 395 _: 1 396 }), 397 createVNode(_component_Column, null, { 398 default: withCtx(() => [ 399 createVNode(_component_InputText, { 400 modelValue: $setup.model.options.notifications.emails, 401 "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => $setup.model.options.notifications.emails = $event), 402 label: "Emails", 403 help: "Comma separated list of emails" 404 }, null, 8, ["modelValue"]) 405 ]), 406 _: 1 407 }) 408 ]), 409 _: 1 410 }), 411 createVNode(_component_Row, { class: "q-mt-xs" }, {
412 default: withCtx(() => [ 413 createVNode(_component_Column, null, { 414 default: withCtx(() => [ 415 createVNode(_component_InputText, { 416 modelValue: $setup.model.options.notifications.slackUrls, 417 "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $setup.model.options.notifications.slackUrls = $event), 418 label: "Slack Urls", 419 help: "Comma separated list Slack Incoming Webhook Urls. Refer to Realtask help page on more information on how to create Slack Urls. " 420 }, null, 8, ["modelValue"]) 421 ]), 422 _: 1 423 }) 424 ]), 425 _: 1 426 }) 427 ]), 428 _: 1 429 }) 430 ]), 431 _: 1 432 }, 512)) : createCommentVNode("", true), 433 createVNode($setup["SharingDialog"], { 434 modelValue: $setup.sharingDialogOpen, 435 "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => $setup.sharingDialogOpen = $event), 436 onCancel: $setup.onSharingDialogOk, 437 model: $setup.model 438 }, null, 8, ["modelValue", "model"]) 439 ]), 440 _: 1 441 }, 8, ["title", "modelValue", "message", "messageType", "initing", "initingSuccess", "processing", "processingCancellable"]); 442} 443const MetadataAlertDialog = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__file", "MetadataAlertDialog.vue"]]); 444const _sfc_main = /* @__PURE__ */ defineComponent({ 445 __name: "MetadataAlerts", 446 props: { 447 envId: {} 448 }, 449 setup(__props, { expose: __expose }) { 450 __expose(); 451 const props = __props; 452 const { message, processing, initing, messageType, processForm } = mixinsV3(); 453 const columns = [ 454 { value: "name" }, 455 { value: "status" }, 456 { 457 label: "Sfdc Org", 458 value: (row) => { 459 var _a; 460 return (_a = row.sfdcOrgId__r) == null ? void 0 : _a.name; 461 } 462 }, 463 { value: (row) => { 464 var _a; 465 return (_a = row.options.notifications) == null ? void 0 : _a.emails; 466 }, label: "Emails" }, 467 { type: "owner" } 468 ]; 469 const records = getAlerts$1; 470 const grid = ref(); 471 const progressOpen = ref(false); 472 const dialogOpen = ref(false); 473 const dialogMode = ref("add"); 474 const dialogInput = ref(); 475 const dialogAlertData = ref(); 476 const dialogAlertId = ref(); 477 const initingSuccess = ref(true); 478 const envs = ref([]); 479 onBeforeMount(async () => { 480 envs.value = await getEnvs(); 481 }); 482 function hasRole$1() { 483 return computed(() => hasRole([distExports.access.ROLE_MS_ADMIN, distExports.access.ROLE_TENANT_ADMIN, distExports.access.ROLE_MS_USER])); 484 } 485 async function getAlerts$1() { 486 return deepClone(await getAlerts({})) || []; 487 } 488 function handleAdd() { 489 message.value = null; 490 dialogMode.value = DIALOG_MODE_ADD; 491 dialogOpen.value = true; 492 } 493 function handleEdit(rec) { 494 dialogAlertData.value = rec; 495 dialogAlertId.value = rec.id; 496 dialogMode.value = DIALOG_MODE_EDIT; 497 dialogOpen.value = true; 498 } 499 function onAlertDialogOk() { 500 refresh(); 501 } 502 function refresh() { 503 grid.value.refresh(); 504 } 505 function getSelection() { 506 return grid.value.getConfirmedSelection(); 507 } 508 function handleActivate() { 509 const sels = getSelection(); 510 if (sels) { 511 updateAlertsBulk$1(sels, { status: distExports.EntityStatus.active }); 512 } 513 } 514 function handleInactivate() { 515 const sels = getSelection(); 516 if (sels) { 517 updateAlertsBulk$1(sels, { status: distExports.EntityStatus.inactive }); 518 } 519 } 520 function updateAlertsBulk$1(sels, fieldsToUpdate) { 521 processForm(async () => { 522 await updateAlertsBulk({ ids: distExports.jsUtils.mapToIds(sels), values: fieldsToUpdate }); 523 notifySuccess("Alerts have been updated"); 524 refresh(); 525 }); 526 } 527 async function handleDelete(sels) { 528 const list = sels.map((rec) => `<li>${rec.name}</li>`).join(""); 529 const msg = `Are you sure you want to delete following Metadata Alerts?
529<br/><ul> ${list} </ul>`; 530 const confirmed = await confirmDelete("Delete Metadata Alerts?", msg); 531 if (confirmed) { 532 deleteAlerts$1(sels); 533 } 534 } 535 function deleteAlerts$1(sels, val) { 536 const payload = sels.map((sel) => ({ id: sel.id })); 537 processing.value = true; 538 processForm(async () => { 539 const resp = await deleteAlerts({ records: payload }); 540 notifySuccess(resp.message || "Metadata Alerts have been deleted"); 541 refresh(); 542 }); 543 } 544 const __returned__ = { props, message, processing, initing, messageType, processForm, columns, records, grid, progressOpen, dialogOpen, dialogMode, dialogInput, dialogAlertData, dialogAlertId, initingSuccess, envs, hasRole: hasRole$1, getAlerts: getAlerts$1, handleAdd, handleEdit, onAlertDialogOk, refresh, getSelection, handleActivate, handleInactivate, updateAlertsBulk: updateAlertsBulk$1, handleDelete, deleteAlerts: deleteAlerts$1, MetadataAlertDialog, EnvRef }; 545 Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); 546 return __returned__; 547 } 548}); 549function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { 550 const _component_MenuItem = resolveComponent("MenuItem"); 551 const _component_IconMenu = resolveComponent("IconMenu"); 552 const _component_Table = resolveComponent("Table"); 553 const _component_Page = resolveComponent("Page"); 554 return openBlock(), createBlock(_component_Page, { 555 title: "Metadata Alerts", 556 initing: $setup.initing, 557 initingSuccess: $setup.initingSuccess, 558 processing: $setup.processing, 559 message: $setup.message, 560 messageType: $setup.messageType 561 }, { 562 breadcrumbs: withCtx(() => [ 563 createVNode(QBreadcrumbsEl, { 564 label: "Home", 565 to: "/metasync/home" 566 }) 567 ]), 568 default: withCtx(() => [ 569 createVNode(_component_Table, { 570 recordType: "Metadata Alert", 571 recordTypePlural: "Metadata Alerts", 572 ref: "grid", 573 columns: $setup.columns, 574 initing: $setup.initing, 575 records: $setup.records, 576 onAdd: $setup.handleAdd, 577 onEdit: $setup.handleEdit, 578 onDelete: $setup.handleDelete, 579 audit: "" 580 }, { 581 "toolbar-actions": withCtx(() => [ 582 createVNode(_component_IconMenu, null, { 583 default: withCtx(() => [ 584 createVNode(_component_MenuItem, { onClick: $setup.handleActivate }, { 585 default: withCtx(() => [..._cache[2] || (_cache[2] = [ 586 createTextVNode("Activate", -1) 587 ])]), 588 _: 1 589 }), 590 createVNode(_component_MenuItem, { onClick: $setup.handleInactivate }, { 591 default: withCtx(() => [..._cache[3] || (_cache[3] = [ 592 createTextVNode("Inactivate", -1) 593 ])]), 594 _: 1 595 }) 596 ]), 597 _: 1 598 }) 599 ]), 600 field1: withCtx((row) => [ 601 createVNode($setup["EnvRef"], { 602 model: row, 603 field: "envId" 604 }, null, 8, ["model"]) 605 ]), 606 _: 1 607 }, 8, ["initing", "records"]), 608 createVNode($setup["MetadataAlertDialog"], { 609 modelValue: $setup.dialogOpen, 610 "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.dialogOpen = $event), 611 alertData: $setup.dialogAlertData, 612 mode: $setup.dialogMode, 613 onOk: $setup.onAlertDialogOk, 614 onCancel: _cache[1] || (_cache[1] = ($event) => $setup.dialogOpen = false), 615 envId: $props.envId, 616 alertId: $setup.dialogAlertId 617 }, null, 8, ["modelValue", "alertData", "mode", "envId", "alertId"]) 618 ]), 619 _: 1 620 }, 8, ["initing", "initingSuccess", "processing", "message", "messageType"]); 621} 622const MetadataAlerts = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "MetadataAlerts.vue"]]); 623export { 624 MetadataAlerts as default 625}; 626//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGFBbGVydHMtQnVPZkY5X0EuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9k
626dWN0cy9tZXRhc3luYy9wYWdlcy9tZXRhZGF0YUFsZXJ0L01ldGFkYXRhQWxlcnREaWFsb2cudnVlIiwiLi4vLi4vLi4vc3JjL3Byb2R1Y3RzL21ldGFzeW5jL3BhZ2VzL21ldGFkYXRhQWxlcnQvTWV0YWRhdGFBbGVydHMudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cbiAgPENvbnRlbnREaWFsb2dcbiAgICA6dGl0bGU9XCJtb2RlQWRkID8gJ05ldyBNZXRhZGF0YSBBbGVydCcgOiAnRWRpdCBNZXRhZGF0YSBBbGVydCdcIlxuICAgIHYtbW9kZWw9XCJwcm9wcy5tb2RlbFZhbHVlXCJcbiAgICBAdXBkYXRlOm1vZGVsVmFsdWU9XCIkZW1pdCgndXBkYXRlOm1vZGVsVmFsdWUnKVwiXG4gICAgOm1lc3NhZ2U9XCJtZXNzYWdlXCJcbiAgICA6bWVzc2FnZVR5cGU9XCJtZXNzYWdlVHlwZVwiXG4gICAgOmluaXRpbmc9XCJpbml0aW5nXCJcbiAgICA6aW5pdGluZ1N1Y2Nlc3M9XCJpbml0aW5nU3VjY2Vzc1wiXG4gICAgOnByb2Nlc3Npbmc9XCJwcm9jZXNzaW5nXCJcbiAgICA6cHJvY2Vzc2luZ0NhbmNlbGxhYmxlPVwicHJvY2Vzc2luZ0NhbmNlbGxhYmxlXCJcbiAgICBoZWlnaHQ9XCJhdXRvXCJcbiAgICB3aWR0aD1cIjExMDBweFwiXG4gICAgQHByb2Nlc3NpbmdDYW5jZWxsZWQ9XCJwcm9jZXNzaW5nQ2FuY2VsbGVkID0gdHJ1ZVwiXG4gICAgQGQtb2s9XCJvblNhdmVcIlxuICAgIG9rTGFiZWw9XCJTYXZlXCJcbiAgICBoZWxwVXJsPVwiL2RvY3MvbWV0YXN5bmMvbWV0YWRhdGEtYWxlcnRzXCJcbiAgPlxuICAgIDxxLWZvcm0gYXV0b2ZvY3VzIHYtaWY9XCJpbml0aW5nU3VjY2Vzc1wiIHJlZj1cImZvcm1cIj5cbiAgICAgIDxSb3c+XG4gICAgICAgIDxDb2x1bW4+XG4gICAgICAgICAgPElucHV0VGV4dCB2LW1vZGVsPVwibW9kZWwubmFtZVwiIHJlcXVpcmVkIGxhYmVsPVwiTmFtZVwiIC8+XG4gICAgICAgIDwvQ29sdW1uPlxuICAgICAgICA8Q29sdW1uIG14dz1cIjIwMHB4XCI+XG4gICAgICAgICAgPElucHV0U2VsZWN0IDpvcHRpb25zPVwiZ2V0UGlja2xpc3RzKCkuc3RhdHVzQWN0aXZlSW5hY3RpdmVcIiB2LW1vZGVsPVwibW9kZWwuc3RhdHVzXCIgcmVxdWlyZWQgbGFiZWw9XCJTdGF0dXNcIiAvPlxuICAgICAgICA8L0NvbHVtbj5cbiAgICAgIDwvUm93PlxuICAgICAgPFJvdyBjbGFzcz1cInEtbWItbWRcIj5cbiAgICAgICAgPENvbHVtbj5cbiAgICAgICAgICA8SW5wdXRUZXh0IHR5cGU9XCJ0ZXh0YXJlYVwiIGF1dG9ncm93IHYtbW9kZWw9XCJtb2RlbC5kZXNjcmlwdGlvblwiIGxhYmVsPVwiRGVzY3JpcHRpb25cIiAvPlxuICAgICAgICA8L0NvbHVtbj5cbiAgICAgIDwvUm93PlxuICAgICAgPERpYWxvZ1NlY3Rpb24gdGl0bGU9XCJTZmRjIE9yZ1wiPlxuICAgICAgICA8Q29sdW1uIG14dz1cIjMwMHB4XCI+XG4gICAgICAgICAgPElucHV0U2VsZWN0IDpvcHRpb25zPVwic2ZkY09yZ3NcIiB2LW1vZGVsPVwibW9kZWwuc2ZkY09yZ0lkXCIgbGFiZWw9XCJTZmRjIE9yZ1wiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvQ29sdW1uPlxuICAgICAgPC9EaWFsb2dTZWN0aW9uPlxuICAgICAgPHRlbXBsYXRlIHYtaWY9XCJtb2RlbC50eXBlID09PSAnbWV0YWRhdGFDaGFuZ2UnXCI+XG4gICAgICAgIDxEaWFsb2dTZWN0aW9uIHRpdGxlPVwiTWV0YWRhdGEgQ2hhbmdlc1wiIGhlbHA9XCJBbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSBtZXRhZGF0YSBjaGFuZ2VzIGZvciB3aGljaCBhbGVydCBuZWVkcyB0byBiZSByYWlzZWRcIj5cbiAgICAgICAgICA8Um93IHYtZm9yPVwiaXRlbSBpbiBtb2RlbC5vcHRpb25zLm1ldGFkYXRhQ2hhbmdlLm1ldGFkYXRhQ2hhbmdlUnVsZXNcIiA6a2V5PVwiaXRlbS5pZFwiPlxuICAgICAgICAgICAgPEljb24gbmFtZT1cImRlbGV0ZVwiIEBjbGljaz1cIigpID0+IHJlbW92ZVJvd0Zyb21NZXRhZGF0YVJ1bGVzKGl0ZW0uaWQpXCIgY2xpY2thYmxlIC8+XG4gICAgICAgICAgICA8Q2hlY2tib3ggdi1tb2RlbD1cIml0ZW0uYWN0aXZlXCIgbGFiZWw9XCJBY3RpdmVcIiAvPlxuICAgICAgICAgICAgPENvbHVtbiBzaXplPVwiM1wiPlxuICAgICAgICAgICAgICA8SW5wdXRUZXh0IHR5cGU9XCJ0ZXh0YXJlYVwiIHYtbW9kZWw9XCJpdGVtLmluY2x1ZGVNZXRhZGF0YVwiIGF1dG9ncm93IGxhYmVsPVwiSW5jbHVkZSBNZXRhZGF0YVwiIC8+XG4gICAgICAgICAgICA8L0NvbHVtbj5cbiAgICAgICAgICAgIDxDb2x1bW4gc2l6ZT1cIjNcIj5cbiAgICAgICAgICAgICAgPElucHV0VGV4dCB0eXBlPVwidGV4dGFyZWFcIiB2LW1vZGVsPVwiaXRlbS5leGNsdWRlTWV0YWRhdGFcIiBhdXRvZ3JvdyBsYWJlbD1cIkV4Y2x1ZGUgTWV0YWRhdGFcIiAvPlxuICAgICAgICAgICAgPC9Db2x1bW4+XG4gICAgICAgICAgICA8Q2hlY2tib3ggdi1tb2RlbD1cIml0ZW0uYWRkZWRcIiBsYWJlbD1cIkFkZGVkXCIgLz5cbiAgICAgICAgICAgIDxDaGVja2JveCB2LW1vZGVsPVwiaXRlbS5tb2RpZmllZFwiIGxhYmVsPVwiTW9kaWZpZWRcIiAvPlxuICAgICAgICAgICAgPENoZWNrYm94IHYtbW9kZWw9XCJpdGVtLmRlbGV0ZWRcIiBsYWJlbD1cIkRlbGV0ZWRcIiAvPlxuICAgICAgICAgIDwvUm93PlxuICAgICAgICAgIDxSb3c+XG4gICAgICAgICAgICA8SWNvbiBuYW1lPVwiYWRkX2NpcmNsZVwiIEBjbGljaz1cImFkZE1ldGFkYXRhUnVsZVJvd1wiIGNsaWNrYWJsZSAvPlxuICAgICAgICAgIDwvUm93PlxuICAgICAgICA8L0RpYWxvZ1NlY3Rpb24+XG5cbiAgICAgICAgPERpYWxvZ1NlY3Rpb24gdGl0bGU9XCJTZXR1cCBDaGFuZ2VzXCIgaGVscD1cIkFsbG93cyB5b3UgdG8gY29uZmlndXJlIHNldHVwIGNoYW5nZXMgZm9yIHdoaWNoIGFsZXJ0IG5lZWRzIHRvIGJlIHJhaXNlZFwiPlxuICAgICAgICAgIDxSb3cgdi1mb3I9XCJpdGVtIGluIG1vZGVsLm9wdGlvbnMubWV0YWRhdGFDaGFuZ2Uuc2V0dXBDaGFuZ2VSdWxlc1wiIDprZXk9XCJpdGVtLmlkXCI+XG4gICAgICAgICAgICA8SWNvbiBuYW1lPVwiZGVsZXRlXCIgQGNsaWNrPVwiKCkgPT4gcmVtb3ZlUm93RnJvbVNldHVwQXVkaXRSdWxlcyhpdGVtLmlkKVwiIGNsaWNrYWJsZSAvPlxuICAgICAgICAgICAgPENoZWNrYm94IHYtbW9kZWw9XCJpdGVtLmFjdGl2ZVwiIGxhYmVsPVwiQWN0aXZlXCIgLz5cbiAgICAgICAgICAgIDxDb2x1bW4gbXh3PVwiMjAwcHhcIj5cbiAgICAgICAgICAgICAgPElucHV0U2VsZWN0XG4gICAgICAgICAgICAgICAgOm9wdGlvbnM9XCJnZXRQaWNrbGlzdHMoKS5TZXR1cEF1ZGl0UnVsZUZpZWxkXCJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5maWVsZFwiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJGaWVsZFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICBoZWxwPVwiVGhlIGZpZWxkIGluIFNldHVwQXVkaXRUcmFpbCB0aGF0IHNob3VsZCBiZSBtYXRjaGVkLiBUaGUgbGlzdCB2YWx1ZXMgdGhhdCBhcHBlYXJzIGluIFNldHVwQXVkaXRUcmFpbCBmaWVsZHMgaXMgbm90IHdlbGwgZG9jdW1lbnRlZCBieSBTYWxlc2ZvcmNlIGJ1dCB3ZSBoYXZlIGdhdGhlciB3aGF0IHdlIGhhdmUgc2VlbiBpbiB0aGUgaGVscCBkb2NzLiBDbGljayBvbiBEaWFsb2cgaGVscCBpY29uIGZvciBtb3JlIGluZm8uXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29sdW1uPlxuICAgICAgICAgICAgPENvbHVtbiBteHc9XCIyMDBweFwiPlxuICAgICAgICAgICAgICA8SW5wdXRTZWxlY3QgOm9wdGlvbnM9XCJnZXRQaWNrbGlzdHMoKS5TZXR1cEF1ZGl0UnVsZU9wZXJhdGlvblwiIHYtbW9kZWw9XCJpdGVtLm9wZXJhdGlvblwiIGxhYmVsPVwiT3BlcmF0aW9uXCIg
626cmVxdWlyZWQgLz5cbiAgICAgICAgICAgIDwvQ29sdW1uPlxuICAgICAgICAgICAgPENvbHVtbiB2LWlmPVwiIShpdGVtLm9wZXJhdGlvbiA9PT0gJ2JsYW5rJyB8fCBpdGVtLm9wZXJhdGlvbiA9PT0gJ25vdEJsYW5rJylcIj5cbiAgICAgICAgICAgICAgPElucHV0VGV4dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0YXJlYVwiXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgIGF1dG9ncm93XG4gICAgICAgICAgICAgICAgbGFiZWw9XCJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICBoZWxwPVwiVmFsdWUgdGhhdCBmaWVsZCBzaG91bGQgYmUgbWF0Y2hlZCBhZ2FpbnN0IGFzIHBlciB0aGUgb3BlcmF0aW9uLiBJZiBPcGVyYXRpb24gaXMgRXF1YWxzLCB5b3UgY2FuIHVzZSAqIHRvIGVuYWJsZSB3aWxkY2FyZCBtYXRjaGluZ1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbHVtbj5cbiAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgICA8Um93PlxuICAgICAgICAgICAgPEljb24gbmFtZT1cImFkZF9jaXJjbGVcIiBAY2xpY2s9XCJhZGRTZXR1cEF1ZGl0UnVsZVJvd1wiIGNsaWNrYWJsZSAvPlxuICAgICAgICAgIDwvUm93PlxuICAgICAgICA8L0RpYWxvZ1NlY3Rpb24+XG4gICAgICA8L3RlbXBsYXRlPlxuICAgICAgPERpYWxvZ1NlY3Rpb24gdGl0bGU9XCJOb3RpZmljYXRpb25zXCI+XG4gICAgICAgIDxSb3c+XG4gICAgICAgICAgPENvbHVtbiBteHc9XCIyMDBweFwiPlxuICAgICAgICAgICAgPElucHV0VGV4dCB2LW1vZGVsPVwibW9kZWwub3B0aW9ucy5ub3RpZmljYXRpb25zLnN1YmplY3RQcmVmaXhcIiBsYWJlbD1cIlN1YmplY3QgUHJlZml4XCIgLz5cbiAgICAgICAgICA8L0NvbHVtbj5cbiAgICAgICAgICA8Q29sdW1uPlxuICAgICAgICAgICAgPElucHV0VGV4dCB2LW1vZGVsPVwibW9kZWwub3B0aW9ucy5ub3RpZmljYXRpb25zLmVtYWlsc1wiIGxhYmVsPVwiRW1haWxzXCIgaGVscD1cIkNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsc1wiIC8+XG4gICAgICAgICAgPC9Db2x1bW4+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGNsYXNzPVwicS1tdC14c1wiPlxuICAgICAgICAgIDxDb2x1bW4+XG4gICAgICAgICAgICA8SW5wdXRUZXh0XG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJtb2RlbC5vcHRpb25zLm5vdGlmaWNhdGlvbnMuc2xhY2tVcmxzXCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJTbGFjayBVcmxzXCJcbiAgICAgICAgICAgICAgaGVscD1cIkNvbW1hIHNlcGFyYXRlZCBsaXN0IFNsYWNrIEluY29taW5nIFdlYmhvb2sgVXJscy4gUmVmZXIgdG8gUmVhbHRhc2sgaGVscCBwYWdlIG9uIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIGNyZWF0ZSBTbGFjayBVcmxzLiBcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbHVtbj5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0RpYWxvZ1NlY3Rpb24+XG4gICAgPC9xLWZvcm0+XG4gICAgPHRlbXBsYXRlIHYtc2xvdDpidXR0b25zLWxlZnQ+XG4gICAgICA8IS0tICAgICAgPEJ1dHRvbiBvdXRsaW5lIDpsb2FkaW5nPVwicHJvY2Vzc2luZ1wiIEBjbGljaz1cIm9wZW5TaGFyaW5nRGlhbG9nKClcIiA6ZnVsbFdpZHRoPVwiJHEuc2NyZWVuLnhzXCI+U2hhcmluZzwvQnV0dG9uPi0tPlxuICAgIDwvdGVtcGxhdGU+XG4gICAgPFNoYXJpbmdEaWFsb2cgdi1tb2RlbD1cInNoYXJpbmdEaWFsb2dPcGVuXCIgQGNhbmNlbD1cIm9uU2hhcmluZ0RpYWxvZ09rXCIgOm1vZGVsPVwibW9kZWxcIiAvPlxuICA8L0NvbnRlbnREaWFsb2c+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnc3JjL3NlcnZpY2VzL3V0aWxzJztcbmltcG9ydCB7RElBTE9HX01PREVfQURELCBnZW5lcmF0ZUlkMiwgUGxhaW5PYmplY3R9IGZyb20gJ3NyYy9zZXJ2aWNlcy91dGlscyc7XG5pbXBvcnQgKiBhcyBhcGkgZnJvbSAnc3JjL3Byb2R1Y3RzL21ldGFzeW5jL3NlcnZpY2VzL2FwaSc7XG5pbXBvcnQgU2hhcmluZ0RpYWxvZyBmcm9tICdzcmMvcGFnZXMvY29tbW9uL1NoYXJpbmdEaWFsb2cudnVlJztcbmltcG9ydCB7RW50aXR5U3RhdHVzfSBmcm9tICdAZGF0YXNlcnQvanMtdXRpbHMnO1xuaW1wb3J0IG1peGluc1YzIGZyb20gJ3NyYy9taXhpbnMvbWl4aW5zVjMnO1xuaW1wb3J0IHtyZWYsIHdhdGNofSBmcm9tICd2dWUnO1xuaW1wb3J0IHtNZXRhZGF0YUFsZXJ0LCBNZXRhZGF0YUNoYW5nZVJ1bGUsIFNldHVwQ2hhbmdlUnVsZSwgU2ZkY09yZ30gZnJvbSAnQGRhdGFzZXJ0L2pzLXV0aWxzL2Rpc3QvbW9kZWxzTXMnO1xuaW1wb3J0IHtpbml0RmllbGRzLCByZW1vdmVBcnJheUl0ZW1CeX0gZnJvbSAnQGRhdGFzZXJ0L2pzLXV0aWxzL2Rpc3QvanNVdGlscyc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gudnVlJztcblxuY29uc3Qge21lc3NhZ2UsIHByb2Nlc3NpbmcsIGluaXRpbmcsIG1lc3NhZ2VUeXBlLCBwcm9jZXNzRm9ybSwgaW5pdEZvcm0sIGluaXRpbmdTdWNjZXNzLCBwcm9jZXNzaW5nQ2FuY2VsbGFibGUsIHByb2Nlc3NpbmdDYW5jZWxsZWQsIGZvcm19ID1cbiAgbWl4aW5zVjMoKTtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgbW9kZTogc3RyaW5nO1xuICBtb2RlbFZhbHVlOiBib29sZWFuO1xuICBhbGVydElkPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBpbml0TW9kZWwobW9kZWw/OiBQYXJ0aWFsPE1ldGFkYXRhQWxlcnQ+KTogTWV0YWRhdGFBbGVydCB7XG4gIHJldHVybiBpbml0RmllbGRzKG1vZGVsLCB7XG4gICAgc3RhdHVzOiBFbnRpdHlTdGF0dXMuYWN0aXZlLFxuICAgIHR5cGU6ICdtZXRhZGF0YUNoYW5nZScsXG4gICAgc2hhcmluZzogJ3ByaXZhdGUnLFxuICAgIHByb3BzOiB7fSxcbiAgICBvcHRpb25zOiB7XG4gICAgICBub3RpZmljYXRpb25zOiB7fSxcbiAgICAgIG1ldGFkYXRhQ2hhbmdlOiB7XG4gICAgICAgIG1ldGFkYXRhQ2hhbmdlUnVsZXM6IFtdLFxuICAgICAgICBzZXR1cENoYW5nZVJ1bGVzOiBbXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSkgYXMgUGFydGlhbDxNZXRhZGF0YUFsZXJ0PiBhcyBNZXRhZGF0YUFsZXJ0O1xufVxuXG5jb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge30pO1xuY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnb2snLCAndXBkYXRlOm1vZGVsVmFsdWUnXSk7XG5jb25zdCBtb2RlQWRkID0gcmVmKHByb3BzLm1vZGUgPT09IERJQUxPR19NT0RFX0FERCk7XG5jb25zdCBtb2RlbCA9IHJlZihpbml0TW9kZWwoKSk7XG5jb25zdCBjaGFuZ2VSdWxlc0J5SWQgPSByZWYoe30gYXMgUGxhaW5PYmplY3Q8TWV0YWRhdGFDaGFuZ2VSdWxlPik7XG5jb25zdCBzaGFyaW5nRGlhbG9nT3BlbiA9IHJlZihmYWxzZSk7XG5jb25zdCBkaWFsb2dEYXRhID0gcmVmKHt9KTtcbmNvbnN0IGdyaWQgPSByZWYoKTtcbmNvbnN0IHNmZGNPcmdzID0gcmVmKFtdIGFzIFNmZGNPcmdbXSk7XG5cbndhdGNoKFxuICAoKSA9PiBwcm9wcy5tb2RlbFZhbHVlLFxuICAoKSA9PiB7XG4gICAgaWYgKCFwcm9wcy5tb2RlbFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbW9kZUFkZC52YWx1ZSA9IHByb3BzLm1vZGUgPT09IERJQUxPR19NT0RFX0FERDtcbiAgICBtZXNzYWdlLnZhbHVlID0gbnVsbDtcbiAgICBsZXQgYXBpTW9kZWw6IFBhcnRpYWw8TWV0YWRhdGFBbGVydD4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBpbml0Rm9ybShhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoIW1vZGVBZGQudmFsdWUpIHtcbiAgICAgICAgW2FwaU1vZGVsLCBzZmRjT3Jncy52YWx1ZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbYXBpLmdldEFsZXJ0KHByb3BzLmFsZXJ0SWQhKSwgYXBpLmdldFNmZGNPcmdzKCldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgI
626HNmZGNPcmdzLnZhbHVlID0gYXdhaXQgYXBpLmdldFNmZGNPcmdzKCk7XG4gICAgICB9XG5cbiAgICAgIG1vZGVsLnZhbHVlID0gaW5pdE1vZGVsKGFwaU1vZGVsKTtcbiAgICB9KTtcbiAgfVxuKTtcblxuZnVuY3Rpb24gZ2V0UGlja2xpc3RzKCkge1xuICByZXR1cm4gdXRpbHMucGlja2xpc3RPcHRpb25zO1xufVxuXG5mdW5jdGlvbiBjbG9zZSgpIHtcbiAgZW1pdCgndXBkYXRlOm1vZGVsVmFsdWUnLCBmYWxzZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZnJlc2goKSB7XG4gIGdyaWQudmFsdWUucmVmcmVzaCgpO1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZUlkKCkge1xuICByZXR1cm4gdXRpbHMuZ2VuZXJhdGVJZDIoJ21hcCcpO1xufVxuXG5mdW5jdGlvbiBvblNhdmUoKSB7XG4gIHByb2Nlc3NGb3JtKGFzeW5jICgpID0+IHtcbiAgICBpZiAobW9kZUFkZC52YWx1ZSkge1xuICAgICAgYXdhaXQgYXBpLmNyZWF0ZUFsZXJ0KG1vZGVsLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgYXBpLnVwZGF0ZUFsZXJ0KG1vZGVsLnZhbHVlLmlkISwgbW9kZWwudmFsdWUpO1xuICAgIH1cbiAgICBlbWl0KCdvaycsIG1vZGVsLnZhbHVlKTtcbiAgICBjbG9zZSgpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb25TaGFyaW5nRGlhbG9nT2soX21vZGVsOiBNZXRhZGF0YUFsZXJ0KSB7XG4gIG1vZGVsLnZhbHVlID0gX21vZGVsO1xufVxuXG5mdW5jdGlvbiBhZGRNZXRhZGF0YVJ1bGVSb3coKSB7XG4gIG1vZGVsLnZhbHVlLm9wdGlvbnMhLm1ldGFkYXRhQ2hhbmdlIS5tZXRhZGF0YUNoYW5nZVJ1bGVzIS5wdXNoKHtcbiAgICBpZDogZ2VuZXJhdGVJZDIoJycpLFxuICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICBhZGRlZDogdHJ1ZSxcbiAgICBtb2RpZmllZDogdHJ1ZSxcbiAgICBkZWxldGVkOiB0cnVlLFxuICB9IGFzIFBhcnRpYWw8TWV0YWRhdGFDaGFuZ2VSdWxlPiBhcyBNZXRhZGF0YUNoYW5nZVJ1bGUpO1xufVxuXG5mdW5jdGlvbiBhZGRTZXR1cEF1ZGl0UnVsZVJvdygpIHtcbiAgbW9kZWwudmFsdWUub3B0aW9ucyEubWV0YWRhdGFDaGFuZ2UhLnNldHVwQ2hhbmdlUnVsZXMhLnB1c2goe1xuICAgIGlkOiBnZW5lcmF0ZUlkMignJyksXG4gICAgYWN0aXZlOiB0cnVlLFxuICAgIG9wZXJhdGlvbjogJ2NvbnRhaW5zJyxcbiAgfSBhcyBQYXJ0aWFsPFNldHVwQ2hhbmdlUnVsZT4gYXMgU2V0dXBDaGFuZ2VSdWxlKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlUm93RnJvbU1ldGFkYXRhUnVsZXMoaWQ6IHN0cmluZykge1xuICByZW1vdmVBcnJheUl0ZW1CeShtb2RlbC52YWx1ZS5vcHRpb25zIS5tZXRhZGF0YUNoYW5nZSEubWV0YWRhdGFDaGFuZ2VSdWxlcyBhcyBNZXRhZGF0YUNoYW5nZVJ1bGVbXSwgKGl0KSA9PiBpdC5pZCA9PT0gaWQpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVSb3dGcm9tU2V0dXBBdWRpdFJ1bGVzKGlkOiBzdHJpbmcpIHtcbiAgcmVtb3ZlQXJyYXlJdGVtQnkobW9kZWwudmFsdWUub3B0aW9ucyEubWV0YWRhdGFDaGFuZ2UhLnNldHVwQ2hhbmdlUnVsZXMgYXMgU2V0dXBDaGFuZ2VSdWxlW10sIChpdCkgPT4gaXQuaWQgPT09IGlkKTtcbn1cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8UGFnZVxuICAgIHRpdGxlPVwiTWV0YWRhdGEgQWxlcnRzXCJcbiAgICA6aW5pdGluZz1cImluaXRpbmdcIlxuICAgIDppbml0aW5nU3VjY2Vzcz1cImluaXRpbmdTdWNjZXNzXCJcbiAgICA6cHJvY2Vzc2luZz1cInByb2Nlc3NpbmdcIlxuICAgIDptZXNzYWdlPVwibWVzc2FnZVwiXG4gICAgOm1lc3NhZ2VUeXBlPVwibWVzc2FnZVR5cGVcIlxuICA+XG4gICAgPHRlbXBsYXRlIHYtc2xvdDpicmVhZGNydW1icz5cbiAgICAgIDxxLWJyZWFkY3J1bWJzLWVsIGxhYmVsPVwiSG9tZVwiIHRvPVwiL21ldGFzeW5jL2hvbWVcIiAvPlxuICAgIDwvdGVtcGxhdGU+XG4gICAgPFRhYmxlXG4gICAgICByZWNvcmRUeXBlPVwiTWV0YWRhdGEgQWxlcnRcIlxuICAgICAgcmVjb3JkVHlwZVBsdXJhbD1cIk1ldGFkYXRhIEFsZXJ0c1wiXG4gICAgICByZWY9XCJncmlkXCJcbiAgICAgIDpjb2x1bW5zPVwiY29sdW1uc1wiXG4gICAgICA6aW5pdGluZz1cImluaXRpbmdcIlxuICAgICAgOnJlY29yZHM9XCJyZWNvcmRzXCJcbiAgICAgIEBhZGQ9XCJoYW5kbGVBZGRcIlxuICAgICAgQGVkaXQ9XCJoYW5kbGVFZGl0XCJcbiAgICAgIEBkZWxldGU9XCJoYW5kbGVEZWxldGVcIlxuICAgICAgYXVkaXRcbiAgICA+XG4gICAgICA8dGVtcGxhdGUgdi1zbG90OnRvb2xiYXItYWN0aW9ucz5cbiAgICAgICAgPEljb25NZW51PlxuICAgICAgICAgIDxNZW51SXRlbSBAY2xpY2s9XCJoYW5kbGVBY3RpdmF0ZVwiPkFjdGl2YXRlPC9NZW51SXRlbT5cbiAgICAgICAgICA8TWVudUl0ZW0gQGNsaWNrPVwiaGFuZGxlSW5hY3RpdmF0ZVwiPkluYWN0aXZhdGU8L01lbnVJdGVtPlxuICAgICAgICA8L0ljb25NZW51PlxuICAgICAgPC90ZW1wbGF0ZT5cblxuICAgICAgPHRlbXBsYXRlIHYtc2xvdDpmaWVsZDE9XCJyb3dcIj5cbiAgICAgICAgPEVudlJlZiA6bW9kZWw9XCJyb3dcIiBmaWVsZD1cImVudklkXCIgLz5cbiAgICAgIDwvdGVtcGxhdGU+XG4gICAgPC9UYWJsZT5cbiAgICA8TWV0YWRhdGFBbGVydERpYWxvZ1xuICAgICAgdi1tb2RlbD1cImRpYWxvZ09wZW5cIlxuICAgICAgOmFsZXJ0RGF0YT1cImRpYWxvZ0FsZXJ0RGF0YVwiXG4gICAgICA6bW9kZT1cImRpYWxvZ01vZGVcIlxuICAgICAgQG9rPVwib25BbGVydERpYWxvZ09rXCJcbiAgICAgIEBjYW5jZWw9XCJkaWFsb2dPcGVuID0gZmFsc2VcIlxuICAgICAgOmVudklkPVwiZW52SWRcIlxuICAgICAgOmFsZXJ0SWQ9XCJkaWFsb2dBbGVydElkXCJcbiAgICAvPlxuICA8L1BhZ2U+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxuaW1wb3J0ICogYXMgYXBpIGZyb20gJ3NyYy9wcm9kdWN0cy9tZXRhc3luYy9zZXJ2aWNlcy9hcGknO1xuaW1wb3J0ICogYXMgYWNjb3VudEFwaSBmcm9tICdzcmMvcHJvZHVjdHMvYWNjb3VudC9zZXJ2aWNlcy9hcGknO1xuaW1wb3J0IE1ldGFkYXRhQWxlcnREaWFsb2cgZnJvbSAnLi9NZXRhZGF0YUFsZXJ0RGlhbG9nLnZ1ZSc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICdzcmMvc2VydmljZXMvdXRpbHMnO1xuaW1wb3J0IHthY2Nlc3MsIEVudGl0eVN0YXR1cywganNVdGlsc30gZnJvbSAnQGRhdGFzZXJ0L2pzLXV0aWxzJztcbmltcG9ydCB7ZGVlcENsb25lfSBmcm9tICdzcmMvc2VydmljZXMvdXRpbHMnO1xuaW1wb3J0IHtjb21wdXRlZCwgb25CZWZvcmVNb3VudCwgcmVmfSBmcm9tICd2dWUnO1xuaW1wb3J0IG1peGluc1YzIGZyb20gJ3NyYy9taXhpbnMvbWl4aW5zVjMnO1xuaW1wb3J0IHtNZXRhZGF0YUFsZXJ0fSBmcm9tICdAZGF0YXNlcnQvanMtdXRpbHMvZGlzdC9tb2RlbHNNcyc7XG5pbXBvcnQgRW52UmVmIGZyb20gJ3NyYy9jb21wb25lbnRzL0VudlJlZi52dWUnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbnZJZD86IHN0cmluZztcbn1cbmNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7fSk7XG5cbmNvbnN0IHttZXNzYWdlLCBwcm9jZXNzaW5nLCBpbml0aW5nLCBtZXNzYWdlVHlwZSwgcHJvY2Vzc0Zvcm19ID0gbWl4aW5zVjMoKTtcblxuY29uc3QgY29sdW1ucyA9IFtcbiAge3ZhbHVlOiAnbmFtZSd9LFxuICB7dmFsdWU6ICdzdGF0dXMnfSxcbiAge1xuICAgIGxhYmVsOiAnU2ZkYyBPcmcnLFxuICAgIHZhbHVlOiAocm93OiBNZXRhZGF0YUFsZXJ0KSA9PiByb3cuc2ZkY09yZ0lkX19yPy5uYW1lLFxuICB9LFxuICB7dmFsdWU6IChyb3c6IE1ldGFkYXRhQWxlcnQpID0+IHJvdy5vcHRpb25zLm5vdGlmaWNhdGlvbnM/LmVtYWlscywgbGFiZWw6ICdFbWFpbHMnfSxcbiAge3R5cGU6ICdvd25lcid9LFxuXTtcbmNvbnN0IHJlY29yZHMgPSBnZXRBbGVydHM7XG5jb25zdCBncmlkID0gcmVmKCk7XG5jb25zdCBwcm9ncmVzc09wZW4gPSByZWYoZmFsc2UpO1xuY29uc3QgZGlhbG9nT3BlbiA9IHJlZihmYWxzZSk7XG5jb25zdCBkaWFsb2dNb2RlID0gcmVmKCdhZGQnKTtcbmNvbnN0IGRpYWxvZ0lucHV0ID0gcmVmKCk7XG5jb25zdCBkaWFsb2dBbGVydERhdGEgPSByZWYoKTtcbmNvbnN0IGRpYWxvZ0FsZXJ0SWQgPSByZWYoKTtcbmNvbnN0IGluaXRpbmdTdWNjZXNzID0gcmVmKHRydWUpO1xuY29uc3QgZW52cyA9IHJlZihbXSk7XG5cbm9uQmVmb3JlTW91bnQoYXN5bmMgKCkgPT4ge1xuICBlbnZzLnZhbHVlID0gYXdhaXQgYWNjb3VudEFwaS5nZXRFbnZzKCk7XG59KTtcblxuZnVuY3Rpb24gaGFzUm9sZSgpIHtcbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHV0aWxzLmhhc1JvbGUoW2FjY2Vzcy5ST0xFX01TX0FETUlOLCBhY2Nlc3MuUk9MRV9URU5BTlRfQURNSU4sIGFjY2Vzcy5ST0xFX01TX1VTRVJdKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsZXJ0cygpIHtcbiAgcmV0dXJuIGRlZXBDbG9uZShhd2FpdCBhcGkuZ2V0QWxlcnRzKHt9KSkgfHwgW107XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUFkZCgpIHtcbiAgbWVzc2FnZS52YWx1ZSA9IG51bGw7XG4gIGRpYWxvZ01vZGUudmFsdWUgPSB1dGlscy5ESUFMT0dfTU9ERV9BREQ7XG4gIGRpYWxvZ09wZW4udmFsdWUgPSB0cnVlO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVFZGl0KHJlYzogTWV0YWRhdGFBbGVydCkge1xuICBkaWFsb2dBbGVydERhdGEudmFsdWUgPSByZWM7XG4gIGRpYWxvZ0FsZXJ0SWQudmFsdWUgPSByZWMuaWQ7XG4gIGRpYWxvZ01vZGUudmFsdWUgPSB1dGlscy5ESUFMT0dfTU9ERV9FRElUO1xuICBkaWFsb2dPcGVuLnZhbHVlID0gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gb25BbGVydERpYWxvZ09rKCkge1xuICByZWZyZXNoKCk7XG59XG5cbmZ1bmN0aW9uIHJlZnJlc2goKSB7XG4gIGdyaWQudmFsdWUucmVmcmVzaCgpO1xufVxuXG5mdW5jdGlvbiBnZXRTZWxlY3Rpb24oKSB7XG4gIHJldHVybi
626BncmlkLnZhbHVlLmdldENvbmZpcm1lZFNlbGVjdGlvbigpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVBY3RpdmF0ZSgpIHtcbiAgY29uc3Qgc2VscyA9IGdldFNlbGVjdGlvbigpO1xuICBpZiAoc2Vscykge1xuICAgIHVwZGF0ZUFsZXJ0c0J1bGsoc2Vscywge3N0YXR1czogRW50aXR5U3RhdHVzLmFjdGl2ZX0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUluYWN0aXZhdGUoKSB7XG4gIGNvbnN0IHNlbHMgPSBnZXRTZWxlY3Rpb24oKTtcbiAgaWYgKHNlbHMpIHtcbiAgICB1cGRhdGVBbGVydHNCdWxrKHNlbHMsIHtzdGF0dXM6IEVudGl0eVN0YXR1cy5pbmFjdGl2ZX0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUFsZXJ0c0J1bGsoc2VsczogTWV0YWRhdGFBbGVydFtdLCBmaWVsZHNUb1VwZGF0ZToge3N0YXR1czogc3RyaW5nfSkge1xuICBwcm9jZXNzRm9ybShhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgYXBpLnVwZGF0ZUFsZXJ0c0J1bGsoe2lkczoganNVdGlscy5tYXBUb0lkcyhzZWxzKSwgdmFsdWVzOiBmaWVsZHNUb1VwZGF0ZX0pO1xuICAgIHV0aWxzLm5vdGlmeVN1Y2Nlc3MoJ0FsZXJ0cyBoYXZlIGJlZW4gdXBkYXRlZCcpO1xuICAgIHJlZnJlc2goKTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShzZWxzOiBNZXRhZGF0YUFsZXJ0W10pIHtcbiAgY29uc3QgbGlzdCA9IHNlbHMubWFwKChyZWMpID0+IGA8bGk+JHtyZWMubmFtZX08L2xpPmApLmpvaW4oJycpO1xuICBjb25zdCBtc2cgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBmb2xsb3dpbmcgTWV0YWRhdGEgQWxlcnRzPyA8YnIvPicgKyBgPHVsPiAke2xpc3R9IDwvdWw+YDtcbiAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgdXRpbHMuY29uZmlybURlbGV0ZSgnRGVsZXRlIE1ldGFkYXRhIEFsZXJ0cz8nLCBtc2cpO1xuXG4gIGlmIChjb25maXJtZWQpIHtcbiAgICBkZWxldGVBbGVydHMoc2VscywgJ2RlbGV0ZWQnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZWxldGVBbGVydHMoc2VsczogTWV0YWRhdGFBbGVydFtdLCB2YWw6IHN0cmluZykge1xuICBjb25zdCBwYXlsb2FkID0gc2Vscy5tYXAoKHNlbCkgPT4gKHtpZDogc2VsLmlkfSkpO1xuICBwcm9jZXNzaW5nLnZhbHVlID0gdHJ1ZTtcblxuICBwcm9jZXNzRm9ybShhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IGFwaS5kZWxldGVBbGVydHMoe3JlY29yZHM6IHBheWxvYWR9KTtcbiAgICB1dGlscy5ub3RpZnlTdWNjZXNzKHJlc3AubWVzc2FnZSB8fCAnTWV0YWRhdGEgQWxlcnRzIGhhdmUgYmVlbiBkZWxldGVkJyk7XG4gICAgcmVmcmVzaCgpO1xuICB9KTtcbn1cbjwvc2NyaXB0PlxuIl0sIm5hbWVzIjpbIm1vZGVsIiwiaW5pdEZpZWxkcyIsIkVudGl0eVN0YXR1cyIsImFwaS5nZXRBbGVydCIsImFwaS5nZXRTZmRjT3JncyIsInV0aWxzLnBpY2tsaXN0T3B0aW9ucyIsInV0aWxzLmdlbmVyYXRlSWQyIiwiYXBpLmNyZWF0ZUFsZXJ0IiwiYXBpLnVwZGF0ZUFsZXJ0IiwicmVtb3ZlQXJyYXlJdGVtQnkiLCJfY3JlYXRlQmxvY2siLCJfd2l0aEN0eCIsIl9jcmVhdGVWTm9kZSIsIl9jcmVhdGVFbGVtZW50QmxvY2siLCJfRnJhZ21lbnQiLCJfb3BlbkJsb2NrIiwiX3JlbmRlckxpc3QiLCJnZXRBbGVydHMiLCJhY2NvdW50QXBpLmdldEVudnMiLCJoYXNSb2xlIiwidXRpbHMuaGFzUm9sZSIsImFjY2VzcyIsImFwaS5nZXRBbGVydHMiLCJ1dGlscy5ESUFMT0dfTU9ERV9BREQiLCJ1dGlscy5ESUFMT0dfTU9ERV9FRElUIiwidXBkYXRlQWxlcnRzQnVsayIsImFwaS51cGRhdGVBbGVydHNCdWxrIiwianNVdGlscyIsInV0aWxzLm5vdGlmeVN1Y2Nlc3MiLCJ1dGlscy5jb25maXJtRGVsZXRlIiwiZGVsZXRlQWxlcnRzIiwiYXBpLmRlbGV0ZUFsZXJ0cyIsIl9jcmVhdGVUZXh0Vk5vZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdJQSxVQUFNLEVBQUMsU0FBUyxZQUFZLFNBQVMsYUFBYSxhQUFhLFVBQVUsZ0JBQWdCLHVCQUF1QixxQkFBcUIsS0FBQSxJQUNuSSxTQUFBO0FBUUYsYUFBUyxVQUFVQSxRQUErQztBQUNoRSxhQUFPQyxlQUFBQSxXQUFXRCxRQUFPO0FBQUEsUUFDdkIsUUFBUUUsWUFBQUEsYUFBYTtBQUFBLFFBQ3JCLE1BQU07QUFBQSxRQUNOLFNBQVM7QUFBQSxRQUNULE9BQU8sQ0FBQTtBQUFBLFFBQ1AsU0FBUztBQUFBLFVBQ1AsZUFBZSxDQUFBO0FBQUEsVUFDZixnQkFBZ0I7QUFBQSxZQUNkLHFCQUFxQixDQUFBO0FBQUEsWUFDckIsa0JBQWtCLENBQUE7QUFBQSxVQUFDO0FBQUEsUUFDckI7QUFBQSxNQUNGLENBQ0Q7QUFBQSxJQUNIO0FBRUEsVUFBTSxRQUFRO0FBQ2QsVUFBTSxPQUFPO0FBQ2IsVUFBTSxVQUFVLElBQUksTUFBTSxTQUFTLGVBQWU7QUFDbEQsVUFBTSxRQUFRLElBQUksV0FBVztBQUM3QixVQUFNLGtCQUFrQixJQUFJLEVBQXFDO0FBQ2pFLFVBQU0sb0JBQW9CLElBQUksS0FBSztBQUNuQyxVQUFNLGFBQWEsSUFBSSxFQUFFO0FBQ3pCLFVBQU0sT0FBTyxJQUFBO0FBQ2IsVUFBTSxXQUFXLElBQUksRUFBZTtBQUVwQztBQUFBLE1BQ0UsTUFBTSxNQUFNO0FBQUEsTUFDWixNQUFNO0FBQ0osWUFBSSxDQUFDLE1BQU0sWUFBWTtBQUNyQjtBQUFBLFFBQ0Y7QUFFQSxnQkFBUSxRQUFRLE1BQU0sU0FBUztBQUMvQixnQkFBUSxRQUFRO0FBQ2hCLFlBQUksV0FBK0M7QUFFbkQsaUJBQVMsWUFBWTt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
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.