-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./core/js/systemtags/merged-systemtags.js","webpack:///./core/js/systemtags/systemtags.js","webpack:///./core/js/systemtags/templates.js","webpack:///./core/js/systemtags/systemtagmodel.js","webpack:///./core/js/systemtags/systemtagsmappingcollection.js","webpack:///./core/js/systemtags/systemtagscollection.js","webpack:///./core/js/systemtags/systemtagsinputfield.js","webpack:///./core/css/systemtags.scss?456a","webpack:///./core/css/systemtags.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","OC","SystemTags","getDescriptiveTag","tag","_","isUndefined","toJSON","$","addClass","text","scope","$span","append","escapeHTML","userAssignable","userVisible","$tag","template","templates","Handlebars","Templates","container","depth0","helpers","partials","data","stack1","helper","lookupProperty","parent","propertyName","hooks","helperMissing","nullContext","escapeExpression","options","alias1","alias2","buffer","program","noop","blockHelperMissing","alias4","extend","Files","Client","PROPERTY_FILEID","NS_OWNCLOUD","PROPERTY_CAN_ASSIGN","PROPERTY_DISPLAYNAME","PROPERTY_USERVISIBLE","PROPERTY_USERASSIGNABLE","SystemTagModel","Backbone","Model","sync","davSync","defaults","canAssign","davProperties","parse","id","SystemTagsMappingCollection","Collection","usePUT","_objectId","_objectType","model","url","linkToRemote","this","setObjectId","objectId","setObjectType","objectType","initialize","models","getTagIds","map","SystemTagsCollection","filterByName","filter","term","substr","length","toLowerCase","filterFunction","reset","fetched","apply","arguments","fetch","self","force","success","trigger","Promise","resolve","collection","SystemTagsInputField","View","_rendered","_newTag","_lastUsedTags","className","_multiple","multiple","_allowActions","allowActions","_allowCreate","allowCreate","_isAdmin","isAdmin","isFunction","initSelection","_initSelection","on","defer","_refreshSelection","_getLastUsedTags","bindAll","ajax","type","generateUrl","response","$tagsField","select2","val","_onClickRenameTag","ev","$item","target","closest","tagId","attr","oldName","$renameForm","cid","deleteTooltip","renameLabel","find","after","tooltip","placement","focus","selectRange","_onSubmitRenameTag","preventDefault","$form","tagModel","newName","trim","save","removeClass","remove","_onClickDeleteTag","destroy","_addToSelect2Selection","selection","push","_onSelectTag","e","isNew","unshift","error","xhr","status","where","_onDeselectTag","choice","_queryTagsAutocomplete","query","tagModels","callback","results","invoke","_preventDefault","stopPropagation","_formatDropDownResult","renameTooltip","tagMarkup","innerHTML","_formatSelection","_createSearchChoice","entry","element","ids","split","modelToSelection","locked","selectedModels","indexOf","findSelectedObjects","render","$el","html","placeholder","containerCssClass","dropdownCssClass","closeOnSelect","allowClear","toggleSelect","formatResult","formatSelection","createSearchChoice","undefined","sortResults","selectedItems","pluck","sort","a","b","aSelected","bSelected","aLastUsed","bLastUsed","Util","naturalSortCompare","formatNoMatches","$dropDown","delegateEvents","getValues","setValues","values","setData","content","locals","add","default","___CSS_LOADER_API_IMPORT___","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","listToStyles","parentId","styles","newStyles","part","css","media","parts","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","isOldIE","navigator","test","userAgent","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","update","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild"],"mappings":"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","file":"systemtags.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './systemtags.js'\nimport './templates.js'\nimport './systemtagmodel.js'\nimport './systemtagsmappingcollection.js'\nimport './systemtagscollection.js'\nimport './systemtagsinputfield.js'\n\nimport '../../css/systemtags.scss'\n","/* eslint-disable */\n/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\t/**\n\t * @namespace\n\t */\n\tOC.SystemTags = {\n\t\t/**\n\t\t *\n\t\t * @param {OC.SystemTags.SystemTagModel|Object|String} tag\n\t\t * @returns {jQuery}\n\t\t */\n\t\tgetDescriptiveTag: function(tag) {\n\t\t\tif (_.isUndefined(tag.name) && !_.isUndefined(tag.toJSON)) {\n\t\t\t\ttag = tag.toJSON()\n\t\t\t}\n\n\t\t\tif (_.isUndefined(tag.name)) {\n\t\t\t\treturn $('<span>').addClass('non-existing-tag').text(\n\t\t\t\t\tt('core', 'Non-existing tag #{tag}', {\n\t\t\t\t\t\ttag: tag\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tvar $span = $('<span>')\n\t\t\t$span.append(escapeHTML(tag.name))\n\n\t\t\tvar scope\n\t\t\tif (!tag.userAssignable) {\n\t\t\t\tscope = t('core', 'restricted')\n\t\t\t}\n\t\t\tif (!tag.userVisible) {\n\t\t\t\t// invisible also implicitly means not assignable\n\t\t\t\tscope = t('core', 'invisible')\n\t\t\t}\n\t\t\tif (scope) {\n\t\t\t\tvar $tag = $('<em>').text(' '\n\t\t\t\t\t+ t('core', '({scope})', {\n\t\t\t\t\t\tscope: scope\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t$span.append($tag)\n\t\t\t}\n\t\t\treturn $span\n\t\t}\n\t}\n})(OC)\n","(function() {\n var template = Handlebars.template, templates = OC.SystemTags.Templates = OC.SystemTags.Templates || {};\ntemplates['result'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" new-item\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<span class=\\\"label\\\">\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"tagMarkup\") || (depth0 != null ? lookupProperty(depth0,\"tagMarkup\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"tagMarkup\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":22},\"end\":{\"line\":4,\"column\":37}}}) : helper))) != null ? stack1 : \"\")\n + \"</span>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<span class=\\\"label\\\">\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":22},\"end\":{\"line\":6,\"column\":30}}}) : helper)))\n + \"</span>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<span class=\\\"systemtags-actions\\\">\\n\t\t\t<a href=\\\"#\\\" class=\\\"rename icon icon-rename\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"renameTooltip\") || (depth0 != null ? lookupProperty(depth0,\"renameTooltip\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"renameTooltip\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":54},\"end\":{\"line\":10,\"column\":71}}}) : helper)))\n + \"\\\"></a>\\n\t\t</span>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }, buffer = \n \"<span class=\\\"systemtags-item\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isNew\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":28},\"end\":{\"line\":1,\"column\":57}}})) != null ? stack1 : \"\")\n + \"\\\" data-id=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"id\") || (depth0 != null ? lookupProperty(depth0,\"id\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":68},\"end\":{\"line\":1,\"column\":74}}}) : helper)))\n + \"\\\">\\n<span class=\\\"checkmark icon icon-checkmark\\\"></span>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isAdmin\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":1},\"end\":{\"line\":7,\"column\":8}}})) != null ? stack1 : \"\");\n stack1 = ((helper = (helper = lookupProperty(helpers,\"allowActions\") || (depth0 != null ? lookupProperty(depth0,\"allowActions\") : depth0)) != null ? helper : alias2),(options={\"name\":\"allowActions\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":1},\"end\":{\"line\":12,\"column\":18}}}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"allowActions\")) { stack1 = container.hooks.blockHelperMissing.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n return buffer + \"</span>\\n\";\n},\"useData\":true});\ntemplates['result_form'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<a href=\\\"#\\\" class=\\\"delete icon icon-delete\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"deleteTooltip\") || (depth0 != null ? lookupProperty(depth0,\"deleteTooltip\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"deleteTooltip\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":53},\"end\":{\"line\":5,\"column\":70}}}) : helper)))\n + \"\\\"></a>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<form class=\\\"systemtags-rename-form\\\">\\n\t <label class=\\\"hidden-visually\\\" for=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"cid\") || (depth0 != null ? lookupProperty(depth0,\"cid\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":38},\"end\":{\"line\":2,\"column\":45}}}) : helper)))\n + \"-rename-input\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"renameLabel\") || (depth0 != null ? lookupProperty(depth0,\"renameLabel\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"renameLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":60},\"end\":{\"line\":2,\"column\":75}}}) : helper)))\n + \"</label>\\n\t<input id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"cid\") || (depth0 != null ? lookupProperty(depth0,\"cid\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":12},\"end\":{\"line\":3,\"column\":19}}}) : helper)))\n + \"-rename-input\\\" type=\\\"text\\\" value=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":53},\"end\":{\"line\":3,\"column\":61}}}) : helper)))\n + \"\\\">\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isAdmin\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":1},\"end\":{\"line\":6,\"column\":8}}})) != null ? stack1 : \"\")\n + \"</form>\\n\";\n},\"useData\":true});\ntemplates['selection'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t<span class=\\\"label\\\">\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"tagMarkup\") || (depth0 != null ? lookupProperty(depth0,\"tagMarkup\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"tagMarkup\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":21},\"end\":{\"line\":2,\"column\":36}}}) : helper))) != null ? stack1 : \"\")\n + \"</span>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t<span class=\\\"label\\\">\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":21},\"end\":{\"line\":4,\"column\":29}}}) : helper)))\n + \"</span>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"isAdmin\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});\n})();","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_FILEID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}id',\n\t\tPROPERTY_CAN_ASSIGN: '{' + OC.Files.Client.NS_OWNCLOUD + '}can-assign',\n\t\tPROPERTY_DISPLAYNAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}display-name',\n\t\tPROPERTY_USERVISIBLE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}user-visible',\n\t\tPROPERTY_USERASSIGNABLE: '{' + OC.Files.Client.NS_OWNCLOUD + '}user-assignable',\n\t})\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsCollection\n\t * @classdesc\n\t *\n\t * System tag\n\t *\n\t */\n\tconst SystemTagModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.SystemTags.SystemTagModel.prototype */ {\n\t\t\tsync: OC.Backbone.davSync,\n\n\t\t\tdefaults: {\n\t\t\t\tuserVisible: true,\n\t\t\t\tuserAssignable: true,\n\t\t\t\tcanAssign: true,\n\t\t\t},\n\n\t\t\tdavProperties: {\n\t\t\t\t'id':\tOC.Files.Client.PROPERTY_FILEID,\n\t\t\t\t'name': OC.Files.Client.PROPERTY_DISPLAYNAME,\n\t\t\t\t'userVisible': OC.Files.Client.PROPERTY_USERVISIBLE,\n\t\t\t\t'userAssignable': OC.Files.Client.PROPERTY_USERASSIGNABLE,\n\t\t\t\t// read-only, effective permissions computed by the server,\n\t\t\t\t'canAssign': OC.Files.Client.PROPERTY_CAN_ASSIGN,\n\t\t\t},\n\n\t\t\tparse: function(data) {\n\t\t\t\treturn {\n\t\t\t\t\tid: data.id,\n\t\t\t\t\tname: data.name,\n\t\t\t\t\tuserVisible: data.userVisible === true || data.userVisible === 'true',\n\t\t\t\t\tuserAssignable: data.userAssignable === true || data.userAssignable === 'true',\n\t\t\t\t\tcanAssign: data.canAssign === true || data.canAssign === 'true',\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\tOC.SystemTags = OC.SystemTags || {}\n\tOC.SystemTags.SystemTagModel = SystemTagModel\n})(OC)\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\t/**\n\t * @class OC.SystemTags.SystemTagsMappingCollection\n\t * @classdesc\n\t *\n\t * Collection of tags assigned to a an object\n\t *\n\t */\n\tconst SystemTagsMappingCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OC.SystemTags.SystemTagsMappingCollection.prototype */ {\n\n\t\t\tsync: OC.Backbone.davSync,\n\n\t\t\t/**\n\t\t * Use PUT instead of PROPPATCH\n\t\t */\n\t\t\tusePUT: true,\n\n\t\t\t/**\n\t\t * Id of the file for which to filter activities by\n\t\t *\n\t\t * @var int\n\t\t */\n\t\t\t_objectId: null,\n\n\t\t\t/**\n\t\t * Type of the object to filter by\n\t\t *\n\t\t * @var string\n\t\t */\n\t\t\t_objectType: 'files',\n\n\t\t\tmodel: OC.SystemTags.SystemTagModel,\n\n\t\t\turl: function() {\n\t\t\t\treturn OC.linkToRemote('dav') + '/systemtags-relations/' + this._objectType + '/' + this._objectId\n\t\t\t},\n\n\t\t\t/**\n\t\t * Sets the object id to filter by or null for all.\n\t\t *\n\t\t * @param {int} objectId file id or null\n\t\t */\n\t\t\tsetObjectId: function(objectId) {\n\t\t\t\tthis._objectId = objectId\n\t\t\t},\n\n\t\t\t/**\n\t\t * Sets the object type to filter by or null for all.\n\t\t *\n\t\t * @param {int} objectType file id or null\n\t\t */\n\t\t\tsetObjectType: function(objectType) {\n\t\t\t\tthis._objectType = objectType\n\t\t\t},\n\n\t\t\tinitialize: function(models, options) {\n\t\t\t\toptions = options || {}\n\t\t\t\tif (!_.isUndefined(options.objectId)) {\n\t\t\t\t\tthis._objectId = options.objectId\n\t\t\t\t}\n\t\t\t\tif (!_.isUndefined(options.objectType)) {\n\t\t\t\t\tthis._objectType = options.objectType\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetTagIds: function() {\n\t\t\t\treturn this.map(function(model) {\n\t\t\t\t\treturn model.id\n\t\t\t\t})\n\t\t\t},\n\t\t})\n\n\tOC.SystemTags = OC.SystemTags || {}\n\tOC.SystemTags.SystemTagsMappingCollection = SystemTagsMappingCollection\n})(OC)\n","/* eslint-disable */\n/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\n\tfunction filterFunction(model, term) {\n\t\treturn model.get('name').substr(0, term.length).toLowerCase() === term.toLowerCase()\n\t}\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsCollection\n\t * @classdesc\n\t *\n\t * Collection of tags assigned to a file\n\t *\n\t */\n\tvar SystemTagsCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OC.SystemTags.SystemTagsCollection.prototype */ {\n\n\t\t\tsync: OC.Backbone.davSync,\n\n\t\t\tmodel: OC.SystemTags.SystemTagModel,\n\n\t\t\turl: function() {\n\t\t\t\treturn OC.linkToRemote('dav') + '/systemtags/'\n\t\t\t},\n\n\t\t\tfilterByName: function(name) {\n\t\t\t\treturn this.filter(function(model) {\n\t\t\t\t\treturn filterFunction(model, name)\n\t\t\t\t})\n\t\t\t},\n\n\t\t\treset: function() {\n\t\t\t\tthis.fetched = false\n\t\t\t\treturn OC.Backbone.Collection.prototype.reset.apply(this, arguments)\n\t\t\t},\n\n\t\t\t/**\n\t\t * Lazy fetch.\n\t\t * Only fetches once, subsequent calls will directly call the success handler.\n\t\t *\n\t\t * @param options\n\t\t * @param [options.force] true to force fetch even if cached entries exist\n\t\t *\n\t\t * @see Backbone.Collection#fetch\n\t\t */\n\t\t\tfetch: function(options) {\n\t\t\t\tvar self = this\n\t\t\t\toptions = options || {}\n\t\t\t\tif (this.fetched || options.force) {\n\t\t\t\t// directly call handler\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(this, null, options)\n\t\t\t\t\t}\n\t\t\t\t\t// trigger sync event\n\t\t\t\t\tthis.trigger('sync', this, null, options)\n\t\t\t\t\treturn Promise.resolve()\n\t\t\t\t}\n\n\t\t\t\tvar success = options.success\n\t\t\t\toptions = _.extend({}, options)\n\t\t\t\toptions.success = function() {\n\t\t\t\t\tself.fetched = true\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\treturn success.apply(this, arguments)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn OC.Backbone.Collection.prototype.fetch.call(this, options)\n\t\t\t}\n\t\t})\n\n\tOC.SystemTags = OC.SystemTags || {}\n\tOC.SystemTags.SystemTagsCollection = SystemTagsCollection\n\n\t/**\n\t * @type OC.SystemTags.SystemTagsCollection\n\t */\n\tOC.SystemTags.collection = new OC.SystemTags.SystemTagsCollection()\n})(OC)\n","/* eslint-disable */\n/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n\n(function(OC) {\n\n\t/**\n\t * @class OC.SystemTags.SystemTagsInputField\n\t * @classdesc\n\t *\n\t * Displays a file's system tags\n\t *\n\t */\n\tvar SystemTagsInputField = OC.Backbone.View.extend(\n\t\t/** @lends OC.SystemTags.SystemTagsInputField.prototype */ {\n\n\t\t\t_rendered: false,\n\n\t\t\t_newTag: null,\n\n\t\t\t_lastUsedTags: [],\n\n\t\t\tclassName: 'systemTagsInputFieldContainer',\n\n\t\t\ttemplate: function(data) {\n\t\t\t\treturn '<input class=\"systemTagsInputField\" type=\"hidden\" name=\"tags\" value=\"\"/>'\n\t\t\t},\n\n\t\t\t/**\n\t\t * Creates a new SystemTagsInputField\n\t\t *\n\t\t * @param {Object} [options]\n\t\t * @param {string} [options.objectType=files] object type for which tags are assigned to\n\t\t * @param {bool} [options.multiple=false] whether to allow selecting multiple tags\n\t\t * @param {bool} [options.allowActions=true] whether tags can be renamed/delete within the dropdown\n\t\t * @param {bool} [options.allowCreate=true] whether new tags can be created\n\t\t * @param {bool} [options.isAdmin=true] whether the user is an administrator\n\t\t * @param {Function} options.initSelection function to convert selection to data\n\t\t */\n\t\t\tinitialize: function(options) {\n\t\t\t\toptions = options || {}\n\n\t\t\t\tthis._multiple = !!options.multiple\n\t\t\t\tthis._allowActions = _.isUndefined(options.allowActions) || !!options.allowActions\n\t\t\t\tthis._allowCreate = _.isUndefined(options.allowCreate) || !!options.allowCreate\n\t\t\t\tthis._isAdmin = !!options.isAdmin\n\n\t\t\t\tif (_.isFunction(options.initSelection)) {\n\t\t\t\t\tthis._initSelection = options.initSelection\n\t\t\t\t}\n\n\t\t\t\tthis.collection = options.collection || OC.SystemTags.collection\n\n\t\t\t\tvar self = this\n\t\t\t\tthis.collection.on('change:name remove', function() {\n\t\t\t\t// refresh selection\n\t\t\t\t\t_.defer(self._refreshSelection)\n\t\t\t\t})\n\n\t\t\t\t_.defer(_.bind(this._getLastUsedTags, this))\n\n\t\t\t\t_.bindAll(\n\t\t\t\t\tthis,\n\t\t\t\t\t'_refreshSelection',\n\t\t\t\t\t'_onClickRenameTag',\n\t\t\t\t\t'_onClickDeleteTag',\n\t\t\t\t\t'_onSelectTag',\n\t\t\t\t\t'_onDeselectTag',\n\t\t\t\t\t'_onSubmitRenameTag'\n\t\t\t\t)\n\t\t\t},\n\n\t\t\t_getLastUsedTags: function() {\n\t\t\t\tvar self = this\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: 'GET',\n\t\t\t\t\turl: OC.generateUrl('/apps/systemtags/lastused'),\n\t\t\t\t\tsuccess: function(response) {\n\t\t\t\t\t\tself._lastUsedTags = response\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t * Refreshes the selection, triggering a call to\n\t\t * select2's initSelection\n\t\t */\n\t\t\t_refreshSelection: function() {\n\t\t\t\tthis.$tagsField.select2('val', this.$tagsField.val())\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever the user clicked the \"rename\" action.\n\t\t * This will display the rename field.\n\t\t */\n\t\t\t_onClickRenameTag: function(ev) {\n\t\t\t\tvar $item = $(ev.target).closest('.systemtags-item')\n\t\t\t\tvar tagId = $item.attr('data-id')\n\t\t\t\tvar tagModel = this.collection.get(tagId)\n\n\t\t\t\tvar oldName = tagModel.get('name')\n\t\t\t\tvar $renameForm = $(OC.SystemTags.Templates['result_form']({\n\t\t\t\t\tcid: this.cid,\n\t\t\t\t\tname: oldName,\n\t\t\t\t\tdeleteTooltip: t('core', 'Delete'),\n\t\t\t\t\trenameLabel: t('core', 'Rename'),\n\t\t\t\t\tisAdmin: this._isAdmin\n\t\t\t\t}))\n\t\t\t\t$item.find('.label').after($renameForm)\n\t\t\t\t$item.find('.label, .systemtags-actions').addClass('hidden')\n\t\t\t\t$item.closest('.select2-result').addClass('has-form')\n\n\t\t\t\t$renameForm.find('[title]').tooltip({\n\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\tcontainer: 'body'\n\t\t\t\t})\n\t\t\t\t$renameForm.find('input').focus().selectRange(0, oldName.length)\n\t\t\t\treturn false\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever the rename form has been submitted after\n\t\t * the user entered a new tag name.\n\t\t * This will submit the change to the server.\n\t\t *\n\t\t * @param {Object} ev event\n\t\t */\n\t\t\t_onSubmitRenameTag: function(ev) {\n\t\t\t\tev.preventDefault()\n\t\t\t\tvar $form = $(ev.target)\n\t\t\t\tvar $item = $form.closest('.systemtags-item')\n\t\t\t\tvar tagId = $item.attr('data-id')\n\t\t\t\tvar tagModel = this.collection.get(tagId)\n\t\t\t\tvar newName = $(ev.target).find('input').val().trim()\n\t\t\t\tif (newName && newName !== tagModel.get('name')) {\n\t\t\t\t\ttagModel.save({ 'name': newName })\n\t\t\t\t\t// TODO: spinner, and only change text after finished saving\n\t\t\t\t\t$item.find('.label').text(newName)\n\t\t\t\t}\n\t\t\t\t$item.find('.label, .systemtags-actions').removeClass('hidden')\n\t\t\t\t$form.remove()\n\t\t\t\t$item.closest('.select2-result').removeClass('has-form')\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever a tag must be deleted\n\t\t *\n\t\t * @param {Object} ev event\n\t\t */\n\t\t\t_onClickDeleteTag: function(ev) {\n\t\t\t\tvar $item = $(ev.target).closest('.systemtags-item')\n\t\t\t\tvar tagId = $item.attr('data-id')\n\t\t\t\tthis.collection.get(tagId).destroy()\n\t\t\t\t$(ev.target).tooltip('hide')\n\t\t\t\t$item.closest('.select2-result').remove()\n\t\t\t\t// TODO: spinner\n\t\t\t\treturn false\n\t\t\t},\n\n\t\t\t_addToSelect2Selection: function(selection) {\n\t\t\t\tvar data = this.$tagsField.select2('data')\n\t\t\t\tdata.push(selection)\n\t\t\t\tthis.$tagsField.select2('data', data)\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever a tag is selected.\n\t\t * Also called whenever tag creation is requested through the dummy tag object.\n\t\t *\n\t\t * @param {Object} e event\n\t\t */\n\t\t\t_onSelectTag: function(e) {\n\t\t\t\tvar self = this\n\t\t\t\tvar tag\n\t\t\t\tif (e.object && e.object.isNew) {\n\t\t\t\t// newly created tag, check if existing\n\t\t\t\t// create a new tag\n\t\t\t\t\ttag = this.collection.create({\n\t\t\t\t\t\tname: e.object.name.trim(),\n\t\t\t\t\t\tuserVisible: true,\n\t\t\t\t\t\tuserAssignable: true,\n\t\t\t\t\t\tcanAssign: true\n\t\t\t\t\t}, {\n\t\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\t\tself._addToSelect2Selection(model.toJSON())\n\t\t\t\t\t\t\tself._lastUsedTags.unshift(model.id)\n\t\t\t\t\t\t\tself.trigger('select', model)\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: function(model, xhr) {\n\t\t\t\t\t\t\tif (xhr.status === 409) {\n\t\t\t\t\t\t\t// re-fetch collection to get the missing tag\n\t\t\t\t\t\t\t\tself.collection.reset()\n\t\t\t\t\t\t\t\tself.collection.fetch({\n\t\t\t\t\t\t\t\t\tsuccess: function(collection) {\n\t\t\t\t\t\t\t\t\t// find the tag in the collection\n\t\t\t\t\t\t\t\t\t\tvar model = collection.where({\n\t\t\t\t\t\t\t\t\t\t\tname: e.object.name.trim(),\n\t\t\t\t\t\t\t\t\t\t\tuserVisible: true,\n\t\t\t\t\t\t\t\t\t\t\tuserAssignable: true\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\tif (model.length) {\n\t\t\t\t\t\t\t\t\t\t\tmodel = model[0]\n\t\t\t\t\t\t\t\t\t\t\t// the tag already exists or was already assigned,\n\t\t\t\t\t\t\t\t\t\t\t// add it to the list anyway\n\t\t\t\t\t\t\t\t\t\t\tself._addToSelect2Selection(model.toJSON())\n\t\t\t\t\t\t\t\t\t\t\tself.trigger('select', model)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tthis.$tagsField.select2('close')\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\treturn false\n\t\t\t\t} else {\n\t\t\t\t\ttag = this.collection.get(e.object.id)\n\t\t\t\t\tthis._lastUsedTags.unshift(tag.id)\n\t\t\t\t}\n\t\t\t\tthis._newTag = null\n\t\t\t\tthis.trigger('select', tag)\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever a tag gets deselected.\n\t\t *\n\t\t * @param {Object} e event\n\t\t */\n\t\t\t_onDeselectTag: function(e) {\n\t\t\t\tthis.trigger('deselect', e.choice.id)\n\t\t\t},\n\n\t\t\t/**\n\t\t * Autocomplete function for dropdown results\n\t\t *\n\t\t * @param {Object} query select2 query object\n\t\t */\n\t\t\t_queryTagsAutocomplete: function(query) {\n\t\t\t\tvar self = this\n\t\t\t\tthis.collection.fetch({\n\t\t\t\t\tsuccess: function(collection) {\n\t\t\t\t\t\tvar tagModels = collection.filterByName(query.term.trim())\n\t\t\t\t\t\tif (!self._isAdmin) {\n\t\t\t\t\t\t\ttagModels = _.filter(tagModels, function(tagModel) {\n\t\t\t\t\t\t\t\treturn tagModel.get('canAssign')\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tquery.callback({\n\t\t\t\t\t\t\tresults: _.invoke(tagModels, 'toJSON')\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t_preventDefault: function(e) {\n\t\t\t\te.stopPropagation()\n\t\t\t},\n\n\t\t\t/**\n\t\t * Formats a single dropdown result\n\t\t *\n\t\t * @param {Object} data data to format\n\t\t * @returns {string} HTML markup\n\t\t */\n\t\t\t_formatDropDownResult: function(data) {\n\t\t\t\treturn OC.SystemTags.Templates['result'](_.extend({\n\t\t\t\t\trenameTooltip: t('core', 'Rename'),\n\t\t\t\t\tallowActions: this._allowActions,\n\t\t\t\t\ttagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data)[0].innerHTML : null,\n\t\t\t\t\tisAdmin: this._isAdmin\n\t\t\t\t}, data))\n\t\t\t},\n\n\t\t\t/**\n\t\t * Formats a single selection item\n\t\t *\n\t\t * @param {Object} data data to format\n\t\t * @returns {string} HTML markup\n\t\t */\n\t\t\t_formatSelection: function(data) {\n\t\t\t\treturn OC.SystemTags.Templates['selection'](_.extend({\n\t\t\t\t\ttagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data)[0].innerHTML : null,\n\t\t\t\t\tisAdmin: this._isAdmin\n\t\t\t\t}, data))\n\t\t\t},\n\n\t\t\t/**\n\t\t * Create new dummy choice for select2 when the user\n\t\t * types an arbitrary string\n\t\t *\n\t\t * @param {string} term entered term\n\t\t * @returns {Object} dummy tag\n\t\t */\n\t\t\t_createSearchChoice: function(term) {\n\t\t\t\tterm = term.trim()\n\t\t\t\tif (this.collection.filter(function(entry) {\n\t\t\t\t\treturn entry.get('name') === term\n\t\t\t\t}).length) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (!this._newTag) {\n\t\t\t\t\tthis._newTag = {\n\t\t\t\t\t\tid: -1,\n\t\t\t\t\t\tname: term,\n\t\t\t\t\t\tuserAssignable: true,\n\t\t\t\t\t\tuserVisible: true,\n\t\t\t\t\t\tcanAssign: true,\n\t\t\t\t\t\tisNew: true\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._newTag.name = term\n\t\t\t\t}\n\n\t\t\t\treturn this._newTag\n\t\t\t},\n\n\t\t\t_initSelection: function(element, callback) {\n\t\t\t\tvar self = this\n\t\t\t\tvar ids = $(element).val().split(',')\n\n\t\t\t\tfunction modelToSelection(model) {\n\t\t\t\t\tvar data = model.toJSON()\n\t\t\t\t\tif (!self._isAdmin && !data.canAssign) {\n\t\t\t\t\t// lock static tags for non-admins\n\t\t\t\t\t\tdata.locked = true\n\t\t\t\t\t}\n\t\t\t\t\treturn data\n\t\t\t\t}\n\n\t\t\t\tfunction findSelectedObjects(ids) {\n\t\t\t\t\tvar selectedModels = self.collection.filter(function(model) {\n\t\t\t\t\t\treturn ids.indexOf(model.id) >= 0 && (self._isAdmin || model.get('userVisible'))\n\t\t\t\t\t})\n\t\t\t\t\treturn _.map(selectedModels, modelToSelection)\n\t\t\t\t}\n\n\t\t\t\tthis.collection.fetch({\n\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\tcallback(findSelectedObjects(ids))\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\t\trender: function() {\n\t\t\t\tvar self = this\n\t\t\t\tthis.$el.html(this.template())\n\n\t\t\t\tthis.$el.find('[title]').tooltip({ placement: 'bottom' })\n\t\t\t\tthis.$tagsField = this.$el.find('[name=tags]')\n\t\t\t\tthis.$tagsField.select2({\n\t\t\t\t\tplaceholder: t('core', 'Collaborative tags'),\n\t\t\t\t\tcontainerCssClass: 'systemtags-select2-container',\n\t\t\t\t\tdropdownCssClass: 'systemtags-select2-dropdown',\n\t\t\t\t\tcloseOnSelect: false,\n\t\t\t\t\tallowClear: false,\n\t\t\t\t\tmultiple: this._multiple,\n\t\t\t\t\ttoggleSelect: this._multiple,\n\t\t\t\t\tquery: _.bind(this._queryTagsAutocomplete, this),\n\t\t\t\t\tid: function(tag) {\n\t\t\t\t\t\treturn tag.id\n\t\t\t\t\t},\n\t\t\t\t\tinitSelection: _.bind(this._initSelection, this),\n\t\t\t\t\tformatResult: _.bind(this._formatDropDownResult, this),\n\t\t\t\t\tformatSelection: _.bind(this._formatSelection, this),\n\t\t\t\t\tcreateSearchChoice: this._allowCreate ? _.bind(this._createSearchChoice, this) : undefined,\n\t\t\t\t\tsortResults: function(results) {\n\t\t\t\t\t\tvar selectedItems = _.pluck(self.$tagsField.select2('data'), 'id')\n\t\t\t\t\t\tresults.sort(function(a, b) {\n\t\t\t\t\t\t\tvar aSelected = selectedItems.indexOf(a.id) >= 0\n\t\t\t\t\t\t\tvar bSelected = selectedItems.indexOf(b.id) >= 0\n\t\t\t\t\t\t\tif (aSelected === bSelected) {\n\t\t\t\t\t\t\t\tvar aLastUsed = self._lastUsedTags.indexOf(a.id)\n\t\t\t\t\t\t\t\tvar bLastUsed = self._lastUsedTags.indexOf(b.id)\n\n\t\t\t\t\t\t\t\tif (aLastUsed !== bLastUsed) {\n\t\t\t\t\t\t\t\t\tif (bLastUsed === -1) {\n\t\t\t\t\t\t\t\t\t\treturn -1\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (aLastUsed === -1) {\n\t\t\t\t\t\t\t\t\t\treturn 1\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn aLastUsed < bLastUsed ? -1 : 1\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Both not found\n\t\t\t\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (aSelected && !bSelected) {\n\t\t\t\t\t\t\t\treturn -1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn 1\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn results\n\t\t\t\t\t},\n\t\t\t\t\tformatNoMatches: function() {\n\t\t\t\t\t\treturn t('core', 'No tags found')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t\t.on('select2-selecting', this._onSelectTag)\n\t\t\t\t\t.on('select2-removing', this._onDeselectTag)\n\n\t\t\t\tvar $dropDown = this.$tagsField.select2('dropdown')\n\t\t\t\t// register events for inside the dropdown\n\t\t\t\t$dropDown.on('mouseup', '.rename', this._onClickRenameTag)\n\t\t\t\t$dropDown.on('mouseup', '.delete', this._onClickDeleteTag)\n\t\t\t\t$dropDown.on('mouseup', '.select2-result-selectable.has-form', this._preventDefault)\n\t\t\t\t$dropDown.on('submit', '.systemtags-rename-form', this._onSubmitRenameTag)\n\n\t\t\t\tthis.delegateEvents()\n\t\t\t},\n\n\t\t\tremove: function() {\n\t\t\t\tif (this.$tagsField) {\n\t\t\t\t\tthis.$tagsField.select2('destroy')\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetValues: function() {\n\t\t\t\tthis.$tagsField.select2('val')\n\t\t\t},\n\n\t\t\tsetValues: function(values) {\n\t\t\t\tthis.$tagsField.select2('val', values)\n\t\t\t},\n\n\t\t\tsetData: function(data) {\n\t\t\t\tthis.$tagsField.select2('data', data)\n\t\t\t}\n\t\t})\n\n\tOC.SystemTags = OC.SystemTags || {}\n\tOC.SystemTags.SystemTagsInputField = SystemTagsInputField\n\n})(OC)\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./systemtags.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"bdf318e0\", content, true, {});","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".systemtags-select2-dropdown .select2-result-label .checkmark{visibility:hidden;margin-left:-5px;margin-right:5px;padding:4px}.systemtags-select2-dropdown .select2-result-label .new-item .systemtags-actions{display:none}.systemtags-select2-dropdown .select2-selected .select2-result-label .checkmark{visibility:visible}.systemtags-select2-dropdown .select2-result-label .icon{display:inline-block;opacity:.5}.systemtags-select2-dropdown .select2-result-label .icon.rename{padding:4px}.systemtags-select2-dropdown .systemtags-actions{position:absolute;right:5px}.systemtags-select2-dropdown .systemtags-rename-form{display:inline-block;width:calc(100% - 20px);top:-6px;position:relative}.systemtags-select2-dropdown .systemtags-rename-form input{display:inline-block;height:30px;width:calc(100% - 40px)}.systemtags-select2-dropdown .label{width:85%;display:inline-block;overflow:hidden;text-overflow:ellipsis}.systemtags-select2-dropdown .label.hidden{display:none}.systemtags-select2-dropdown span{line-height:25px}.systemtags-select2-dropdown .systemtags-item{display:inline-block;height:25px;width:100%}.systemtags-select2-dropdown .select2-result-label{height:25px}.systemTagsInfoView,.systemtags-select2-container{width:100%}.systemTagsInfoView .select2-choices .select2-search-choice.select2-locked .label,.systemtags-select2-container .select2-choices .select2-search-choice.select2-locked .label{opacity:0.5}#select2-drop.systemtags-select2-dropdown .select2-results li.select2-result{padding:5px}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n for (var i = 0; i < modules.length; i++) {\n var item = [].concat(modules[i]);\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./core/js/systemtags/merged-systemtags.js","webpack:///./core/js/systemtags/systemtags.js","webpack:///./core/js/systemtags/templates.js","webpack:///./core/js/systemtags/systemtagmodel.js","webpack:///./core/js/systemtags/systemtagsmappingcollection.js","webpack:///./core/js/systemtags/systemtagscollection.js","webpack:///./core/js/systemtags/systemtagsinputfield.js","webpack:///./core/css/systemtags.scss?456a","webpack:///./core/css/systemtags.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","OC","SystemTags","getDescriptiveTag","tag","_","isUndefined","toJSON","$","addClass","text","scope","$span","append","escapeHTML","userAssignable","userVisible","template","templates","Handlebars","Templates","container","depth0","helpers","partials","data","stack1","helper","lookupProperty","parent","propertyName","hooks","helperMissing","nullContext","escapeExpression","options","alias1","alias2","buffer","program","noop","blockHelperMissing","alias4","extend","Files","Client","PROPERTY_FILEID","NS_OWNCLOUD","PROPERTY_CAN_ASSIGN","PROPERTY_DISPLAYNAME","PROPERTY_USERVISIBLE","PROPERTY_USERASSIGNABLE","SystemTagModel","Backbone","Model","sync","davSync","defaults","canAssign","davProperties","parse","id","SystemTagsMappingCollection","Collection","usePUT","_objectId","_objectType","model","url","linkToRemote","this","setObjectId","objectId","setObjectType","objectType","initialize","models","getTagIds","map","SystemTagsCollection","filterByName","filter","term","substr","length","toLowerCase","filterFunction","reset","fetched","apply","arguments","fetch","self","force","success","trigger","Promise","resolve","collection","SystemTagsInputField","View","_rendered","_newTag","_lastUsedTags","className","_multiple","multiple","_allowActions","allowActions","_allowCreate","allowCreate","_isAdmin","isAdmin","isFunction","initSelection","_initSelection","on","defer","_refreshSelection","_getLastUsedTags","bindAll","ajax","type","generateUrl","response","$tagsField","select2","val","_onClickRenameTag","ev","$item","target","closest","tagId","attr","oldName","$renameForm","cid","deleteTooltip","renameLabel","find","after","tooltip","placement","focus","selectRange","_onSubmitRenameTag","preventDefault","$form","tagModel","newName","trim","save","removeClass","remove","_onClickDeleteTag","destroy","_addToSelect2Selection","selection","push","_onSelectTag","e","isNew","unshift","error","xhr","status","where","_onDeselectTag","choice","_queryTagsAutocomplete","query","tagModels","callback","results","invoke","_preventDefault","stopPropagation","_formatDropDownResult","renameTooltip","tagMarkup","innerHTML","_formatSelection","_createSearchChoice","entry","element","ids","split","modelToSelection","locked","selectedModels","indexOf","findSelectedObjects","render","$el","html","placeholder","containerCssClass","dropdownCssClass","closeOnSelect","allowClear","toggleSelect","formatResult","formatSelection","createSearchChoice","undefined","sortResults","selectedItems","pluck","sort","a","b","aSelected","bSelected","aLastUsed","bLastUsed","Util","naturalSortCompare","formatNoMatches","$dropDown","delegateEvents","getValues","setValues","values","setData","content","locals","add","default","___CSS_LOADER_API_IMPORT___","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","listToStyles","parentId","styles","newStyles","part","css","media","parts","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","isOldIE","navigator","test","userAgent","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","update","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild"],"mappings":"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","file":"systemtags.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './systemtags.js'\nimport './templates.js'\nimport './systemtagmodel.js'\nimport './systemtagsmappingcollection.js'\nimport './systemtagscollection.js'\nimport './systemtagsinputfield.js'\n\nimport '../../css/systemtags.scss'\n","/* eslint-disable */\n/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\t/**\n\t * @namespace\n\t */\n\tOC.SystemTags = {\n\t\t/**\n\t\t *\n\t\t * @param {OC.SystemTags.SystemTagModel|Object|String} tag\n\t\t * @returns {jQuery}\n\t\t */\n\t\tgetDescriptiveTag: function(tag) {\n\t\t\tif (_.isUndefined(tag.name) && !_.isUndefined(tag.toJSON)) {\n\t\t\t\ttag = tag.toJSON()\n\t\t\t}\n\n\t\t\tif (_.isUndefined(tag.name)) {\n\t\t\t\treturn $('<span>').addClass('non-existing-tag').text(\n\t\t\t\t\tt('core', 'Non-existing tag #{tag}', {\n\t\t\t\t\t\ttag: tag\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tvar $span = $('<span>')\n\t\t\t$span.append(escapeHTML(tag.name))\n\n\t\t\tvar scope\n\t\t\tif (!tag.userAssignable) {\n\t\t\t\tscope = t('core', 'restricted')\n\t\t\t}\n\t\t\tif (!tag.userVisible) {\n\t\t\t\t// invisible also implicitly means not assignable\n\t\t\t\tscope = t('core', 'invisible')\n\t\t\t}\n\t\t\tif (scope) {\n\t\t\t\t$span.append($('<em>').text(' (' + scope + ')'))\n\t\t\t}\n\t\t\treturn $span\n\t\t}\n\t}\n})(OC)\n","(function() {\n var template = Handlebars.template, templates = OC.SystemTags.Templates = OC.SystemTags.Templates || {};\ntemplates['result'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" new-item\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<span class=\\\"label\\\">\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"tagMarkup\") || (depth0 != null ? lookupProperty(depth0,\"tagMarkup\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"tagMarkup\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":22},\"end\":{\"line\":4,\"column\":37}}}) : helper))) != null ? stack1 : \"\")\n + \"</span>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<span class=\\\"label\\\">\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":22},\"end\":{\"line\":6,\"column\":30}}}) : helper)))\n + \"</span>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<span class=\\\"systemtags-actions\\\">\\n\t\t\t<a href=\\\"#\\\" class=\\\"rename icon icon-rename\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"renameTooltip\") || (depth0 != null ? lookupProperty(depth0,\"renameTooltip\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"renameTooltip\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":54},\"end\":{\"line\":10,\"column\":71}}}) : helper)))\n + \"\\\"></a>\\n\t\t</span>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }, buffer = \n \"<span class=\\\"systemtags-item\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isNew\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":28},\"end\":{\"line\":1,\"column\":57}}})) != null ? stack1 : \"\")\n + \"\\\" data-id=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"id\") || (depth0 != null ? lookupProperty(depth0,\"id\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":68},\"end\":{\"line\":1,\"column\":74}}}) : helper)))\n + \"\\\">\\n<span class=\\\"checkmark icon icon-checkmark\\\"></span>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isAdmin\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":1},\"end\":{\"line\":7,\"column\":8}}})) != null ? stack1 : \"\");\n stack1 = ((helper = (helper = lookupProperty(helpers,\"allowActions\") || (depth0 != null ? lookupProperty(depth0,\"allowActions\") : depth0)) != null ? helper : alias2),(options={\"name\":\"allowActions\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":1},\"end\":{\"line\":12,\"column\":18}}}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"allowActions\")) { stack1 = container.hooks.blockHelperMissing.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n return buffer + \"</span>\\n\";\n},\"useData\":true});\ntemplates['result_form'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<a href=\\\"#\\\" class=\\\"delete icon icon-delete\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"deleteTooltip\") || (depth0 != null ? lookupProperty(depth0,\"deleteTooltip\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"deleteTooltip\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":53},\"end\":{\"line\":5,\"column\":70}}}) : helper)))\n + \"\\\"></a>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<form class=\\\"systemtags-rename-form\\\">\\n\t <label class=\\\"hidden-visually\\\" for=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"cid\") || (depth0 != null ? lookupProperty(depth0,\"cid\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":38},\"end\":{\"line\":2,\"column\":45}}}) : helper)))\n + \"-rename-input\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"renameLabel\") || (depth0 != null ? lookupProperty(depth0,\"renameLabel\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"renameLabel\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":60},\"end\":{\"line\":2,\"column\":75}}}) : helper)))\n + \"</label>\\n\t<input id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"cid\") || (depth0 != null ? lookupProperty(depth0,\"cid\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":12},\"end\":{\"line\":3,\"column\":19}}}) : helper)))\n + \"-rename-input\\\" type=\\\"text\\\" value=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":53},\"end\":{\"line\":3,\"column\":61}}}) : helper)))\n + \"\\\">\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isAdmin\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":1},\"end\":{\"line\":6,\"column\":8}}})) != null ? stack1 : \"\")\n + \"</form>\\n\";\n},\"useData\":true});\ntemplates['selection'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t<span class=\\\"label\\\">\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"tagMarkup\") || (depth0 != null ? lookupProperty(depth0,\"tagMarkup\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"tagMarkup\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":21},\"end\":{\"line\":2,\"column\":36}}}) : helper))) != null ? stack1 : \"\")\n + \"</span>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t<span class=\\\"label\\\">\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":21},\"end\":{\"line\":4,\"column\":29}}}) : helper)))\n + \"</span>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"isAdmin\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});\n})();","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_FILEID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}id',\n\t\tPROPERTY_CAN_ASSIGN: '{' + OC.Files.Client.NS_OWNCLOUD + '}can-assign',\n\t\tPROPERTY_DISPLAYNAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}display-name',\n\t\tPROPERTY_USERVISIBLE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}user-visible',\n\t\tPROPERTY_USERASSIGNABLE: '{' + OC.Files.Client.NS_OWNCLOUD + '}user-assignable',\n\t})\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsCollection\n\t * @classdesc\n\t *\n\t * System tag\n\t *\n\t */\n\tconst SystemTagModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.SystemTags.SystemTagModel.prototype */ {\n\t\t\tsync: OC.Backbone.davSync,\n\n\t\t\tdefaults: {\n\t\t\t\tuserVisible: true,\n\t\t\t\tuserAssignable: true,\n\t\t\t\tcanAssign: true,\n\t\t\t},\n\n\t\t\tdavProperties: {\n\t\t\t\t'id':\tOC.Files.Client.PROPERTY_FILEID,\n\t\t\t\t'name': OC.Files.Client.PROPERTY_DISPLAYNAME,\n\t\t\t\t'userVisible': OC.Files.Client.PROPERTY_USERVISIBLE,\n\t\t\t\t'userAssignable': OC.Files.Client.PROPERTY_USERASSIGNABLE,\n\t\t\t\t// read-only, effective permissions computed by the server,\n\t\t\t\t'canAssign': OC.Files.Client.PROPERTY_CAN_ASSIGN,\n\t\t\t},\n\n\t\t\tparse: function(data) {\n\t\t\t\treturn {\n\t\t\t\t\tid: data.id,\n\t\t\t\t\tname: data.name,\n\t\t\t\t\tuserVisible: data.userVisible === true || data.userVisible === 'true',\n\t\t\t\t\tuserAssignable: data.userAssignable === true || data.userAssignable === 'true',\n\t\t\t\t\tcanAssign: data.canAssign === true || data.canAssign === 'true',\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\tOC.SystemTags = OC.SystemTags || {}\n\tOC.SystemTags.SystemTagModel = SystemTagModel\n})(OC)\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\t/**\n\t * @class OC.SystemTags.SystemTagsMappingCollection\n\t * @classdesc\n\t *\n\t * Collection of tags assigned to a an object\n\t *\n\t */\n\tconst SystemTagsMappingCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OC.SystemTags.SystemTagsMappingCollection.prototype */ {\n\n\t\t\tsync: OC.Backbone.davSync,\n\n\t\t\t/**\n\t\t * Use PUT instead of PROPPATCH\n\t\t */\n\t\t\tusePUT: true,\n\n\t\t\t/**\n\t\t * Id of the file for which to filter activities by\n\t\t *\n\t\t * @var int\n\t\t */\n\t\t\t_objectId: null,\n\n\t\t\t/**\n\t\t * Type of the object to filter by\n\t\t *\n\t\t * @var string\n\t\t */\n\t\t\t_objectType: 'files',\n\n\t\t\tmodel: OC.SystemTags.SystemTagModel,\n\n\t\t\turl: function() {\n\t\t\t\treturn OC.linkToRemote('dav') + '/systemtags-relations/' + this._objectType + '/' + this._objectId\n\t\t\t},\n\n\t\t\t/**\n\t\t * Sets the object id to filter by or null for all.\n\t\t *\n\t\t * @param {int} objectId file id or null\n\t\t */\n\t\t\tsetObjectId: function(objectId) {\n\t\t\t\tthis._objectId = objectId\n\t\t\t},\n\n\t\t\t/**\n\t\t * Sets the object type to filter by or null for all.\n\t\t *\n\t\t * @param {int} objectType file id or null\n\t\t */\n\t\t\tsetObjectType: function(objectType) {\n\t\t\t\tthis._objectType = objectType\n\t\t\t},\n\n\t\t\tinitialize: function(models, options) {\n\t\t\t\toptions = options || {}\n\t\t\t\tif (!_.isUndefined(options.objectId)) {\n\t\t\t\t\tthis._objectId = options.objectId\n\t\t\t\t}\n\t\t\t\tif (!_.isUndefined(options.objectType)) {\n\t\t\t\t\tthis._objectType = options.objectType\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetTagIds: function() {\n\t\t\t\treturn this.map(function(model) {\n\t\t\t\t\treturn model.id\n\t\t\t\t})\n\t\t\t},\n\t\t})\n\n\tOC.SystemTags = OC.SystemTags || {}\n\tOC.SystemTags.SystemTagsMappingCollection = SystemTagsMappingCollection\n})(OC)\n","/* eslint-disable */\n/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\n\tfunction filterFunction(model, term) {\n\t\treturn model.get('name').substr(0, term.length).toLowerCase() === term.toLowerCase()\n\t}\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsCollection\n\t * @classdesc\n\t *\n\t * Collection of tags assigned to a file\n\t *\n\t */\n\tvar SystemTagsCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OC.SystemTags.SystemTagsCollection.prototype */ {\n\n\t\t\tsync: OC.Backbone.davSync,\n\n\t\t\tmodel: OC.SystemTags.SystemTagModel,\n\n\t\t\turl: function() {\n\t\t\t\treturn OC.linkToRemote('dav') + '/systemtags/'\n\t\t\t},\n\n\t\t\tfilterByName: function(name) {\n\t\t\t\treturn this.filter(function(model) {\n\t\t\t\t\treturn filterFunction(model, name)\n\t\t\t\t})\n\t\t\t},\n\n\t\t\treset: function() {\n\t\t\t\tthis.fetched = false\n\t\t\t\treturn OC.Backbone.Collection.prototype.reset.apply(this, arguments)\n\t\t\t},\n\n\t\t\t/**\n\t\t * Lazy fetch.\n\t\t * Only fetches once, subsequent calls will directly call the success handler.\n\t\t *\n\t\t * @param options\n\t\t * @param [options.force] true to force fetch even if cached entries exist\n\t\t *\n\t\t * @see Backbone.Collection#fetch\n\t\t */\n\t\t\tfetch: function(options) {\n\t\t\t\tvar self = this\n\t\t\t\toptions = options || {}\n\t\t\t\tif (this.fetched || options.force) {\n\t\t\t\t// directly call handler\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(this, null, options)\n\t\t\t\t\t}\n\t\t\t\t\t// trigger sync event\n\t\t\t\t\tthis.trigger('sync', this, null, options)\n\t\t\t\t\treturn Promise.resolve()\n\t\t\t\t}\n\n\t\t\t\tvar success = options.success\n\t\t\t\toptions = _.extend({}, options)\n\t\t\t\toptions.success = function() {\n\t\t\t\t\tself.fetched = true\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\treturn success.apply(this, arguments)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn OC.Backbone.Collection.prototype.fetch.call(this, options)\n\t\t\t}\n\t\t})\n\n\tOC.SystemTags = OC.SystemTags || {}\n\tOC.SystemTags.SystemTagsCollection = SystemTagsCollection\n\n\t/**\n\t * @type OC.SystemTags.SystemTagsCollection\n\t */\n\tOC.SystemTags.collection = new OC.SystemTags.SystemTagsCollection()\n})(OC)\n","/* eslint-disable */\n/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n\n(function(OC) {\n\n\t/**\n\t * @class OC.SystemTags.SystemTagsInputField\n\t * @classdesc\n\t *\n\t * Displays a file's system tags\n\t *\n\t */\n\tvar SystemTagsInputField = OC.Backbone.View.extend(\n\t\t/** @lends OC.SystemTags.SystemTagsInputField.prototype */ {\n\n\t\t\t_rendered: false,\n\n\t\t\t_newTag: null,\n\n\t\t\t_lastUsedTags: [],\n\n\t\t\tclassName: 'systemTagsInputFieldContainer',\n\n\t\t\ttemplate: function(data) {\n\t\t\t\treturn '<input class=\"systemTagsInputField\" type=\"hidden\" name=\"tags\" value=\"\"/>'\n\t\t\t},\n\n\t\t\t/**\n\t\t * Creates a new SystemTagsInputField\n\t\t *\n\t\t * @param {Object} [options]\n\t\t * @param {string} [options.objectType=files] object type for which tags are assigned to\n\t\t * @param {bool} [options.multiple=false] whether to allow selecting multiple tags\n\t\t * @param {bool} [options.allowActions=true] whether tags can be renamed/delete within the dropdown\n\t\t * @param {bool} [options.allowCreate=true] whether new tags can be created\n\t\t * @param {bool} [options.isAdmin=true] whether the user is an administrator\n\t\t * @param {Function} options.initSelection function to convert selection to data\n\t\t */\n\t\t\tinitialize: function(options) {\n\t\t\t\toptions = options || {}\n\n\t\t\t\tthis._multiple = !!options.multiple\n\t\t\t\tthis._allowActions = _.isUndefined(options.allowActions) || !!options.allowActions\n\t\t\t\tthis._allowCreate = _.isUndefined(options.allowCreate) || !!options.allowCreate\n\t\t\t\tthis._isAdmin = !!options.isAdmin\n\n\t\t\t\tif (_.isFunction(options.initSelection)) {\n\t\t\t\t\tthis._initSelection = options.initSelection\n\t\t\t\t}\n\n\t\t\t\tthis.collection = options.collection || OC.SystemTags.collection\n\n\t\t\t\tvar self = this\n\t\t\t\tthis.collection.on('change:name remove', function() {\n\t\t\t\t// refresh selection\n\t\t\t\t\t_.defer(self._refreshSelection)\n\t\t\t\t})\n\n\t\t\t\t_.defer(_.bind(this._getLastUsedTags, this))\n\n\t\t\t\t_.bindAll(\n\t\t\t\t\tthis,\n\t\t\t\t\t'_refreshSelection',\n\t\t\t\t\t'_onClickRenameTag',\n\t\t\t\t\t'_onClickDeleteTag',\n\t\t\t\t\t'_onSelectTag',\n\t\t\t\t\t'_onDeselectTag',\n\t\t\t\t\t'_onSubmitRenameTag'\n\t\t\t\t)\n\t\t\t},\n\n\t\t\t_getLastUsedTags: function() {\n\t\t\t\tvar self = this\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: 'GET',\n\t\t\t\t\turl: OC.generateUrl('/apps/systemtags/lastused'),\n\t\t\t\t\tsuccess: function(response) {\n\t\t\t\t\t\tself._lastUsedTags = response\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t * Refreshes the selection, triggering a call to\n\t\t * select2's initSelection\n\t\t */\n\t\t\t_refreshSelection: function() {\n\t\t\t\tthis.$tagsField.select2('val', this.$tagsField.val())\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever the user clicked the \"rename\" action.\n\t\t * This will display the rename field.\n\t\t */\n\t\t\t_onClickRenameTag: function(ev) {\n\t\t\t\tvar $item = $(ev.target).closest('.systemtags-item')\n\t\t\t\tvar tagId = $item.attr('data-id')\n\t\t\t\tvar tagModel = this.collection.get(tagId)\n\n\t\t\t\tvar oldName = tagModel.get('name')\n\t\t\t\tvar $renameForm = $(OC.SystemTags.Templates['result_form']({\n\t\t\t\t\tcid: this.cid,\n\t\t\t\t\tname: oldName,\n\t\t\t\t\tdeleteTooltip: t('core', 'Delete'),\n\t\t\t\t\trenameLabel: t('core', 'Rename'),\n\t\t\t\t\tisAdmin: this._isAdmin\n\t\t\t\t}))\n\t\t\t\t$item.find('.label').after($renameForm)\n\t\t\t\t$item.find('.label, .systemtags-actions').addClass('hidden')\n\t\t\t\t$item.closest('.select2-result').addClass('has-form')\n\n\t\t\t\t$renameForm.find('[title]').tooltip({\n\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\tcontainer: 'body'\n\t\t\t\t})\n\t\t\t\t$renameForm.find('input').focus().selectRange(0, oldName.length)\n\t\t\t\treturn false\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever the rename form has been submitted after\n\t\t * the user entered a new tag name.\n\t\t * This will submit the change to the server.\n\t\t *\n\t\t * @param {Object} ev event\n\t\t */\n\t\t\t_onSubmitRenameTag: function(ev) {\n\t\t\t\tev.preventDefault()\n\t\t\t\tvar $form = $(ev.target)\n\t\t\t\tvar $item = $form.closest('.systemtags-item')\n\t\t\t\tvar tagId = $item.attr('data-id')\n\t\t\t\tvar tagModel = this.collection.get(tagId)\n\t\t\t\tvar newName = $(ev.target).find('input').val().trim()\n\t\t\t\tif (newName && newName !== tagModel.get('name')) {\n\t\t\t\t\ttagModel.save({ 'name': newName })\n\t\t\t\t\t// TODO: spinner, and only change text after finished saving\n\t\t\t\t\t$item.find('.label').text(newName)\n\t\t\t\t}\n\t\t\t\t$item.find('.label, .systemtags-actions').removeClass('hidden')\n\t\t\t\t$form.remove()\n\t\t\t\t$item.closest('.select2-result').removeClass('has-form')\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever a tag must be deleted\n\t\t *\n\t\t * @param {Object} ev event\n\t\t */\n\t\t\t_onClickDeleteTag: function(ev) {\n\t\t\t\tvar $item = $(ev.target).closest('.systemtags-item')\n\t\t\t\tvar tagId = $item.attr('data-id')\n\t\t\t\tthis.collection.get(tagId).destroy()\n\t\t\t\t$(ev.target).tooltip('hide')\n\t\t\t\t$item.closest('.select2-result').remove()\n\t\t\t\t// TODO: spinner\n\t\t\t\treturn false\n\t\t\t},\n\n\t\t\t_addToSelect2Selection: function(selection) {\n\t\t\t\tvar data = this.$tagsField.select2('data')\n\t\t\t\tdata.push(selection)\n\t\t\t\tthis.$tagsField.select2('data', data)\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever a tag is selected.\n\t\t * Also called whenever tag creation is requested through the dummy tag object.\n\t\t *\n\t\t * @param {Object} e event\n\t\t */\n\t\t\t_onSelectTag: function(e) {\n\t\t\t\tvar self = this\n\t\t\t\tvar tag\n\t\t\t\tif (e.object && e.object.isNew) {\n\t\t\t\t// newly created tag, check if existing\n\t\t\t\t// create a new tag\n\t\t\t\t\ttag = this.collection.create({\n\t\t\t\t\t\tname: e.object.name.trim(),\n\t\t\t\t\t\tuserVisible: true,\n\t\t\t\t\t\tuserAssignable: true,\n\t\t\t\t\t\tcanAssign: true\n\t\t\t\t\t}, {\n\t\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\t\tself._addToSelect2Selection(model.toJSON())\n\t\t\t\t\t\t\tself._lastUsedTags.unshift(model.id)\n\t\t\t\t\t\t\tself.trigger('select', model)\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: function(model, xhr) {\n\t\t\t\t\t\t\tif (xhr.status === 409) {\n\t\t\t\t\t\t\t// re-fetch collection to get the missing tag\n\t\t\t\t\t\t\t\tself.collection.reset()\n\t\t\t\t\t\t\t\tself.collection.fetch({\n\t\t\t\t\t\t\t\t\tsuccess: function(collection) {\n\t\t\t\t\t\t\t\t\t// find the tag in the collection\n\t\t\t\t\t\t\t\t\t\tvar model = collection.where({\n\t\t\t\t\t\t\t\t\t\t\tname: e.object.name.trim(),\n\t\t\t\t\t\t\t\t\t\t\tuserVisible: true,\n\t\t\t\t\t\t\t\t\t\t\tuserAssignable: true\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\tif (model.length) {\n\t\t\t\t\t\t\t\t\t\t\tmodel = model[0]\n\t\t\t\t\t\t\t\t\t\t\t// the tag already exists or was already assigned,\n\t\t\t\t\t\t\t\t\t\t\t// add it to the list anyway\n\t\t\t\t\t\t\t\t\t\t\tself._addToSelect2Selection(model.toJSON())\n\t\t\t\t\t\t\t\t\t\t\tself.trigger('select', model)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tthis.$tagsField.select2('close')\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\treturn false\n\t\t\t\t} else {\n\t\t\t\t\ttag = this.collection.get(e.object.id)\n\t\t\t\t\tthis._lastUsedTags.unshift(tag.id)\n\t\t\t\t}\n\t\t\t\tthis._newTag = null\n\t\t\t\tthis.trigger('select', tag)\n\t\t\t},\n\n\t\t\t/**\n\t\t * Event handler whenever a tag gets deselected.\n\t\t *\n\t\t * @param {Object} e event\n\t\t */\n\t\t\t_onDeselectTag: function(e) {\n\t\t\t\tthis.trigger('deselect', e.choice.id)\n\t\t\t},\n\n\t\t\t/**\n\t\t * Autocomplete function for dropdown results\n\t\t *\n\t\t * @param {Object} query select2 query object\n\t\t */\n\t\t\t_queryTagsAutocomplete: function(query) {\n\t\t\t\tvar self = this\n\t\t\t\tthis.collection.fetch({\n\t\t\t\t\tsuccess: function(collection) {\n\t\t\t\t\t\tvar tagModels = collection.filterByName(query.term.trim())\n\t\t\t\t\t\tif (!self._isAdmin) {\n\t\t\t\t\t\t\ttagModels = _.filter(tagModels, function(tagModel) {\n\t\t\t\t\t\t\t\treturn tagModel.get('canAssign')\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tquery.callback({\n\t\t\t\t\t\t\tresults: _.invoke(tagModels, 'toJSON')\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t_preventDefault: function(e) {\n\t\t\t\te.stopPropagation()\n\t\t\t},\n\n\t\t\t/**\n\t\t * Formats a single dropdown result\n\t\t *\n\t\t * @param {Object} data data to format\n\t\t * @returns {string} HTML markup\n\t\t */\n\t\t\t_formatDropDownResult: function(data) {\n\t\t\t\treturn OC.SystemTags.Templates['result'](_.extend({\n\t\t\t\t\trenameTooltip: t('core', 'Rename'),\n\t\t\t\t\tallowActions: this._allowActions,\n\t\t\t\t\ttagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data)[0].innerHTML : null,\n\t\t\t\t\tisAdmin: this._isAdmin\n\t\t\t\t}, data))\n\t\t\t},\n\n\t\t\t/**\n\t\t * Formats a single selection item\n\t\t *\n\t\t * @param {Object} data data to format\n\t\t * @returns {string} HTML markup\n\t\t */\n\t\t\t_formatSelection: function(data) {\n\t\t\t\treturn OC.SystemTags.Templates['selection'](_.extend({\n\t\t\t\t\ttagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data)[0].innerHTML : null,\n\t\t\t\t\tisAdmin: this._isAdmin\n\t\t\t\t}, data))\n\t\t\t},\n\n\t\t\t/**\n\t\t * Create new dummy choice for select2 when the user\n\t\t * types an arbitrary string\n\t\t *\n\t\t * @param {string} term entered term\n\t\t * @returns {Object} dummy tag\n\t\t */\n\t\t\t_createSearchChoice: function(term) {\n\t\t\t\tterm = term.trim()\n\t\t\t\tif (this.collection.filter(function(entry) {\n\t\t\t\t\treturn entry.get('name') === term\n\t\t\t\t}).length) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (!this._newTag) {\n\t\t\t\t\tthis._newTag = {\n\t\t\t\t\t\tid: -1,\n\t\t\t\t\t\tname: term,\n\t\t\t\t\t\tuserAssignable: true,\n\t\t\t\t\t\tuserVisible: true,\n\t\t\t\t\t\tcanAssign: true,\n\t\t\t\t\t\tisNew: true\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._newTag.name = term\n\t\t\t\t}\n\n\t\t\t\treturn this._newTag\n\t\t\t},\n\n\t\t\t_initSelection: function(element, callback) {\n\t\t\t\tvar self = this\n\t\t\t\tvar ids = $(element).val().split(',')\n\n\t\t\t\tfunction modelToSelection(model) {\n\t\t\t\t\tvar data = model.toJSON()\n\t\t\t\t\tif (!self._isAdmin && !data.canAssign) {\n\t\t\t\t\t// lock static tags for non-admins\n\t\t\t\t\t\tdata.locked = true\n\t\t\t\t\t}\n\t\t\t\t\treturn data\n\t\t\t\t}\n\n\t\t\t\tfunction findSelectedObjects(ids) {\n\t\t\t\t\tvar selectedModels = self.collection.filter(function(model) {\n\t\t\t\t\t\treturn ids.indexOf(model.id) >= 0 && (self._isAdmin || model.get('userVisible'))\n\t\t\t\t\t})\n\t\t\t\t\treturn _.map(selectedModels, modelToSelection)\n\t\t\t\t}\n\n\t\t\t\tthis.collection.fetch({\n\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\tcallback(findSelectedObjects(ids))\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\t\trender: function() {\n\t\t\t\tvar self = this\n\t\t\t\tthis.$el.html(this.template())\n\n\t\t\t\tthis.$el.find('[title]').tooltip({ placement: 'bottom' })\n\t\t\t\tthis.$tagsField = this.$el.find('[name=tags]')\n\t\t\t\tthis.$tagsField.select2({\n\t\t\t\t\tplaceholder: t('core', 'Collaborative tags'),\n\t\t\t\t\tcontainerCssClass: 'systemtags-select2-container',\n\t\t\t\t\tdropdownCssClass: 'systemtags-select2-dropdown',\n\t\t\t\t\tcloseOnSelect: false,\n\t\t\t\t\tallowClear: false,\n\t\t\t\t\tmultiple: this._multiple,\n\t\t\t\t\ttoggleSelect: this._multiple,\n\t\t\t\t\tquery: _.bind(this._queryTagsAutocomplete, this),\n\t\t\t\t\tid: function(tag) {\n\t\t\t\t\t\treturn tag.id\n\t\t\t\t\t},\n\t\t\t\t\tinitSelection: _.bind(this._initSelection, this),\n\t\t\t\t\tformatResult: _.bind(this._formatDropDownResult, this),\n\t\t\t\t\tformatSelection: _.bind(this._formatSelection, this),\n\t\t\t\t\tcreateSearchChoice: this._allowCreate ? _.bind(this._createSearchChoice, this) : undefined,\n\t\t\t\t\tsortResults: function(results) {\n\t\t\t\t\t\tvar selectedItems = _.pluck(self.$tagsField.select2('data'), 'id')\n\t\t\t\t\t\tresults.sort(function(a, b) {\n\t\t\t\t\t\t\tvar aSelected = selectedItems.indexOf(a.id) >= 0\n\t\t\t\t\t\t\tvar bSelected = selectedItems.indexOf(b.id) >= 0\n\t\t\t\t\t\t\tif (aSelected === bSelected) {\n\t\t\t\t\t\t\t\tvar aLastUsed = self._lastUsedTags.indexOf(a.id)\n\t\t\t\t\t\t\t\tvar bLastUsed = self._lastUsedTags.indexOf(b.id)\n\n\t\t\t\t\t\t\t\tif (aLastUsed !== bLastUsed) {\n\t\t\t\t\t\t\t\t\tif (bLastUsed === -1) {\n\t\t\t\t\t\t\t\t\t\treturn -1\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (aLastUsed === -1) {\n\t\t\t\t\t\t\t\t\t\treturn 1\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn aLastUsed < bLastUsed ? -1 : 1\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Both not found\n\t\t\t\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (aSelected && !bSelected) {\n\t\t\t\t\t\t\t\treturn -1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn 1\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn results\n\t\t\t\t\t},\n\t\t\t\t\tformatNoMatches: function() {\n\t\t\t\t\t\treturn t('core', 'No tags found')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t\t.on('select2-selecting', this._onSelectTag)\n\t\t\t\t\t.on('select2-removing', this._onDeselectTag)\n\n\t\t\t\tvar $dropDown = this.$tagsField.select2('dropdown')\n\t\t\t\t// register events for inside the dropdown\n\t\t\t\t$dropDown.on('mouseup', '.rename', this._onClickRenameTag)\n\t\t\t\t$dropDown.on('mouseup', '.delete', this._onClickDeleteTag)\n\t\t\t\t$dropDown.on('mouseup', '.select2-result-selectable.has-form', this._preventDefault)\n\t\t\t\t$dropDown.on('submit', '.systemtags-rename-form', this._onSubmitRenameTag)\n\n\t\t\t\tthis.delegateEvents()\n\t\t\t},\n\n\t\t\tremove: function() {\n\t\t\t\tif (this.$tagsField) {\n\t\t\t\t\tthis.$tagsField.select2('destroy')\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetValues: function() {\n\t\t\t\tthis.$tagsField.select2('val')\n\t\t\t},\n\n\t\t\tsetValues: function(values) {\n\t\t\t\tthis.$tagsField.select2('val', values)\n\t\t\t},\n\n\t\t\tsetData: function(data) {\n\t\t\t\tthis.$tagsField.select2('data', data)\n\t\t\t}\n\t\t})\n\n\tOC.SystemTags = OC.SystemTags || {}\n\tOC.SystemTags.SystemTagsInputField = SystemTagsInputField\n\n})(OC)\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./systemtags.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"bdf318e0\", content, true, {});","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".systemtags-select2-dropdown .select2-result-label .checkmark{visibility:hidden;margin-left:-5px;margin-right:5px;padding:4px}.systemtags-select2-dropdown .select2-result-label .new-item .systemtags-actions{display:none}.systemtags-select2-dropdown .select2-selected .select2-result-label .checkmark{visibility:visible}.systemtags-select2-dropdown .select2-result-label .icon{display:inline-block;opacity:.5}.systemtags-select2-dropdown .select2-result-label .icon.rename{padding:4px}.systemtags-select2-dropdown .systemtags-actions{position:absolute;right:5px}.systemtags-select2-dropdown .systemtags-rename-form{display:inline-block;width:calc(100% - 20px);top:-6px;position:relative}.systemtags-select2-dropdown .systemtags-rename-form input{display:inline-block;height:30px;width:calc(100% - 40px)}.systemtags-select2-dropdown .label{width:85%;display:inline-block;overflow:hidden;text-overflow:ellipsis}.systemtags-select2-dropdown .label.hidden{display:none}.systemtags-select2-dropdown span{line-height:25px}.systemtags-select2-dropdown .systemtags-item{display:inline-block;height:25px;width:100%}.systemtags-select2-dropdown .select2-result-label{height:25px}.systemTagsInfoView,.systemtags-select2-container{width:100%}.systemTagsInfoView .select2-choices .select2-search-choice.select2-locked .label,.systemtags-select2-container .select2-choices .select2-search-choice.select2-locked .label{opacity:0.5}#select2-drop.systemtags-select2-dropdown .select2-results li.select2-result{padding:5px}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n for (var i = 0; i < modules.length; i++) {\n var item = [].concat(modules[i]);\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n"],"sourceRoot":""}
\ No newline at end of file