UNPKG

@arcgis/coding-components

Version:
99 lines (98 loc) 2.54 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */ import { createFilterExpression as c } from "@arcgis/toolkit/string"; import { format as f } from "@arcgis/arcade-languageservice"; function C(e, o, i, n) { if (!o) return []; const t = Array.isArray(o) ? o : [o]; if (!t.length) return []; const l = c(i); return e.filter((u) => t.some((m) => l.test(String(u[m] ?? "")))); } function N(e) { return e ? `${e.portal.url}/home/item.html?id=${e.id}` : ""; } function p(e, o, i = "add", n) { if (!e) return; const t = e.getSelection(), l = t && (t.startLineNumber !== t.endLineNumber || t.startColumn !== t.endColumn); let u = []; const m = e.getValue() ?? ""; if (i === "replace") { const r = n ? `${n} ${o}` : o, a = e.getModel(), s = a?.getLineCount() ?? 1, d = a?.getLineMaxColumn(s) ?? 1; u = [ { range: { startLineNumber: 1, startColumn: 1, endLineNumber: s, endColumn: d }, text: r } ]; } else { const r = l ? { startLineNumber: t.startLineNumber, startColumn: t.startColumn, endLineNumber: t.endLineNumber, endColumn: t.endColumn } : (() => { const s = e.getPosition(); return { startLineNumber: s?.lineNumber ?? 1, startColumn: s?.column ?? 1, endLineNumber: s?.lineNumber ?? 1, endColumn: s?.column ?? 1 }; })(); let a = !1; if (n) { const s = n.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&"); a = !new RegExp(`^\\s*${s}\\s*$`, "mu").test(m); } a && u.push({ range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 }, text: `${n} ` }), u.push({ range: r, text: o }); } try { e.pushUndoStop(), e.executeEdits("insertText", u), e.pushUndoStop(), e.focus(); } catch (r) { console.error("Failed to edit model:", r); } } function x(e) { try { return f(e); } catch { return e; } } const L = (e) => e.split(/\r\n|\r|\n/u).length - 1, $ = (e, o) => [...o].sort( (i, n) => n.range.startLineNumber - i.range.startLineNumber || n.range.startColumn - i.range.startColumn ).reduce( (i, n) => { const t = n.range.startLineNumber, l = n.range.endLineNumber, u = l - t, m = L(n.text) - u; return i.flatMap((r) => r < t ? [r] : u === 0 ? [r >= t ? r + m : r] : r > l ? [r + m] : r === t ? [r] : []); }, [...e] ); export { x as a, p as e, C as f, N as p, $ as r };