{"version":3,"sources":["wwwroot/js/Controls/DropDown/Script/DropDown.js"],"names":["CompuSport","window","GUID_9276356f_718b_469a_9673_68c208636479","getGuid","Controls","DropDown","Base","RefreshOnChange","HasChanged","valA","this","StartValue","valB","GetSelectedItemValue","hasChanged","$","each","key","value","UpdateStartValue","ClearStartValue","InputNames","array","FillHasChangedValuesInData","push","Name","IsOpen","isOpen","$DropDown","addClass","removeClass","constructor","id","super","searchBoxTextIn","me","Id","BindSelectorElements","$SlideDownPanel","data","$Items","find","BindSlideDownPanelElements","AppendSlideDownPanelToEndOfBodyIfNot","IncrementDecrementOwnerOfSlideDownPanel","BindBodyEvents","RefreshOnElementValueChange","Refresh","GetValue","$SelectedItem","undefined","DOM","body","on","e","caller","HideList","off","target","closest","length","trigger","bindSearchBox","AutoSaveOnPost","$Hiddens","$Displays","ExtractElementIdsFromData","BindDropDownSelectorEvents","ToggleListVisibility","RemoveSlideDownPanelIfPossible","decrement","direction","ownercounttitle","actualCount","parent","hasClass","appendTo","remove","AjustLayoutOfTheList","layoutHelperClass","Layout","PositionTargetRefToSourceAndWindows","AllLayoutHelperClasses","$ListContent","css","outerWidth","$ControlPanel","width","ShowList","tr","SelectItem","StayOpenUntilNextClick","slideDown","$SearchBox","focus","select","controlPanelHeight","height","$ListPart","scrollTo","scrollTop","$SearchBoxContainer","offon","event","keyCode","which","stopPropagation","preventDefault","firstNotHidden","filter","first","currentText","val","toLowerCase","Lag","trim","item","children","text","indexOf","slideUp","ClearSelection","$LastSelectedItem","SelectionChange","$hidden","modelValue","contents","hiddenIndex","i","tagName","nodeValue","$disp","html","AlterHiddenNameToNotBePosted","attr","replace","AlterHiddenNameToBePosted","propertyName","GetValueFromHiddens","$this","name","modelValues","isOldDropDown","end","dynamicModel","n","v","SetValue","filteredValue","itemValue","CallSelectionChange","callback","extraData","Send","PrepareData","error","console","log","Ajax","Get","response","$response","ReplaceCurrentDropDownWithNewOne","PrepareDataToSend","dropDown","newSelector","newSlideDown","ReplaceCurrentDropDownPanelWithNewOne","newPanel","$EmptyItem"],"mappings":"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","file":"dropdown.min.js","sourcesContent":["(function() { window.GUID_9276356f_718b_469a_9673_68c208636479 = { getGuid: function() { return \"9276356f-718b-469a-9673-68c208636479\"; } }; })();\nvar CompuSport;\n(function (CompuSport) {\n var Controls;\n (function (Controls) {\n class DropDown extends Controls.Base.RefreshOnChange {\n HasChanged() {\n let valA = this.StartValue;\n let valB = this.GetSelectedItemValue();\n if ((valA == null || valB == null) && valB != valA) {\n return true;\n }\n let hasChanged = false;\n $.each(valA, (key, value) => {\n if (valB[key] != value) {\n hasChanged = true;\n return;\n }\n });\n return hasChanged;\n }\n UpdateStartValue() {\n this.StartValue = this.GetSelectedItemValue();\n }\n ClearStartValue() {\n this.StartValue = null;\n }\n InputNames() {\n let array = [];\n let data = {};\n this.FillHasChangedValuesInData(data);\n array.push(this.Name);\n return array;\n }\n get IsOpen() {\n return this.isOpen;\n }\n set IsOpen(value) {\n this.isOpen = value;\n if (value) {\n this.$DropDown.addClass(\"IsOpen\");\n }\n else {\n this.$DropDown.removeClass(\"IsOpen\");\n }\n }\n constructor(id) {\n super();\n this.searchBoxTextIn = false;\n let me = this;\n me.Id = id;\n me.$DropDown = $(\"#\" + id);\n me.BindSelectorElements();\n me.$SlideDownPanel = $(\"#\" + me.$DropDown.data(\"listkey\"));\n me.$Items = me.$SlideDownPanel.find(\".Item\");\n me.BindSlideDownPanelElements();\n me.AppendSlideDownPanelToEndOfBodyIfNot();\n me.IncrementDecrementOwnerOfSlideDownPanel();\n me.BindBodyEvents();\n me.RefreshOnElementValueChange(() => {\n me.Refresh();\n });\n me.StartValue = me.GetValue(me.$SelectedItem);\n }\n BindBodyEvents() {\n let me = this;\n if (CompuSport.DOM == undefined) {\n return;\n }\n //CompuSport.DOM.win.resize(function () {\n // if (me.IsOpen) {\n // //me.HideList();\n // }\n //});\n CompuSport.DOM.body.on(\"hidedropdowns\", function (e, caller) {\n if (caller == undefined || caller != me) {\n me.HideList();\n }\n });\n CompuSport.DOM.body.off(\"mousedown.dropdown\");\n CompuSport.DOM.body.on(\"mousedown.dropdown\", function (e) {\n var clickedDropDown = $(e.target).closest(\".CSDropDown,.DropDownSlideDownPanel\");\n if (clickedDropDown.length == 0) {\n CompuSport.DOM.body.trigger(\"hidedropdowns\");\n }\n });\n me.bindSearchBox();\n }\n BindSelectorElements() {\n let me = this;\n me.Name = me.$DropDown.data(\"name\");\n me.$DropDown.data(\"context\", me);\n me.AutoSaveOnPost = me.$DropDown.data(\"autosaveonpost\") == \"True\";\n me.$SlideDownPanel = $(\"#\" + me.$DropDown.data(\"listkey\"));\n me.$Hiddens = me.$DropDown.find(\"input[type=hidden]\");\n me.$Displays = me.$DropDown.find(\".dispval\");\n me.ExtractElementIdsFromData(me.$DropDown);\n me.BindDropDownSelectorEvents();\n }\n BindDropDownSelectorEvents() {\n let me = this;\n me.$DropDown\n .on(\"click\", function (e) {\n me.ToggleListVisibility();\n })\n .on(\"remove\", function (e) {\n me.RemoveSlideDownPanelIfPossible();\n });\n }\n IncrementDecrementOwnerOfSlideDownPanel(decrement = false) {\n let me = this;\n let direction = decrement ? -1 : 1;\n let ownercounttitle = \"ownercount\";\n let actualCount = me.$SlideDownPanel.data(ownercounttitle);\n if (actualCount == null) {\n actualCount = 0;\n }\n actualCount = actualCount + direction;\n me.$SlideDownPanel.data(ownercounttitle, actualCount);\n return actualCount;\n }\n AppendSlideDownPanelToEndOfBodyIfNot() {\n let me = this;\n var parent = me.$SlideDownPanel.parent();\n if (parent.hasClass(\"IsNotAtTheEndOfBody\")) {\n if (CompuSport.DOM != undefined) {\n me.$SlideDownPanel.appendTo(CompuSport.DOM.body);\n }\n parent.remove();\n }\n }\n RemoveSlideDownPanelIfPossible() {\n let me = this;\n let remainingOwner = me.IncrementDecrementOwnerOfSlideDownPanel(true);\n if (remainingOwner == 0) {\n me.$SlideDownPanel.remove();\n }\n }\n AjustLayoutOfTheList() {\n let me = this;\n let layoutHelperClass = CompuSport.Layout.PositionTargetRefToSourceAndWindows(me.$DropDown, me.$SlideDownPanel);\n me.$SlideDownPanel.removeClass(CompuSport.Layout.AllLayoutHelperClasses());\n me.$SlideDownPanel.addClass(layoutHelperClass);\n me.$ListContent.css(\"min-width\", me.$DropDown.outerWidth() + \"px\");\n me.$ControlPanel.css(\"min-width\", me.$DropDown.width()); /*Vue ca position est de type fixed, je dois setter la taille dememe au lieu de 100%*/\n me.$ControlPanel.css(\"width\", me.$SlideDownPanel.width() - 5);\n }\n ToggleListVisibility() {\n if (this.IsOpen) {\n this.HideList();\n }\n else {\n this.ShowList();\n }\n }\n ShowList() {\n let me = this;\n if (me.$DropDown.hasClass(\"IsReadOnly\")) {\n return;\n }\n CompuSport.DOM.body.trigger(\"hidedropdowns\", me);\n CompuSport.DOM.body.trigger(\"beforeshowing\", me);\n me.AjustLayoutOfTheList();\n me.$SlideDownPanel.on(\"click.item\", \".Item\", function (e) {\n var clickedItem = $(e.target);\n var tr = clickedItem.closest(\"tr\");\n me.SelectItem(tr);\n if (me.StayOpenUntilNextClick) {\n me.StayOpenUntilNextClick = false;\n }\n else {\n me.HideList();\n }\n });\n me.bindSearchBox();\n if (me.$SelectedItem && !me.$SelectedItem.hasClass(\"Empty\")) {\n me.$SelectedItem.addClass(\"IsSelected\");\n }\n me.$SlideDownPanel.slideDown(100, function () {\n me.$SearchBox.focus();\n me.$SearchBox.select();\n let controlPanelHeight = me.$ControlPanel.height();\n if (controlPanelHeight == undefined) {\n controlPanelHeight = 0;\n }\n me.$ListPart.css(\"margin-top\", controlPanelHeight + \"px\");\n let $hideBorderTweak = $(\".HideBorderTweak\", me.$SlideDownPanel);\n $hideBorderTweak.css(\"min-width\", me.$DropDown.width());\n if (me.$SelectedItem != null && me.$SelectedItem.length > 0) {\n me.$SlideDownPanel.scrollTo(me.$SelectedItem, 0, true, -(controlPanelHeight + 5));\n }\n else {\n me.$SlideDownPanel.scrollTop(0);\n }\n });\n me.IsOpen = true;\n }\n bindSearchBox() {\n let me = this;\n me.$SearchBox = me.$SlideDownPanel.find(\".SearchBox\");\n me.$SearchBoxContainer = me.$SearchBox.parent();\n me.$SearchBox.offon(\"keydown.\" + me.Id, function (e) {\n let key = window.event ? e.keyCode : e.which;\n if (!me.searchBoxTextIn) {\n me.$SearchBoxContainer.addClass(\"textin\");\n me.searchBoxTextIn = true;\n }\n if (key == 13) {\n e.stopPropagation();\n e.preventDefault();\n }\n });\n me.$SearchBox.offon(\"keyup.\" + me.Id, function (e) {\n let key = window.event ? e.keyCode : e.which;\n if (key == 13) {\n let firstNotHidden = me.$Items.filter(\":not(.Hidden)\").first();\n if (firstNotHidden.length > 0) {\n me.SelectItem(firstNotHidden);\n me.HideList();\n }\n return;\n }\n let currentText = me.$SearchBox.val().toLowerCase();\n CompuSport.Lag(350, function () {\n if (currentText.trim() == \"\") {\n me.$Items.removeClass(\"Hidden\");\n }\n else {\n $.each(me.$Items, function () {\n let item = $(this);\n let cells = item.children(\"td\");\n let content = cells.text().toLowerCase();\n if (content.indexOf(currentText) > -1) {\n item.removeClass(\"Hidden\");\n }\n else {\n item.addClass(\"Hidden\");\n }\n });\n }\n me.AjustLayoutOfTheList();\n });\n });\n }\n HideList() {\n let me = this;\n if (me.IsOpen) {\n if (me.$SelectedItem) {\n me.$SelectedItem.removeClass(\"IsSelected\"); /*Evite que si la liste est partagé entre plusieurs drop down, que l'item\n selectionné dun autre dropdown semble l'etre dans cette liste*/\n }\n me.$SlideDownPanel.off(\"click.item\");\n me.$SearchBox.off(\"keydown.dropdown\");\n me.$SearchBox.off(\"keyup.dropdown\");\n CompuSport.DOM.body.trigger(\"beforehiding\", me);\n me.$SlideDownPanel.slideUp(100, function () {\n if (me.$SearchBox.length > 0) {\n me.$SearchBox.val(\"\");\n me.searchBoxTextIn = false;\n me.$SearchBoxContainer.removeClass(\"textin\");\n me.$Items.removeClass(\"Hidden\");\n }\n });\n me.IsOpen = false;\n }\n }\n //private AppendHiddenHasChanged() {\n // let me = this;\n // if (me.AutoSaveOnPost && (me.$HasChanged == undefined || me.$HasChanged.length == 0)) {\n // me.$HasChanged = $(\"\");\n // me.$HasChanged.insertAfter(me.$DropDown);\n // }\n //}\n ClearSelection() {\n let me = this;\n me.$LastSelectedItem = me.$SelectedItem;\n if (me.$SelectedItem != null) {\n me.$SelectedItem.removeClass(\"IsSelected\");\n }\n me.$SelectedItem = null;\n me.$DropDown.addClass(\"IsEmpty\");\n if (me.SelectionChange != undefined) {\n me.SelectionChange(me);\n }\n me.$DropDown.trigger(\"change\", me);\n }\n SelectItem(item) {\n let me = this;\n me.$LastSelectedItem = me.$SelectedItem;\n //me.AppendHiddenHasChanged();\n me.$DropDown.parent(\".InputRow\").addClass(\"IsEdited\");\n if (me.$SelectedItem != null) {\n me.$SelectedItem.removeClass(\"IsSelected\");\n }\n me.$SelectedItem = item;\n me.$SelectedItem.addClass(\"IsSelected\");\n let isEmptyItem = me.$SelectedItem.hasClass(\"Empty\");\n if (isEmptyItem) {\n me.$DropDown.addClass(\"IsEmpty\");\n me.$SelectedItem.removeClass(\"IsSelected\");\n }\n else {\n me.$DropDown.removeClass(\"IsEmpty\");\n }\n $.each(me.$Hiddens, function () {\n let $hidden = $(this);\n let modelValue = me.GetValue(item, $hidden.data(\"name\"));\n $hidden.val(modelValue);\n if (modelValue != null) {\n if ($hidden.data(\"followedbyvalue\") != null) {\n let $hiddenContainer = $hidden.parent();\n let contents = $hiddenContainer.contents();\n let hiddenIndex = null;\n $.each(contents, function (i) {\n if (this.tagName == \"INPUT\") {\n hiddenIndex = i;\n return;\n }\n });\n if (hiddenIndex != null) {\n contents[hiddenIndex + 1].nodeValue = modelValue;\n }\n }\n }\n });\n $.each(me.$Displays, function () {\n let $disp = $(this);\n let modelValue = me.GetValue(item, $disp.data(\"name\"));\n $disp.html(modelValue);\n });\n if (me.SelectionChange != undefined) {\n me.SelectionChange(me);\n }\n me.$DropDown.trigger(\"change\", me);\n }\n AlterHiddenNameToNotBePosted($hidden) {\n $hidden.attr(\"name\", \"_hidden_\" + $hidden.attr(\"name\").replace(\"_hidden_\", \"\"));\n }\n AlterHiddenNameToBePosted($hidden) {\n $hidden.attr(\"name\", $hidden.attr(\"name\").replace(\"_hidden_\", \"\"));\n }\n GetSelectedItemValue(propertyName) {\n return this.GetValue(this.$SelectedItem, propertyName);\n }\n GetValueFromHiddens() {\n let me = this;\n var data = {};\n $.each(me.$Hiddens, function () {\n var $this = $(this);\n var name = $this.data(\"name\").toLowerCase();\n var val = $this.val();\n data[name] = val;\n });\n return data;\n }\n GetValue(item, propertyName) {\n let me = this;\n if (!item || item.hasClass(\"Empty\") || item.length == 0) {\n return null;\n }\n var modelValues = item.data(\"m\");\n let isOldDropDown = false;\n if (propertyName == me.Id) {\n isOldDropDown = true;\n }\n let end = modelValues.length;\n var dynamicModel = {};\n for (var i = 0; i < end; i++) {\n let modelValue = modelValues[i];\n if (isOldDropDown) {\n if (modelValue.n == \"Value\") {\n return modelValue.v;\n }\n }\n dynamicModel[modelValue.n.toLowerCase()] = modelValue.v;\n }\n if (propertyName == null) {\n return dynamicModel;\n }\n else {\n propertyName = propertyName.toLowerCase();\n return dynamicModel[propertyName];\n }\n }\n SetValue(value) {\n let me = this;\n var rows = this.$ListPart.find(\"tr.Item\");\n var filteredValue = rows.filter(function () {\n let itemValue = me.GetValue($(this));\n if (itemValue == null) {\n return value == null;\n }\n for (var name in value) {\n if (itemValue[name] != value[name]) {\n return false;\n }\n }\n return true;\n });\n if (filteredValue.length > 0) {\n me.SelectItem(filteredValue.first());\n }\n else if (value != null) {\n me.SetValue(null);\n }\n }\n CallSelectionChange() {\n let me = this;\n if (me.SelectionChange != undefined) {\n me.SelectionChange(me);\n }\n }\n Refresh(callback, extraData) {\n let me = this;\n var data = CompuSport.Send.PrepareData(me);\n try {\n if (extraData != null) {\n for (var key in extraData) {\n data[key] = extraData[key];\n }\n }\n }\n catch (error) {\n console.log(\"Error while adding extra data to the data object\");\n }\n CompuSport.Ajax.Get(this.$SlideDownPanel.data(\"refreshurl\"), data, function (response) {\n var $response = $(\"