Best JavaScript code snippet using storybook-root
emptyparagraph-plugin.js
Source:emptyparagraph-plugin.js
1/*global define: true */2/* emptyparagraph-plugin.js is part of Aloha Editor project http://aloha-editor.org3 *4 * Aloha Editor is a WYSIWYG HTML5 inline editing library and editor. 5 * Copyright (c) 2010-2012 Gentics Software GmbH, Vienna, Austria.6 * Contributors http://aloha-editor.org/contribution.php 7 * 8 * Aloha Editor is free software; you can redistribute it and/or9 * modify it under the terms of the GNU General Public License10 * as published by the Free Software Foundation; either version 211 * of the License, or any later version.12 *13 * Aloha Editor is distributed in the hope that it will be useful,14 * but WITHOUT ANY WARRANTY; without even the implied warranty of15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the16 * GNU General Public License for more details.17 *18 * You should have received a copy of the GNU General Public License19 * along with this program; if not, write to the Free Software20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.21 * 22 * As an additional permission to the GNU GPL version 2, you may distribute23 * non-source (e.g., minimized or compacted) forms of the Aloha-Editor24 * source code without the copy of the GNU GPL normally required,25 * provided you include this license notice and a URL through which26 * recipients can access the Corresponding Source.27 */28/**29 * @name emptyparagraph30 * @namespace emptyparagraph plugin31 */32define([33 'jquery',34 'aloha/plugin',35 'aloha/core',36 'util/html',37 'util/dom',38 './emptyparagraph',39 'css!emptyparagraph/css/emptyparagraph.css'40], function (41 $,42 Plugin,43 Aloha,44 Html,45 Dom,46 EmptyParagraph47) {48 'use strict';49 /**50 * Name of this plugin51 */52 var pluginName = 'emptyparagraph';53 var DEFAULT_ELEMENTS = ['p'];54 /**55 * Checks if this plugin is activated by name.56 * @param config57 * @returns {boolean}58 */59 function isPluginActivatedByName(config) {60 return $.type(config) === 'array' && $.inArray(pluginName, config) !== -1;61 }62 /**63 * Checks whether or not pluginName is activated for an editable.64 *65 * @param {object} The plugin/editable configuration.66 * @return {boolean} True if activated.67 */68 function isPluginActivated(config) {69 return isPluginActivatedByName(config) || $.type(config) !== 'array';70 }71 /**72 * Highlights empty elements73 * @param plugin74 * @param editable75 */76 function highlightDisallowedElements(plugin, editable) {77 var config = plugin.getEditableConfig(editable.obj);78 var editableElement = editable.obj[0];79 80 if (isPluginActivated(config)) {81 EmptyParagraph.highlightEmptyElements(editableElement, config.emptyelements || DEFAULT_ELEMENTS);82 }83 }84 /**85 * Checks if remove consecutive br's is activated.86 * @param {Object} config87 * @returns {boolean}88 */89 function isRemoveConsecutiveBrActivated(config) {90 switch(typeof config.removebr) {91 case 'undefined':92 return true;93 case 'boolean':94 return config.removebr;95 case 'string':96 return config.removebr.toLowerCase() === 'true';97 default:98 throw new Error('Invalid Empty Paragraph Plugin configuration: config.removebr');99 }100 }101 /**102 * @type {Aloha.Plugin}103 */104 return Plugin.create(pluginName, {105 /**106 * Default config: plugin active for all editables107 */108 config: [pluginName],109 /**110 * Initialize the plugin111 */112 init: function () {113 var plugin = this;114 Aloha.bind('aloha-editable-created', function (event, editable) {115 highlightDisallowedElements(plugin, editable);116 });117 Aloha.bind('aloha-smart-content-changed', function (event, data) {118 highlightDisallowedElements(plugin, data.editable);119 });120 },121 /**122 * @overwrite123 */124 makeClean: function(obj) {125 var config = this.getEditableConfig(obj);126 if (isPluginActivated(config)) {127 var elements = (config.emptyelements) || DEFAULT_ELEMENTS;128 EmptyParagraph.removeEmptyElements(obj[0], elements);129 if (isRemoveConsecutiveBrActivated(config)) {130 EmptyParagraph.removeConsecutiveBr(obj[0]);131 }132 }133 }134 });...markElements.js
Source:markElements.js
1/**2 * Created by najorcruzcruz on 23/04/14.3 */4Aloha.require([5 'jquery',6 '../plugins/extra/emptyparagraph/lib/emptyparagraph'7], function(8 $,9 EmptyParagraph10) {11 'use strict';12 /**13 * Tests highlighted empty elements.14 * @param {String} input15 * @param {String} expected16 */17 function testHighlightEmptyElements(input, expected) {18 EmptyParagraph.highlightEmptyElements(input, ['p']);19 equal(input.innerHTML, expected.innerHTML);20 }21 /**22 * Tests remove empty elements.23 * @param {String} input24 * @param {String} expected25 */26 function testRemoveEmptyElements(input, expected) {27 EmptyParagraph.removeEmptyElements(input, ['p']);28 EmptyParagraph.removeConsecutiveBr(input);29 equal(input.innerHTML, expected.innerHTML);30 }31 module('Highlight Elements');32 test('Highlight empty paragraphs', function() {33 var input = $('<div>' +34 '<p></p>' +35 '</div>')[0];36 37 var expected = $('<div>' +38 '<p class="' + EmptyParagraph.EMPTY_ELEMENT_CSS_CLASS + '"></p>' +39 '</div>')[0];40 41 testHighlightEmptyElements(input, expected);42 });43 test('Highlight empty paragraphs and Headings', function() {44 var input = $('<div>' +45 '<p></p>' +46 '<h1></h1>' +47 '<h2></h2>' +48 '<h3></h3>' +49 '</div>')[0];50 var expected = $('<div>' +51 '<p class="' + EmptyParagraph.EMPTY_ELEMENT_CSS_CLASS + '"></p>' +52 '<h1 class="' + EmptyParagraph.EMPTY_ELEMENT_CSS_CLASS + '"></h1>' +53 '<h2 class="' + EmptyParagraph.EMPTY_ELEMENT_CSS_CLASS + '"></h2>' +54 '<h3></h3>' +55 '</div>')[0];56 EmptyParagraph.highlightEmptyElements(input, ['p', 'h1', 'h2']);57 equal(input.innerHTML, expected.innerHTML);58 });59 60 module('Remove Elements');61 62 test('remove empty paragraphs', function() {63 var input = $('<div>' +64 '<p class="' + EmptyParagraph.EMPTY_ELEMENT_CSS_CLASS + '"></p>' +65 '</div>')[0];66 67 var expected = $('<div>' +68 '</div>')[0];69 70 testRemoveEmptyElements(input, expected);71 });72 73 test('remove sequential br\'s', function() {74 var input = $('<div>' +75 '<p>start<br/><br/><br/><br/><br/>end</p>' +76 '<p><br>things</p>' +77 '</div>')[0];78 79 var expected = $('<div>' +80 '<p>start<br/>end</p>' +81 '<p>things</p>' +82 '</div>')[0];83 84 testRemoveEmptyElements(input, expected);85 });86 ...placeholder.js
Source:placeholder.js
1import {Plugin} from 'prosemirror-state';2import {Decoration, DecorationSet} from 'prosemirror-view';3export function placeholderPlugin(vueInstance, paragraphPlaceholder) {4 return new Plugin({5 props: {6 decorations: (state) => {7 const decorations = [];8 let isThereParagraphWithContent = false;9 let emptyParagraph = null;10 if (vueInstance.canUserUpdateDocument) {11 const decorate = (node, pos) => {12 if (node.type.isBlock && node.childCount === 0) {13 if (node.type.name === 'paragraph') {14 // Only store empty paragraphs if there's no paragraph with children.15 if (isThereParagraphWithContent) {16 return;17 }18 if (!emptyParagraph) {19 emptyParagraph = {node, pos};20 }21 }22 if (node.type.name === 'title') {23 // As the title nodeType is unique, we can add the decoration right away.24 decorations.push(Decoration.node(pos, pos + node.nodeSize, {25 'data-text': vueInstance.$gettext("choose-title"),26 class: 'empty-node',27 }));28 }29 }30 else if (node.type.name === 'paragraph') {31 isThereParagraphWithContent = true;32 }33 };34 state.doc.descendants(decorate);35 if (emptyParagraph && !isThereParagraphWithContent) {36 decorations.push(Decoration.node(emptyParagraph.pos, emptyParagraph.pos + emptyParagraph.node.nodeSize, {37 'data-text': paragraphPlaceholder || vueInstance.$gettext("add-content"),38 class: 'empty-node',39 }));40 }41 }42 return DecorationSet.create(state.doc, decorations);43 },44 },45 });...Using AI Code Generation
1const { EmptyParagraph } = require("storybook-root");2const { EmptyParagraph } = require("storybook-root");3const { EmptyParagraph } = require("storybook-root");4const { EmptyParagraph } = require("storybook-root");5const { EmptyParagraph } = require("storybook-root");6const { EmptyParagraph } = require("storybook-root");7const { EmptyParagraph } = require("storybook-root");Using AI Code Generation
1const { EmptyParagraph } = require('storybook-root');2const { EmptyParagraph } = require('storybook-root');3const { EmptyParagraph } = require('storybook-root');4const { EmptyParagraph } = require('storybook-root');5EmptyParagraph();6- Github: [@bhaskarkandula](Using AI Code Generation
1import { EmptyParagraph } from 'storybook-root';2import { EmptyParagraph } from 'storybook-root';3import { EmptyParagraph } from 'storybook-root';4import { EmptyParagraph } from 'storybook-root';5import { EmptyParagraph } from 'storybook-root';6import { EmptyParagraph } from 'storybook-root';7import { EmptyParagraph } from 'storybook-root';8import { EmptyParagraph } from 'storybook-root';9import { EmptyParagraph } from 'storybook-root';10import { EmptyParagraph } from 'storybook-root';11import { EmptyParagraph } from 'storybook-root';12import { EmptyParagraph } from 'storybook-root';13import { EmptyParagraph } from 'storybook-root';14import { EmptyParagraph } from 'storybook-root';15import { EmptyParagraph } from 'storybook-root';16import { EmptyParagraph } from 'storybook-root';17import { EmptyParagraph } from 'storybook-root';18import { EmptyParagraph } from 'storybook-root';19import { EmptyParagraph } from 'storybook-root';20import { EmptyParagraph } from 'storybook-root';Using AI Code Generation
1import React from 'react';2import { EmptyParagraph } from 'storybook-root';3const Test = () => {4 return <EmptyParagraph />;5};6export default Test;7import Test from './test';8export { Test };9export { Test } from './test';10export { default as Test } from './test';11import Test from './test';Using AI Code Generation
1import { EmptyParagraph } from 'storybook-root'2export default function Test() {3 return (4}5import React from 'react'6export const EmptyParagraph = () => <p></p>7export { EmptyParagraph } from './EmptyParagraph'8{9 "dependencies": {10 }11}12{13 "dependencies": {14 }15}16module.exports = {17 webpackFinal: async config => {18 config.resolve.alias = {19 'storybook-root': path.resolve(__dirname, '../'),20 }21 },22};23import { withNextRouter } from 'storybook-addon-next-router';24import { addDecorator } from '@storybook/react';25addDecorator(withNextRouter());26const path = require('path');27const withTM = require('next-transpile-modules')(['storybook-root']);28module.exports = withTM({29 webpack(config, options) {30 config.resolve.alias = {31 'storybook-root': path.resolve(__dirname, '../'),32 }33 return config;34 }35});36{37 "compilerOptions": {Using AI Code Generation
1import { EmptyParagraph } from 'storybook-root';2const EmptyParagraph = () => {3 return <div>EmptyParagraph</div>;4};5export default EmptyParagraph;678910111213141516