Skip to content

Commit

Permalink
compatibility fixes for IE10
Browse files Browse the repository at this point in the history
  • Loading branch information
bantic committed Jul 13, 2015
1 parent d2f147c commit 9d9a530
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 6 deletions.
11 changes: 6 additions & 5 deletions src/js/editor/editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import MobiledocRenderer from '../renderers/mobiledoc';

import { toArray, merge, mergeWithOptions } from 'content-kit-utils';
import { detectParentNode } from '../utils/dom-utils';
import { getData, setData } from '../utils/element-utils';

var defaults = {
placeholder: 'Write here...',
Expand Down Expand Up @@ -150,11 +151,10 @@ function getNonTextBlocks(blockTypeSet, post) {

function clearChildNodes(element) {
while (element.childNodes.length) {
element.childNodes[0].remove();
element.removeChild(element.childNodes[0]);
}
}


/**
* @class Editor
* An individual Editor
Expand Down Expand Up @@ -333,10 +333,11 @@ merge(Editor.prototype, {
},

applyPlaceholder() {
var dataset = this.element.dataset;
const placeholder = this.placeholder;
if (placeholder && !dataset.placeholder) {
dataset.placeholder = placeholder;
const existingPlaceholder = getData(this.element, 'placeholder');

if (placeholder && !existingPlaceholder) {
setData(this.element, 'placeholder', placeholder);
}
},

Expand Down
22 changes: 22 additions & 0 deletions src/js/utils/element-utils.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { dasherize } from 'content-kit-editor/utils/string-utils';

function createDiv(className) {
var div = document.createElement('div');
if (className) {
Expand Down Expand Up @@ -114,7 +116,27 @@ function positionElementToRightOf(element, rightOfElement) {
return positionElementToRect(element, rightOfElementRect, -verticalCenter, -rightOfElement.offsetWidth - elementMargin);
}

function getData(element, name) {
if (element.dataset) {
return element.dataset[name];
} else {
const dataName = dasherize(name);
return element.getAttribute(dataName);
}
}

function setData(element, name, value) {
if (element.dataset) {
element.dataset[name] = value;
} else {
const dataName = dasherize(name);
return element.setAttribute(dataName, value);
}
}

export {
getData,
setData,
createDiv,
hideElement,
showElement,
Expand Down
2 changes: 1 addition & 1 deletion src/js/utils/event-emitter.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ var EventEmitter = {
}
};

export default EventEmitter;
export default EventEmitter;
11 changes: 11 additions & 0 deletions src/js/utils/string-utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/*
* @param {String} string
* @return {String} a dasherized string. 'modelIndex' -> 'model-index', etc
*/
export function dasherize(string) {
return string.replace(/[A-Z]/g, (match, offset) => {
const lower = match.toLowerCase();

return (offset === 0 ? lower : '-' + lower);
});
}

0 comments on commit 9d9a530

Please sign in to comment.