nextcloud/core/js/dist/systemtags.js.map

1 line
78 KiB
Plaintext

{"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?50be","webpack:///./core/css/systemtags.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.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","__webpack_exports__","OC","SystemTags","getDescriptiveTag","tag","_","isUndefined","toJSON","$","addClass","text","scope","$span","append","escapeHTML","userAssignable","userVisible","$tag","template","templates","Handlebars","Templates","1","container","depth0","helpers","partials","data","3","stack1","helper","tagMarkup","helperMissing","nullContext","hash","5","escapeExpression","7","renameTooltip","compiler","main","options","alias1","alias2","buffer","isNew","fn","program","inverse","noop","_typeof","id","isAdmin","allowActions","blockHelperMissing","useData","deleteTooltip","alias4","cid","renameLabel","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","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","_allowCreate","allowCreate","_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","find","after","tooltip","placement","focus","selectRange","_onSubmitRenameTag","preventDefault","$form","tagModel","newName","trim","save","removeClass","remove","_onClickDeleteTag","destroy","_addToSelect2Selection","selection","push","_onSelectTag","e","unshift","error","xhr","status","where","_onDeselectTag","choice","_queryTagsAutocomplete","query","tagModels","callback","results","invoke","_preventDefault","stopPropagation","_formatDropDownResult","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","hmr","transform","insertInto","locals","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","_i","memo","stylesInDom","isOldIE","window","document","all","atob","getElement","parent","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","j","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","style","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","splice","createStyleElement","createElement","attrs","nonce","nc","getNonce","addAttrs","el","keys","forEach","setAttribute","obj","update","result","default","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","href","styleSheet","cssText","createTextNode","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","Boolean","cssNode","childNodes","location","baseUrl","protocol","host","currentDir","pathname","replace","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","test"],"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 = 10);\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","/*\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 * @return {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\tt('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\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;\n\n return \"\t\t<span class=\\\"label\\\">\"\n + ((stack1 = ((helper = (helper = helpers.tagMarkup || (depth0 != null ? depth0.tagMarkup : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"tagMarkup\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"</span>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t<span class=\\\"label\\\">\"\n + container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"</span>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper;\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 = helpers.renameTooltip || (depth0 != null ? depth0.renameTooltip : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"renameTooltip\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></a>\\n\t\t</span>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", buffer = \n \"<span class=\\\"systemtags-item\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isNew : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" data-id=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n<span class=\\\"checkmark icon icon-checkmark\\\"></span>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isAdmin : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data})) != null ? stack1 : \"\");\n stack1 = ((helper = (helper = helpers.allowActions || (depth0 != null ? depth0.allowActions : depth0)) != null ? helper : alias2),(options={\"name\":\"allowActions\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!helpers.allowActions) { stack1 = helpers.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;\n\n return \"\t\t<a href=\\\"#\\\" class=\\\"delete icon icon-delete\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.deleteTooltip || (depth0 != null ? depth0.deleteTooltip : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"deleteTooltip\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></a>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<form class=\\\"systemtags-rename-form\\\">\\n\t <label class=\\\"hidden-visually\\\" for=\\\"\"\n + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n + \"-rename-input\\\">\"\n + alias4(((helper = (helper = helpers.renameLabel || (depth0 != null ? depth0.renameLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"renameLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"</label>\\n\t<input id=\\\"\"\n + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n + \"-rename-input\\\" type=\\\"text\\\" value=\\\"\"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isAdmin : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</form>\\n\";\n},\"useData\":true});\ntemplates['selection'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper;\n\n return \"\t<span class=\\\"label\\\">\"\n + ((stack1 = ((helper = (helper = helpers.tagMarkup || (depth0 != null ? depth0.tagMarkup : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"tagMarkup\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"</span>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t<span class=\\\"label\\\">\"\n + container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"</span>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isAdmin : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != 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\tvar SystemTagModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.SystemTags.SystemTagModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\tdefaults: {\n\t\t\tuserVisible: true,\n\t\t\tuserAssignable: true,\n\t\t\tcanAssign: true\n\t\t},\n\n\t\tdavProperties: {\n\t\t\t'id':\tOC.Files.Client.PROPERTY_FILEID,\n\t\t\t'name': OC.Files.Client.PROPERTY_DISPLAYNAME,\n\t\t\t'userVisible': \tOC.Files.Client.PROPERTY_USERVISIBLE,\n\t\t\t'userAssignable': \tOC.Files.Client.PROPERTY_USERASSIGNABLE,\n\t\t\t// read-only, effective permissions computed by the server,\n\t\t\t'canAssign': OC.Files.Client.PROPERTY_CAN_ASSIGN\n\t\t},\n\n\t\tparse: function(data) {\n\t\t\treturn {\n\t\t\t\tid: data.id,\n\t\t\t\tname: data.name,\n\t\t\t\tuserVisible: data.userVisible === true || data.userVisible === 'true',\n\t\t\t\tuserAssignable: data.userAssignable === true || data.userAssignable === 'true',\n\t\t\t\tcanAssign: data.canAssign === true || data.canAssign === 'true'\n\t\t\t};\n\t\t}\n\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\tvar SystemTagsMappingCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OC.SystemTags.SystemTagsMappingCollection.prototype */ {\n\n\t\tsync: OC.Backbone.davSync,\n\n\t\t/**\n\t\t * Use PUT instead of PROPPATCH\n\t\t */\n\t\tusePUT: true,\n\n\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_objectId: null,\n\n\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_objectType: 'files',\n\n\t\tmodel: OC.SystemTags.SystemTagModel,\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/systemtags-relations/' + this._objectType + '/' + this._objectId;\n\t\t},\n\n\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\tsetObjectId: function(objectId) {\n\t\t\tthis._objectId = objectId;\n\t\t},\n\n\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\tsetObjectType: function(objectType) {\n\t\t\tthis._objectType = objectType;\n\t\t},\n\n\t\tinitialize: function(models, options) {\n\t\t\toptions = options || {};\n\t\t\tif (!_.isUndefined(options.objectId)) {\n\t\t\t\tthis._objectId = options.objectId;\n\t\t\t}\n\t\t\tif (!_.isUndefined(options.objectType)) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t},\n\n\t\tgetTagIds: function() {\n\t\t\treturn this.map(function(model) {\n\t\t\t\treturn model.id;\n\t\t\t});\n\t\t}\n\t});\n\n\tOC.SystemTags = OC.SystemTags || {};\n\tOC.SystemTags.SystemTagsMappingCollection = SystemTagsMappingCollection;\n})(OC);\n\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\tsync: OC.Backbone.davSync,\n\n\t\tmodel: OC.SystemTags.SystemTagModel,\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/systemtags/';\n\t\t},\n\n\t\tfilterByName: function(name) {\n\t\t\treturn this.filter(function(model) {\n\t\t\t\treturn filterFunction(model, name);\n\t\t\t});\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.fetched = false;\n\t\t\treturn OC.Backbone.Collection.prototype.reset.apply(this, arguments);\n\t\t},\n\n\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\tfetch: function(options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\t\t\tif (this.fetched || options.force) {\n\t\t\t\t// directly call handler\n\t\t\t\tif (options.success) {\n\t\t\t\t\toptions.success(this, null, options);\n\t\t\t\t}\n\t\t\t\t// trigger sync event\n\t\t\t\tthis.trigger('sync', this, null, options);\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\n\t\t\tvar success = options.success;\n\t\t\toptions = _.extend({}, options);\n\t\t\toptions.success = function() {\n\t\t\t\tself.fetched = true;\n\t\t\t\tif (success) {\n\t\t\t\t\treturn success.apply(this, arguments);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn OC.Backbone.Collection.prototype.fetch.call(this, options);\n\t\t}\n\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\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_rendered: false,\n\n\t\t_newTag: null,\n\n\t\t_lastUsedTags: [],\n\n\t\tclassName: 'systemTagsInputFieldContainer',\n\n\t\ttemplate: function(data) {\n\t\t\treturn '<input class=\"systemTagsInputField\" type=\"hidden\" name=\"tags\" value=\"\"/>';\n\t\t},\n\n\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\tinitialize: function(options) {\n\t\t\toptions = options || {};\n\n\t\t\tthis._multiple = !!options.multiple;\n\t\t\tthis._allowActions = _.isUndefined(options.allowActions) || !!options.allowActions;\n\t\t\tthis._allowCreate = _.isUndefined(options.allowCreate) || !!options.allowCreate;\n\t\t\tthis._isAdmin = !!options.isAdmin;\n\n\t\t\tif (_.isFunction(options.initSelection)) {\n\t\t\t\tthis._initSelection = options.initSelection;\n\t\t\t}\n\n\t\t\tthis.collection = options.collection || OC.SystemTags.collection;\n\n\t\t\tvar self = this;\n\t\t\tthis.collection.on('change:name remove', function() {\n\t\t\t\t// refresh selection\n\t\t\t\t_.defer(self._refreshSelection);\n\t\t\t});\n\n\t\t\t_.defer(_.bind(this._getLastUsedTags, this));\n\n\t\t\t_.bindAll(\n\t\t\t\tthis,\n\t\t\t\t'_refreshSelection',\n\t\t\t\t'_onClickRenameTag',\n\t\t\t\t'_onClickDeleteTag',\n\t\t\t\t'_onSelectTag',\n\t\t\t\t'_onDeselectTag',\n\t\t\t\t'_onSubmitRenameTag'\n\t\t\t);\n\t\t},\n\n\t\t_getLastUsedTags: function() {\n\t\t\tvar self = this;\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: OC.generateUrl('/apps/systemtags/lastused'),\n\t\t\t\tsuccess: function (response) {\n\t\t\t\t\tself._lastUsedTags = response;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Refreshes the selection, triggering a call to\n\t\t * select2's initSelection\n\t\t */\n\t\t_refreshSelection: function() {\n\t\t\tthis.$tagsField.select2('val', this.$tagsField.val());\n\t\t},\n\n\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_onClickRenameTag: function(ev) {\n\t\t\tvar $item = $(ev.target).closest('.systemtags-item');\n\t\t\tvar tagId = $item.attr('data-id');\n\t\t\tvar tagModel = this.collection.get(tagId);\n\n\t\t\tvar oldName = tagModel.get('name');\n\t\t\tvar $renameForm = $(OC.SystemTags.Templates['result_form']({\n\t\t\t\tcid: this.cid,\n\t\t\t\tname: oldName,\n\t\t\t\tdeleteTooltip: t('core', 'Delete'),\n\t\t\t\trenameLabel: t('core', 'Rename'),\n\t\t\t\tisAdmin: this._isAdmin\n\t\t\t}));\n\t\t\t$item.find('.label').after($renameForm);\n\t\t\t$item.find('.label, .systemtags-actions').addClass('hidden');\n\t\t\t$item.closest('.select2-result').addClass('has-form');\n\n\t\t\t$renameForm.find('[title]').tooltip({\n\t\t\t\tplacement: 'bottom',\n\t\t\t\tcontainer: 'body'\n\t\t\t});\n\t\t\t$renameForm.find('input').focus().selectRange(0, oldName.length);\n\t\t\treturn false;\n\t\t},\n\n\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_onSubmitRenameTag: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $form = $(ev.target);\n\t\t\tvar $item = $form.closest('.systemtags-item');\n\t\t\tvar tagId = $item.attr('data-id');\n\t\t\tvar tagModel = this.collection.get(tagId);\n\t\t\tvar newName = $(ev.target).find('input').val().trim();\n\t\t\tif (newName && newName !== tagModel.get('name')) {\n\t\t\t\ttagModel.save({'name': newName});\n\t\t\t\t// TODO: spinner, and only change text after finished saving\n\t\t\t\t$item.find('.label').text(newName);\n\t\t\t}\n\t\t\t$item.find('.label, .systemtags-actions').removeClass('hidden');\n\t\t\t$form.remove();\n\t\t\t$item.closest('.select2-result').removeClass('has-form');\n\t\t},\n\n\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_onClickDeleteTag: function(ev) {\n\t\t\tvar $item = $(ev.target).closest('.systemtags-item');\n\t\t\tvar tagId = $item.attr('data-id');\n\t\t\tthis.collection.get(tagId).destroy();\n\t\t\t$(ev.target).tooltip('hide');\n\t\t\t$item.closest('.select2-result').remove();\n\t\t\t// TODO: spinner\n\t\t\treturn false;\n\t\t},\n\n\t\t_addToSelect2Selection: function(selection) {\n\t\t\tvar data = this.$tagsField.select2('data');\n\t\t\tdata.push(selection);\n\t\t\tthis.$tagsField.select2('data', data);\n\t\t},\n\n\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_onSelectTag: function(e) {\n\t\t\tvar self = this;\n\t\t\tvar tag;\n\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\ttag = this.collection.create({\n\t\t\t\t\tname: e.object.name.trim(),\n\t\t\t\t\tuserVisible: true,\n\t\t\t\t\tuserAssignable: true,\n\t\t\t\t\tcanAssign: true\n\t\t\t\t}, {\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._addToSelect2Selection(model.toJSON());\n\t\t\t\t\t\tself._lastUsedTags.unshift(model.id);\n\t\t\t\t\t\tself.trigger('select', model);\n\t\t\t\t\t},\n\t\t\t\t\terror: function(model, xhr) {\n\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\tself.collection.reset();\n\t\t\t\t\t\t\tself.collection.fetch({\n\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\tvar model = collection.where({\n\t\t\t\t\t\t\t\t\t\tname: e.object.name.trim(),\n\t\t\t\t\t\t\t\t\t\tuserVisible: true,\n\t\t\t\t\t\t\t\t\t\tuserAssignable: true\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tif (model.length) {\n\t\t\t\t\t\t\t\t\t\tmodel = model[0];\n\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// add it to the list anyway\n\t\t\t\t\t\t\t\t\t\tself._addToSelect2Selection(model.toJSON());\n\t\t\t\t\t\t\t\t\t\tself.trigger('select', model);\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});\n\t\t\t\tthis.$tagsField.select2('close');\n\t\t\t\te.preventDefault();\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\ttag = this.collection.get(e.object.id);\n\t\t\t\tthis._lastUsedTags.unshift(tag.id);\n\t\t\t}\n\t\t\tthis._newTag = null;\n\t\t\tthis.trigger('select', tag);\n\t\t},\n\n\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_onDeselectTag: function(e) {\n\t\t\tthis.trigger('deselect', e.choice.id);\n\t\t},\n\n\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_queryTagsAutocomplete: function(query) {\n\t\t\tvar self = this;\n\t\t\tthis.collection.fetch({\n\t\t\t\tsuccess: function(collection) {\n\t\t\t\t\tvar tagModels = collection.filterByName(query.term.trim());\n\t\t\t\t\tif (!self._isAdmin) {\n\t\t\t\t\t\ttagModels = _.filter(tagModels, function(tagModel) {\n\t\t\t\t\t\t\treturn tagModel.get('canAssign');\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tquery.callback({\n\t\t\t\t\t\tresults: _.invoke(tagModels, 'toJSON')\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_preventDefault: function(e) {\n\t\t\te.stopPropagation();\n\t\t},\n\n\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 * @return {string} HTML markup\n\t\t */\n\t\t_formatDropDownResult: function(data) {\n\t\t\treturn OC.SystemTags.Templates['result'](_.extend({\n\t\t\t\trenameTooltip: t('core', 'Rename'),\n\t\t\t\tallowActions: this._allowActions,\n\t\t\t\ttagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data)[0].innerHTML : null,\n\t\t\t\tisAdmin: this._isAdmin\n\t\t\t}, data));\n\t\t},\n\n\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 * @return {string} HTML markup\n\t\t */\n\t\t_formatSelection: function(data) {\n\t\t\treturn OC.SystemTags.Templates['selection'](_.extend({\n\t\t\t\ttagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data)[0].innerHTML : null,\n\t\t\t\tisAdmin: this._isAdmin\n\t\t\t}, data));\n\t\t},\n\n\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 * @return {Object} dummy tag\n\t\t */\n\t\t_createSearchChoice: function(term) {\n\t\t\tterm = term.trim();\n\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\treturn;\n\t\t\t}\n\t\t\tif (!this._newTag) {\n\t\t\t\tthis._newTag = {\n\t\t\t\t\tid: -1,\n\t\t\t\t\tname: term,\n\t\t\t\t\tuserAssignable: true,\n\t\t\t\t\tuserVisible: true,\n\t\t\t\t\tcanAssign: true,\n\t\t\t\t\tisNew: true\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tthis._newTag.name = term;\n\t\t\t}\n\n\t\t\treturn this._newTag;\n\t\t},\n\n\t\t_initSelection: function(element, callback) {\n\t\t\tvar self = this;\n\t\t\tvar ids = $(element).val().split(',');\n\n\t\t\tfunction modelToSelection(model) {\n\t\t\t\tvar data = model.toJSON();\n\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\tdata.locked = true;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tfunction findSelectedObjects(ids) {\n\t\t\t\tvar selectedModels = self.collection.filter(function(model) {\n\t\t\t\t\treturn ids.indexOf(model.id) >= 0 && (self._isAdmin || model.get('userVisible'));\n\t\t\t\t});\n\t\t\t\treturn _.map(selectedModels, modelToSelection);\n\t\t\t}\n\n\t\t\tthis.collection.fetch({\n\t\t\t\tsuccess: function() {\n\t\t\t\t\tcallback(findSelectedObjects(ids));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tthis.$el.html(this.template());\n\n\t\t\tthis.$el.find('[title]').tooltip({placement: 'bottom'});\n\t\t\tthis.$tagsField = this.$el.find('[name=tags]');\n\t\t\tthis.$tagsField.select2({\n\t\t\t\tplaceholder: t('core', 'Collaborative tags'),\n\t\t\t\tcontainerCssClass: 'systemtags-select2-container',\n\t\t\t\tdropdownCssClass: 'systemtags-select2-dropdown',\n\t\t\t\tcloseOnSelect: false,\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: this._multiple,\n\t\t\t\ttoggleSelect: this._multiple,\n\t\t\t\tquery: _.bind(this._queryTagsAutocomplete, this),\n\t\t\t\tid: function(tag) {\n\t\t\t\t\treturn tag.id;\n\t\t\t\t},\n\t\t\t\tinitSelection: _.bind(this._initSelection, this),\n\t\t\t\tformatResult: _.bind(this._formatDropDownResult, this),\n\t\t\t\tformatSelection: _.bind(this._formatSelection, this),\n\t\t\t\tcreateSearchChoice: this._allowCreate ? _.bind(this._createSearchChoice, this) : undefined,\n\t\t\t\tsortResults: function(results) {\n\t\t\t\t\tvar selectedItems = _.pluck(self.$tagsField.select2('data'), 'id');\n\t\t\t\t\tresults.sort(function(a, b) {\n\t\t\t\t\t\tvar aSelected = selectedItems.indexOf(a.id) >= 0;\n\t\t\t\t\t\tvar bSelected = selectedItems.indexOf(b.id) >= 0;\n\t\t\t\t\t\tif (aSelected === bSelected) {\n\t\t\t\t\t\t\tvar aLastUsed = self._lastUsedTags.indexOf(a.id);\n\t\t\t\t\t\t\tvar bLastUsed = self._lastUsedTags.indexOf(b.id);\n\n\t\t\t\t\t\t\tif (aLastUsed !== bLastUsed) {\n\t\t\t\t\t\t\t\tif (bLastUsed === -1) {\n\t\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (aLastUsed === -1) {\n\t\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn aLastUsed < bLastUsed ? -1 : 1;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Both not found\n\t\t\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (aSelected && !bSelected) {\n\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t});\n\t\t\t\t\treturn results;\n\t\t\t\t},\n\t\t\t\tformatNoMatches: function() {\n\t\t\t\t\treturn t('core', 'No tags found');\n\t\t\t\t}\n\t\t\t})\n\t\t\t\t.on('select2-selecting', this._onSelectTag)\n\t\t\t\t.on('select2-removing', this._onDeselectTag);\n\n\t\t\tvar $dropDown = this.$tagsField.select2('dropdown');\n\t\t\t// register events for inside the dropdown\n\t\t\t$dropDown.on('mouseup', '.rename', this._onClickRenameTag);\n\t\t\t$dropDown.on('mouseup', '.delete', this._onClickDeleteTag);\n\t\t\t$dropDown.on('mouseup', '.select2-result-selectable.has-form', this._preventDefault);\n\t\t\t$dropDown.on('submit', '.systemtags-rename-form', this._onSubmitRenameTag);\n\n\t\t\tthis.delegateEvents();\n\t\t},\n\n\t\tremove: function() {\n\t\t\tif (this.$tagsField) {\n\t\t\t\tthis.$tagsField.select2('destroy');\n\t\t\t}\n\t\t},\n\n\t\tgetValues: function() {\n\t\t\tthis.$tagsField.select2('val');\n\t\t},\n\n\t\tsetValues: function(values) {\n\t\t\tthis.$tagsField.select2('val', values);\n\t\t},\n\n\t\tsetData: function(data) {\n\t\t\tthis.$tagsField.select2('data', data);\n\t\t}\n\t});\n\n\tOC.SystemTags = OC.SystemTags || {};\n\tOC.SystemTags.SystemTagsInputField = SystemTagsInputField;\n\n})(OC);\n\n","\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/lib/loader.js!./systemtags.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/lib/loader.js!./systemtags.scss\", function() {\n\t\tvar newContent = require(\"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/lib/loader.js!./systemtags.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n * @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n * @copyright Copyright (c) 2016, Vincent Petry <pvince81@owncloud.com>\\n * @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n */\\n.systemtags-select2-dropdown .select2-result-label .checkmark {\\n visibility: hidden;\\n margin-left: -5px;\\n margin-right: 5px;\\n padding: 4px; }\\n\\n.systemtags-select2-dropdown .select2-result-label .new-item .systemtags-actions {\\n display: none; }\\n\\n.systemtags-select2-dropdown .select2-selected .select2-result-label .checkmark {\\n visibility: visible; }\\n\\n.systemtags-select2-dropdown .select2-result-label .icon {\\n display: inline-block;\\n opacity: .5; }\\n .systemtags-select2-dropdown .select2-result-label .icon.rename {\\n padding: 4px; }\\n\\n.systemtags-select2-dropdown .systemtags-actions {\\n position: absolute;\\n right: 5px; }\\n\\n.systemtags-select2-dropdown .systemtags-rename-form {\\n display: inline-block;\\n width: calc(100% - 20px);\\n top: -6px;\\n position: relative; }\\n .systemtags-select2-dropdown .systemtags-rename-form input {\\n display: inline-block;\\n height: 30px;\\n width: calc(100% - 40px); }\\n\\n.systemtags-select2-dropdown .label {\\n width: 85%;\\n display: inline-block;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n .systemtags-select2-dropdown .label.hidden {\\n display: none; }\\n\\n.systemtags-select2-dropdown span {\\n line-height: 25px; }\\n\\n.systemtags-select2-dropdown .systemtags-item {\\n display: inline-block;\\n height: 25px;\\n width: 100%; }\\n\\n.systemtags-select2-dropdown .select2-result-label {\\n height: 25px; }\\n\\n.systemtags-select2-container {\\n width: 100%; }\\n .systemtags-select2-container .select2-choices .select2-search-choice.select2-locked .label {\\n opacity: 0.5; }\\n\\n#select2-drop.systemtags-select2-dropdown .select2-results li.select2-result {\\n padding: 5px; }\\n\", \"\"]);\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 var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = modules[_i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n }\n\n list.push(item);\n }\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\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n"],"sourceRoot":""}