oberon/quill-delta

Compose the deltas of a quill editor history ops array. Port of npm library quill-delta

1.0.2 2018-09-05 15:28 UTC

This package is auto-updated.

Last update: 2024-04-22 09:19:53 UTC


README

This is a PHP port of the npm library quill-delta. Right now it only ports the compose function to compose the full history including all the retains and deletes to a final version with only the necessary inserts.

installation

Use composer

composer require oberon/quill-delta

usage

use Oberon\Quill\Delta\Composer;
    
$fullOps = [
    [
        "ops" => [
            ["insert" => "hello"],
        ],
    ],
    [
        "ops" => [
            ["retain" => 5],
            ["insert" => " world"],
        ],
    ],
];

$quilComposer = new Composer();
echo $quilComposer->compose($fullOps);

// {"ops":[{"insert":"hello world"}]}

or

use Oberon\Quill\Delta\Delta;

$fullOps = [
    [
        "ops" => [
            ["insert" => "hello"],
        ],
    ],
    [
        "ops" => [
            ["retain" => 5],
            ["insert" => " world"],
        ],
    ],
];

$output = array_reduce($fullOps, function(Delta $delta, $ops){
    $comp = $delta->compose(new Delta($ops));
    return $comp;
}, new Delta());

echo $output;

// {"ops":[{"insert":"hello world"}]}

notes

* only supports the delta compose method, diff and other utilities are not supported