{ "version": 3, "sources": ["../ui/app/components/directives/mn_select/mn_select.js"], "sourcesContent": ["/*\nCopyright 2021-Present Couchbase, Inc.\n\nUse of this software is governed by the Business Source License included in\nthe file licenses/BSL-Couchbase.txt. As of the Change Date specified in that\nfile, in accordance with the Business Source License, use of this software will\nbe governed by the Apache License, Version 2.0, included in the file\nlicenses/APL2.txt.\n*/\n\nimport angular from 'angular';\n\nimport mnSearch from \"../mn_search/mn_search_directive.js\";\nimport mnHelper from \"../../mn_helper.js\";\nimport template from \"./mn_select.html\";\n\nexport default \"mnSelect\";\n\nangular\n .module(\"mnSelect\", [\n mnSearch,\n mnHelper\n ])\n .directive(\"mnSelect\", [\"mnHelper\", mnSelectDirective]);\n\nfunction mnSelectDirective(mnHelper) {\n var mnSelect = {\n restrict: \"AE\",\n require: [\"mnSelect\", \"ngModel\"],\n scope: {\n values: \"=\",\n labels: \"=\",\n ngModel: \"=\",\n onSelect: \"&\",\n mnDisabled: \"=\",\n valuesMapping: \"=?\",\n capitalize: \"=\",\n openOnTop: \"=\",\n mnHorizontalAlign: \"=?\",\n mnPlaceholder: \"=\",\n hasSearch: \"=?\"\n },\n template,\n link: ($scope, $element, $attributes, controllers) => {\n controllers[0].setNgModelCtl(controllers[1]);\n },\n controller: [\"$scope\", \"$element\", \"$attrs\", mnSelectController],\n controllerAs: \"vm\",\n bindToController: true\n };\n\n return mnSelect;\n\n function mnSelectController($scope, $element, $attrs) {\n var vm = this;\n var searchMinimumOptionsNumber = 10;\n vm.id = mnHelper.generateID();\n\n var ngModelCtl;\n vm.setNgModelCtl = (ctl) => (ngModelCtl = ctl);\n\n if (!$attrs['valuesMapping']) {\n vm.valuesMapping = defaultValuesMapping;\n }\n if (!$attrs['mnHorizontalAlign']) {\n vm.mnHorizontalAlign = \"left\";\n }\n\n vm.mnSearchValue = \"\";\n vm.isOpened = false;\n vm.optionClicked = optionClicked;\n vm.clickSearch = clickSearch;\n vm.getPreparedValues = getPreparedValues;\n vm.hasSearchInput = hasSearchInput;\n\n /**\n * Default values mapping:\n * * if capitalize input flag is true - capitalize the displayed option if it is a string\n * * else leave the option as it is\n * @param option\n * @returns {string}\n */\n function defaultValuesMapping(option) {\n if (vm.capitalize && angular.isString(option) && option) {\n return option.charAt(0).toUpperCase() + option.slice(1);\n }\n\n return option;\n }\n\n function getPreparedValues() {\n vm.preparedValues = vm.labels ? vm.labels : (vm.values || []).map(vm.valuesMapping);\n return vm.preparedValues;\n }\n\n function optionClicked(value, event) {\n if (event && event.key !== 'Enter') {\n return;\n }\n\n vm.onSelect && vm.onSelect({selectedOption: value});\n ngModelCtl.$setViewValue(value);\n vm.isOpened = false;\n\n if (vm.hasSearchInput()) {\n vm.mnSearchValue = \"\";\n }\n }\n\n function clickSearch(event) {\n event.stopPropagation();\n }\n\n function hasSearchInput() {\n return (vm.hasSearch && (vm.values || []).length >= searchMinimumOptionsNumber) || false;\n }\n }\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBA,GAAO,oBAAQ,WAEf,UACG,OAAO,WAAY,CAClB,4BACA,oBAED,UAAU,WAAY,CAAC,WAAY,oBAEtC,2BAA2B,SAAU,CACnC,GAAI,UAAW,CACb,SAAU,KACV,QAAS,CAAC,WAAY,WACtB,MAAO,CACL,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,SAAU,IACV,WAAY,IACZ,cAAe,KACf,WAAY,IACZ,UAAW,IACX,kBAAmB,KACnB,cAAe,IACf,UAAW,MAEb,2BACA,KAAM,CAAC,OAAQ,SAAU,YAAa,cAAgB,CACpD,YAAY,GAAG,cAAc,YAAY,KAE3C,WAAY,CAAC,SAAU,WAAY,SAAU,oBAC7C,aAAc,KACd,iBAAkB,IAGpB,MAAO,UAEP,4BAA4B,OAAQ,SAAU,OAAQ,CACpD,GAAI,IAAK,KACL,2BAA6B,GACjC,GAAG,GAAK,SAAS,aAEjB,GAAI,YACJ,GAAG,cAAgB,AAAC,KAAS,WAAa,IAErC,OAAO,eACV,IAAG,cAAgB,sBAEhB,OAAO,mBACV,IAAG,kBAAoB,QAGzB,GAAG,cAAgB,GACnB,GAAG,SAAW,GACd,GAAG,cAAgB,cACnB,GAAG,YAAc,YACjB,GAAG,kBAAoB,kBACvB,GAAG,eAAiB,eASpB,8BAA8B,OAAQ,CACpC,MAAI,IAAG,YAAc,UAAQ,SAAS,SAAW,OACxC,OAAO,OAAO,GAAG,cAAgB,OAAO,MAAM,GAGhD,OALA,oDAQT,4BAA6B,CAC3B,UAAG,eAAiB,GAAG,OAAS,GAAG,OAAU,IAAG,QAAU,IAAI,IAAI,GAAG,eAC9D,GAAG,eAFH,8CAKT,uBAAuB,MAAO,MAAO,CACnC,AAAI,OAAS,MAAM,MAAQ,SAI3B,IAAG,UAAY,GAAG,SAAS,CAAC,eAAgB,QAC5C,WAAW,cAAc,OACzB,GAAG,SAAW,GAEV,GAAG,kBACL,IAAG,cAAgB,KAVd,sCAcT,qBAAqB,MAAO,CAC1B,MAAM,kBADC,kCAIT,yBAA0B,CACxB,MAAQ,IAAG,WAAc,IAAG,QAAU,IAAI,QAAU,4BAA+B,GAD5E,yCAxFJ", "names": [] }