UNPKG

@oat-sa/tao-item-runner-qti

Version:
60 lines (52 loc) 2.26 kB
define(['taoQtiItem/qtiItem/core/Element', 'lodash', 'taoQtiItem/qtiItem/helper/rendererConfig'], function (Element, _, rendererConfig) { 'use strict'; Element = Element && Object.prototype.hasOwnProperty.call(Element, 'default') ? Element['default'] : Element; _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _; rendererConfig = rendererConfig && Object.prototype.hasOwnProperty.call(rendererConfig, 'default') ? rendererConfig['default'] : rendererConfig; var QtiObject = Element.extend({ qtiClass: 'object', getMediaType: function() { var type = 'undefined'; var mimetype = this.attr('type'); if (mimetype) { if (mimetype.indexOf('video') === 0) { type = 'video'; } else if (mimetype.indexOf('audio') === 0) { type = 'audio'; } else if (mimetype.indexOf('image') === 0) { type = 'image'; } else if (mimetype.indexOf('text/html') === 0) { type = 'html'; } else { type = 'object'; } } return type; }, render: function() { var args = rendererConfig.getOptionsFromArguments(arguments), renderer = args.renderer || this.getRenderer(), defaultData = {}; switch (this.getMediaType()) { case 'video': defaultData.video = true; break; case 'audio': defaultData.audio = true; break; case 'html': defaultData.html = true; break; case 'image': default: defaultData.object = true; } defaultData.attributes = { data: renderer.resolveUrl(this.attr('data')) }; defaultData.body = this._alt; return this._super(_.merge(defaultData, args.data), args.placeholder, args.subclass, renderer); }, isEmpty: function() { return !this.attr('data'); } }); return QtiObject; });