Sha256: 0bbf2eb58e157e56e8fbed031d82eee84bbfdd315cc830f6fec09effc83d3e13

Contents?: true

Size: 1.17 KB

Versions: 73

Compression:

Stored size: 1.17 KB

Contents

/**
 * @typedef {{name: string, value: string}} EditorProperty
 */

/**
 * @typedef {{getContent: () => EditorProperty}} CustomEditorSource
 */

/**
 * This module allows custom editors to register
 * content sources that can not me mapped to standard selectors {@code mu-custom-editor-value},
 * {@code mu-custom-editor-extra} and {@code mu-custom-editor-test}
 *
 * CustomEditor sources are cleared after page reload even when using turbolinks
 */
mumuki.CustomEditor = (() => {

  const CustomEditor = {
    /**
     * @type {CustomEditorSource[]}
     */
    sources: [],

    /**
     * @param {CustomEditorSource} source
     */
    addSource(source) {
      CustomEditor.sources.push(source);
    },

    /**
     * @deprecated use getContents instead
     */
    getContent() {
      return this.getContents();
    },

    /**
     * @returns {EditorProperty[]}
     */
    getContents() {
      return CustomEditor.sources.map( e => e.getContent() );
    },

    clearSources() {
      this.sources = [];
    },

    get hasSources() {
      return this.sources.length > 0;
    }
  };

  mumuki.load(() => {
    mumuki.CustomEditor.clearSources();
  });

  return CustomEditor;
})();

Version data entries

73 entries across 73 versions & 1 rubygems

Version Path
mumuki-laboratory-9.23.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.22.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.21.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.20.1 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.20.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.19.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.18.1 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.18.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.17.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.16.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.15.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.14.1 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.14.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.13.2 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.13.1 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.13.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.12.1 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.12.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.11.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js
mumuki-laboratory-9.10.0 app/assets/javascripts/mumuki_laboratory/application/custom-editor.js