How to use diff-dom - 3 common examples

To help you get started, we’ve selected a few diff-dom examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github divio / django-cms / cms / static / cms / js / modules / cms.structureboard.js View on Github external
constructor() {
        // elements
        this._setupUI();

        // states
        this.click = 'click.cms.structure';
        this.keyUpAndDown = 'keyup.cms.structure keydown.cms.structure';
        this.pointerUp = 'pointerup.cms';
        this.state = false;
        this.dragging = false;
        this.latestAction = [];
        ls.remove(storageKey);

        dd = new DiffDOM();

        // setup initial stuff
        const setup = this._setup();

        // istanbul ignore if
        if (typeof setup === 'undefined' && CMS.config.mode === 'draft') {
            this._preloadOppositeMode();
        }
        this._setupModeSwitcher();
        this._events();
        StructureBoard.actualizePlaceholders();

        setTimeout(() => this.highlightPluginFromUrl(), 0);
        this._listenToExternalUpdates();
    }
github divio / django-cms / cms / static / cms / js / modules / cms.toolbar.js View on Github external
// istanbul ignore next: function is always reassigned
        this.timer = function() {};
        this.lockToolbar = false;

        // setup initial stuff
        if (!this.ui.toolbar.data('ready')) {
            this._events();
        }

        this._initialStates();

        // set a state to determine if we need to reinitialize this._events();
        this.ui.toolbar.data('ready', true);

        dd = new DiffDOM({
            preDiffApply(info) {
                if (
                    (info.diff.action === 'removeAttribute' || info.diff.action === 'modifyAttribute') &&
                    info.diff.name === 'style' &&
                    $('.cms-toolbar').is(info.node)
                ) {
                    return true;
                }
            }
        });
    },
github supermedium / aframe-super-hot-loader / html / hot.template.js View on Github external
container = document.createElement('div');
    container.id = 'app';
    document.body.appendChild(container);
  }
  container.innerHTML = html;
}

if (module.hot) {
  const DiffDom = require('diff-dom').DiffDOM;

  module.hot.accept();

  // HTML changed, diff.
  if (module.hot.data && module.hot.data.oldHtml) {
    const oldHtml = module.hot.data.oldHtml;
    const diffdom = new DiffDom();

    const oldScene = document.createElement('div');
    oldScene.innerHTML = oldHtml;

    const newScene = document.createElement('div');
    newScene.innerHTML = html;

    const diff = diffdom.diff(oldScene, newScene);
    diffdom.apply(document.getElementById('app'), diff);

    Array.from(newScene.querySelectorAll('template')).forEach(template => {
      const liveTemplate = document.getElementById(template.id);
      if (liveTemplate.innerHTML === template.innerHTML) { return; }
      liveTemplate.innerHTML = template.innerHTML;
      liveTemplate.dispatchEvent(new CustomEvent('templatemutate'));
    });

diff-dom

A diff for DOM elements, as client-side JavaScript code. Gets all modifications, insertions and removals between two DOM fragments.

LGPL-3.0
Latest version published 14 days ago

Package Health Score

73 / 100
Full package analysis

Popular diff-dom functions