123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- goog.provide('goog.ui.emoji.EmojiPaletteRenderer');
- goog.require('goog.a11y.aria');
- goog.require('goog.asserts');
- goog.require('goog.dom.NodeType');
- goog.require('goog.dom.TagName');
- goog.require('goog.dom.classlist');
- goog.require('goog.style');
- goog.require('goog.ui.PaletteRenderer');
- goog.require('goog.ui.emoji.Emoji');
- goog.ui.emoji.EmojiPaletteRenderer = function(defaultImgUrl) {
- goog.ui.PaletteRenderer.call(this);
- this.defaultImgUrl_ = defaultImgUrl;
- };
- goog.inherits(goog.ui.emoji.EmojiPaletteRenderer, goog.ui.PaletteRenderer);
- goog.ui.emoji.EmojiPaletteRenderer.cellId_ = 0;
- goog.ui.emoji.EmojiPaletteRenderer.prototype.defaultImgUrl_ = null;
- goog.ui.emoji.EmojiPaletteRenderer.getCssClass = function() {
- return goog.getCssName('goog-ui-emojipalette');
- };
- goog.ui.emoji.EmojiPaletteRenderer.prototype.createPaletteItem = function(
- dom, id, spriteInfo, displayUrl) {
- var el;
- if (spriteInfo) {
- var cssClass = spriteInfo.getCssClass();
- if (cssClass) {
- el = dom.createDom(goog.dom.TagName.DIV, cssClass);
- } else {
- el = this.buildElementFromSpriteMetadata(dom, spriteInfo, displayUrl);
- }
- } else {
- el = dom.createDom(goog.dom.TagName.IMG, {'src': displayUrl});
- }
- var outerdiv = dom.createDom(
- goog.dom.TagName.DIV, goog.getCssName('goog-palette-cell-wrapper'), el);
- outerdiv.setAttribute(goog.ui.emoji.Emoji.ATTRIBUTE, id);
- outerdiv.setAttribute(goog.ui.emoji.Emoji.DATA_ATTRIBUTE, id);
- return (outerdiv);
- };
- goog.ui.emoji.EmojiPaletteRenderer.prototype.updateAnimatedPaletteItem =
- function(item, animatedImg) {
-
-
-
- var inner = (item.firstChild);
- goog.asserts.assert(inner);
-
-
- var classes = goog.dom.classlist.get(inner);
- if (classes && classes.length == 1) {
- inner.className = '';
- }
- goog.style.setStyle(inner, {
- 'width': animatedImg.width,
- 'height': animatedImg.height,
- 'background-image': 'url(' + animatedImg.src + ')',
- 'background-position': '0 0'
- });
- };
- goog.ui.emoji.EmojiPaletteRenderer.prototype.buildElementFromSpriteMetadata =
- function(dom, spriteInfo, displayUrl) {
- var width = spriteInfo.getWidthCssValue();
- var height = spriteInfo.getHeightCssValue();
- var x = spriteInfo.getXOffsetCssValue();
- var y = spriteInfo.getYOffsetCssValue();
- var el = dom.createDom(goog.dom.TagName.DIV);
- goog.style.setStyle(el, {
- 'width': width,
- 'height': height,
- 'background-image': 'url(' + displayUrl + ')',
- 'background-repeat': 'no-repeat',
- 'background-position': x + ' ' + y
- });
- return (el);
- };
- goog.ui.emoji.EmojiPaletteRenderer.prototype.createCell = function(node, dom) {
-
-
-
- if (!node) {
- var elem = this.defaultImgUrl_ ?
- dom.createDom(goog.dom.TagName.IMG, {src: this.defaultImgUrl_}) :
- dom.createDom(goog.dom.TagName.DIV);
- node = dom.createDom(
- goog.dom.TagName.DIV, goog.getCssName('goog-palette-cell-wrapper'),
- elem);
- }
- var cell = dom.createDom(
- goog.dom.TagName.TD, {
- 'class': goog.getCssName(this.getCssClass(), 'cell'),
-
- 'id': this.getCssClass() + '-cell-' +
- goog.ui.emoji.EmojiPaletteRenderer.cellId_++
- },
- node);
- goog.a11y.aria.setRole(cell, 'gridcell');
- return cell;
- };
- goog.ui.emoji.EmojiPaletteRenderer.prototype.getContainingItem = function(
- palette, node) {
- var root = palette.getElement();
- while (node && node.nodeType == goog.dom.NodeType.ELEMENT && node != root) {
- if (node.tagName == goog.dom.TagName.TD) {
- return node.firstChild;
- }
- node = node.parentNode;
- }
- return null;
- };
|