UNPKG

ngx-editor

Version:

Rich Text Editor for angular using ProseMirror

22 lines 3.98 kB
import getSelectionMarks from './getSelectionMarks'; export const isLinkActive = (state) => { const { schema, selection: { anchor, head, from } } = state; if (!schema.marks.link) { return false; } const isForwardSelection = anchor === from; const linkMarks = getSelectionMarks(state).filter(mark => mark.type === schema.marks.link); if (!linkMarks.length) { return false; } const selectionHasOnlyMarks = isForwardSelection ? (state.doc.rangeHasMark(anchor, anchor + 1, schema.marks.link) && state.doc.rangeHasMark(head - 1, head, schema.marks.link)) : (state.doc.rangeHasMark(anchor - 1, anchor, schema.marks.link) && state.doc.rangeHasMark(head, head + 1, schema.marks.link)); if (linkMarks.length === 1 && selectionHasOnlyMarks) { return true; } return false; }; export default isLinkActive; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNMaW5rQWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVkaXRvci9oZWxwZXJzL2lzTGlua0FjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLGlCQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQWtCLEVBQVcsRUFBRTtJQUMxRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sS0FBSyxJQUFJLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQVcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5HLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLENBQUM7UUFDaEQsQ0FDRSxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM3RCxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUMxRCxDQUFDLENBQUMsQ0FBQyxDQUNGLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzdELEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQzFELENBQUM7SUFFSixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLHFCQUFxQixFQUFFO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLGVBQWUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yU3RhdGUgfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XG5pbXBvcnQgeyBNYXJrIH0gZnJvbSAncHJvc2VtaXJyb3ItbW9kZWwnO1xuXG5pbXBvcnQgZ2V0U2VsZWN0aW9uTWFya3MgZnJvbSAnLi9nZXRTZWxlY3Rpb25NYXJrcyc7XG5cbmV4cG9ydCBjb25zdCBpc0xpbmtBY3RpdmUgPSAoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHsgc2NoZW1hLCBzZWxlY3Rpb246IHsgYW5jaG9yLCBoZWFkLCBmcm9tIH0gfSA9IHN0YXRlO1xuXG4gIGlmICghc2NoZW1hLm1hcmtzLmxpbmspIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBpc0ZvcndhcmRTZWxlY3Rpb24gPSBhbmNob3IgPT09IGZyb207XG4gIGNvbnN0IGxpbmtNYXJrczogTWFya1tdID0gZ2V0U2VsZWN0aW9uTWFya3Moc3RhdGUpLmZpbHRlcihtYXJrID0+IG1hcmsudHlwZSA9PT0gc2NoZW1hLm1hcmtzLmxpbmspO1xuXG4gIGlmICghbGlua01hcmtzLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGlvbkhhc09ubHlNYXJrcyA9IGlzRm9yd2FyZFNlbGVjdGlvbiA/XG4gICAgKFxuICAgICAgc3RhdGUuZG9jLnJhbmdlSGFzTWFyayhhbmNob3IsIGFuY2hvciArIDEsIHNjaGVtYS5tYXJrcy5saW5rKSAmJlxuICAgICAgc3RhdGUuZG9jLnJhbmdlSGFzTWFyayhoZWFkIC0gMSwgaGVhZCwgc2NoZW1hLm1hcmtzLmxpbmspXG4gICAgKSA6IChcbiAgICAgIHN0YXRlLmRvYy5yYW5nZUhhc01hcmsoYW5jaG9yIC0gMSwgYW5jaG9yLCBzY2hlbWEubWFya3MubGluaykgJiZcbiAgICAgIHN0YXRlLmRvYy5yYW5nZUhhc01hcmsoaGVhZCwgaGVhZCArIDEsIHNjaGVtYS5tYXJrcy5saW5rKVxuICAgICk7XG5cbiAgaWYgKGxpbmtNYXJrcy5sZW5ndGggPT09IDEgJiYgc2VsZWN0aW9uSGFzT25seU1hcmtzKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpc0xpbmtBY3RpdmU7XG4iXX0=