@arcgis/coding-components
Version:
ArcGIS Coding Components
99 lines (98 loc) • 2.54 kB
JavaScript
/* 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
};