{"version":3,"sources":["webpack:///./src/utilities/Object/keys.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/index.vue?f6ec","webpack:///./src/utilities/nestedSort/filterMultiLevelList.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/watch.js","webpack:///./src/utilities/Element/create.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/create/functions/addEl.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/create/functions/editEl.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/create/functions/eraseEl.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/create/functions/downArrowEl.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/create/functions/upArrowEl.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/create/index.js","webpack:///./src/utilities/nestedSort/multiLevelList/calculateStartTimes.js","webpack:///./src/utilities/nestedSort/multiLevelList/build.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/buildMultiLevel.js","webpack:///./src/utilities/nestedSort/buildOneLevelList.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/buildOneLevelList.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/save.js","webpack:///./src/utilities/nestedSort/multiLevelList/findId.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/erase.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/add.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/edit.js","webpack:///./src/utilities/nestedSort/multiLevelList/calcValidParents.js","webpack:///./src/utilities/nestedSort/multiLevelList/moveItem.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/openEditModal.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/openAddModal.js","webpack:///./src/services/BoardMeetings/Reports/AgendaReport/Save.js","webpack:///./src/services/BoardMeetings/Reports/AgendaReport/GetAsBaseSixtyFour.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/preview.js","webpack:///./src/utilities/nestedSort/multiLevelList/findPrev.js","webpack:///./src/utilities/nestedSort/multiLevelList/moveUp.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/moveUp.js","webpack:///./src/utilities/nestedSort/multiLevelList/moveDown.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/list/moveDown.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/methods/index.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/data.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/keys/computed.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/components/ItemModal/index.vue?1d6f","webpack:///src/pages/Management/boardMeetings/Details/components/Agenda/components/ItemModal/index.vue","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/components/ItemModal/index.vue?3130","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/components/ItemModal/index.vue","webpack:///src/pages/Management/boardMeetings/Details/components/Agenda/index.vue","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/index.vue?35cb","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/index.vue","webpack:///./node_modules/lodash/isEqual.js","webpack:///./src/pages/Management/boardMeetings/Details/components/Agenda/index.vue?b0ae","webpack:///./src/utilities/Element/setStyles.js","webpack:///./src/services/blobutility.js","webpack:///./node_modules/core-js/modules/es.object.seal.js","webpack:///./src/services/BoardMeetings/BoardPackage/Get.js","webpack:///./node_modules/nested-sort/dist/nested-sort.umd.js","webpack:///./src/services/BoardMeetings/BoardPackage/Put.js"],"names":["objKeys","obj","keys","Object","x","Array","isArray","render","_vm","this","_h","$createElement","_c","_self","attrs","style","display","alignItems","justifyContent","ref","staticClass","on","openAddModal","_v","width","preview","marginTop","height","float","position","paddingRight","animation","opacity","status","background","padding","textAlign","borderRadius","_e","widths","paddingLeft","oneLevelList","length","itemModalClosed","staticRenderFns","filterBranch","branch","params","a","item","items","key","includes","filterMultiLevelList","multiLevelList","result","_cloneDeep","watch","breakpoint","getWidths","create","deep","handler","retrievedAgenda","filtered","equal","isEqual","saved","setTimeout","save","createEl","kind","className","textContent","title","styles","attributes","value","children","el","document","createElement","setStyles","setAttribute","appendChild","addEventListener","event","console","error","addEl","component","duration","id","adder","marginLeft","click","preventDefault","stopPropagation","editEl","editor","openEditModal","backgroundSize","transform","eraseEl","e","erase","downArrowEl","press","moveDown","keypress","upArrowEl","moveUp","buildOneLevelList","data","querySelectorAll","buildMultiLevel","NestedSort","listClassNames","renderListItem","nestingLevels","maxDepth","startTime","toString","paddingBottom","overflow","titleEl","top","durationEl","startTimeEl","buttonsEl","marginBottom","actions","onDrop","list","oneLevelListWithParams","map","parseInt","parent","find","calculateStartTimes","mStartTime","moment","updateBranch","format","add","tryInsert","itemOrderIndex","order","found","buildMultiLevelList","_list","orderIndex","undefined","splice","maxIteration","currentIteration","inserted","boardPackage","meetingDate","readBranch","extras","b","param","push","_buildOneLevelList","paramBoardPackage","paramMultiLevelList","debug","phoneMeetingID","physicalMeetingID","virtualMeetingID","phoneMeeting","physicalMeeting","virtualMeeting","json","agendaJson","JSON","stringify","modifyBoardPackage","successMessage","determineLevels","levels","maxLevels","_item","_items","_levels","findId","parentId","depth","_id","parentBranch","index","_index","_parentId","_parentBranch","_depth","Promise","resolve","$buefy","dialog","confirm","message","confirmText","type","hasIcon","onConfirm","notifyMessage","$refs","openAddModalButton","$el","focus","nextId","highestId","reselected","theItem","edit","calcValidParents","findParents","itemId","moveItem","log","theParentItem","Error","rselect","parentItems","itemModal","open","mode","reselect","dataId","editAgendaItem","isDisabled","_get","addAgendaItem","ex","saveAgendaReport","exception","kms","get","successful","notifyError","getAgendaReportBase64","report","loading","boardPackageID","then","blob","base64toBlob","showPdf","climb","previousSibling","previousSiblingItems","lastIndex","findPrev","foundItem","addToParent","parentItem","notes","isFirst","prev","itemLevels","code","moved","idChange","prevItem","resultantLevel","attachTo","_moveUp","refresh","savingTimeout","isLast","nextItem","combinedDepth","unshift","_moveDown","methods","getAgenda","getBoardPackage","parse","seal","paddingLefts","computed","mapState","state","win","toggle","modalContent","minHeight","$event","scopedSlots","_u","fn","proxy","model","callback","$$v","expression","_l","option","domProps","_s","text","props","onClose","Function","components","Modal","originalParentItems","ItemModal","EmptyList","mounted","baseIsEqual","other","module","exports","element","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","slice","byteNumbers","i","charCodeAt","byteArray","Uint8Array","Blob","newBlob","window","navigator","msSaveOrOpenBlob","URL","createObjectURL","link","download","href","downloadPdf","revokeObjectURL","showAnyType","mimeType","$","isObject","onFreeze","FREEZING","fails","nativeSeal","FAILS_ON_PRIMITIVES","target","stat","forced","sham","it","global","factory","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","prototype","_defineProperty","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","Symbol","iterator","from","o","minLen","n","call","constructor","name","test","len","arr2","DataEngine","_ref","_ref$propertyMap","propertyMap","sortedData","sortedDataDomArray","maybeTransformData","getItemPropProxyName","bind","Proxy","prop","receiver","Reflect","hasOwnProperty","_this","topLevelItems","filter","isTopLevelItem","sort","childItems","reduce","groups","forEach","concat","values","flat","nodeName","arguments","dataset","innerHTML","node","querySelector","getParentNodeOfItem","_this2","topParent","topLevelListItem","elementIsParentOfItem","elementIsAncestorOfItem","listItem","createItemElement","directParentList","getDirectListParentOfItem","directParentListItem","_this3","processedItems","sortListItems","itemAdded","maybeAppendItemToParentDom","_this4","li","_ref2","parentListItem","parentNode","findIndex","getListItemsDom","_ref$actions","_ref$droppingEdge","droppingEdge","_ref$init","init","listItemClassNames","elementIsAList","HTMLOListElement","HTMLUListElement","wrapper","sortableList","createListClassNamesArray","mainListClassName","initialised","distances","classNames","dragged","placeholder","targeted","listEventListeners","dragover","onDragOver","dragstart","onDragStart","dragenter","onDragEnter","dragend","onDragEnd","drop","intNestingLevels","isNaN","listInterface","getListInterface","maybeInitDataDom","addListAttributes","initDragAndDrop","dataEngine","split","getDataEngine","_this$wrapper","getListTagName","_list$classList","getSortableList","classList","apply","l","_l$classList","_li$classList","enabled","remove","_this$getSortableList","enable","removeEventListener","toggleListEventListeners","initPlaceholderList","toggleListItemAttributes","toggleMainListLifeCycleClassName","contains","draggedNode","_e$dataTransfer","dataTransfer","setData","updateCoordination","managePlaceholderLists","canBeTargeted","removeClassFromEl","targetedNode","cleanupPlaceholderLists","maybeDrop","convertDomToData","calcMouseCoords","calcMouseToTargetedElDist","canBeDropped","_this$targetedNode","location","getDropLocation","dropTheItem","place","_this$targetedNode2","_this$targetedNode2$p","_this$targetedNode3","insertBefore","cursor","X","clientX","Y","clientY","getBoundingClientRect","targetNode","left","targetedElTopAbs","Math","abs","mouseTo","targetedElTop","targetedElBot","clientHeight","child","some","_this$distances","analysePlaceHolderSituation","action","addPlaceholderList","_el","parentElement","_el2","_el3","getTargetedNodeDepth","areNested","cursorIsIndentedEnough","mouseIsTooCloseToTop","targetedNodeIsPlaceholder","nestingThresholdReached","_this$draggedNode","placeholderInUse","transition","offsetHeight","_this$targetedNode4","getPlaceholderList","animatePlaceholderList","targetNodeIsIdentified","targetNodeIsBeingDragged","targetNodeIsListWithItems","_this$getSortableList2","tag","listsArray","ul","_this$placeholderList","placeholderList","cloneNode","put"],"mappings":"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","file":"js/boardMeetingDetails.boardMeetingAgenda.062ed9c8.js","sourcesContent":["/*\r\n\t// should always return an array of keys\r\n\r\n\timport { objKeys } from '@/utilities/Object/keys'\r\n\r\n\tconst keys = objKeys (obj);\r\n*/\r\n\r\nexport function objKeys(obj) {\r\n let keys = []\r\n\r\n try {\r\n keys = Object.keys(obj)\r\n } catch (x) {\r\n // Object.keys (null) -> error, etc.\r\n }\r\n\r\n if (Array.isArray(keys)) {\r\n return keys\r\n }\r\n\r\n return []\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"role\":\"main\",\"data-id\":\"meetings agenda\"}},[_c('div',{style:({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n })},[_c('div',[_c('b-button',{ref:\"openAddModalButton\",staticClass:\"is-rounded is-primary\",on:{\"click\":_vm.openAddModal}},[_vm._v(\"Add\")]),_c('span',{style:({ display: 'inline-block', width: '10px' })}),_c('b-button',{staticClass:\"is-primary is-rounded\",on:{\"click\":_vm.preview}},[_vm._v(\"Preview Document\")]),_c('span',{style:({ display: 'inline-block', width: '10px' })})],1)]),_c('div',[_c('b-tag',{style:({ marginTop: '10px' })},[_vm._v(\"The max depth is 3.\")])],1),_c('div',{style:({ height: '20px' })}),_c('div',{staticClass:\"pb-4\",style:({\n float: 'right',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-around'\n })},[_c('div',{style:({\n position: 'relative',\n paddingRight: '6px'\n })},[_c('b-icon',{style:({\n animation: 'spinAround .5s infinite linear',\n opacity: _vm.status === 'saving' ? 1 : 0\n }),attrs:{\"icon\":\"loading\",\"size\":\"is-small\"}})],1),(_vm.status === 'saved')?_c('div',{style:({\n background: '#ddd',\n padding: '2px 0px',\n width: '60px',\n textAlign: 'center',\n borderRadius: '4px'\n })},[_vm._v(\" saved \")]):_vm._e(),(_vm.status === 'saving')?_c('div',{style:({\n background: '#ddd',\n padding: '2px 0px',\n width: '60px',\n textAlign: 'center',\n borderRadius: '4px'\n })},[_vm._v(\" saving \")]):_vm._e()]),_c('div',{style:({ display: 'flex' })},[_c('div',{style:({ width: _vm.widths[0], paddingLeft: '20px' })},[_vm._v(\"title\")]),_c('div',{style:({ width: _vm.widths[1], paddingLeft: '10px' })},[_vm._v(\"duration\")]),_c('div',{style:({ width: _vm.widths[2], paddingLeft: '10px' })},[_vm._v(\"start time\")]),_c('div')]),_c('div',{attrs:{\"id\":\"nested-sortable-agenda\"}}),(_vm.oneLevelList.length === 0)?_c('EmptyList'):_vm._e(),_c('ItemModal',{ref:\"itemModal\",attrs:{\"onClose\":_vm.itemModalClosed}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\r\n import { filterMultiLevelList } from '@/utilities/nestedSort/filterMultiLevelList'\r\n const result = filterMultiLevelList ({\r\n params: [ 'items', 'duration', 'title' ],\r\n multiLevelList\r\n })\r\n*/\r\n\r\n/*\r\n for filtering out unecessary params before sending\r\n the list to the server (etc.)\r\n*/\r\n\r\nimport _cloneDeep from 'lodash/cloneDeep'\r\n\r\nfunction filterBranch({ branch, params }) {\r\n for (let a = 0; a < branch.length; a++) {\r\n const item = branch[a]\r\n const items = item.items\r\n\r\n for (let key in item) {\r\n if (!params.includes(key)) {\r\n delete item[key]\r\n }\r\n }\r\n\r\n if (Array.isArray(items) && items.length >= 1) {\r\n filterBranch({\r\n branch: items,\r\n params\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport function filterMultiLevelList({ multiLevelList, params }) {\r\n const result = _cloneDeep(multiLevelList)\r\n\r\n filterBranch({\r\n branch: result,\r\n params\r\n })\r\n\r\n return result\r\n}\r\n","import { filterMultiLevelList } from '@/utilities/nestedSort/filterMultiLevelList'\r\n\r\nimport isEqual from 'lodash/isEqual'\r\n\r\nexport const watch = {\r\n breakpoint() {\r\n this.widths = this.getWidths()\r\n this.create()\r\n },\r\n multiLevelList: {\r\n deep: true,\r\n handler(multiLevelList) {\r\n const retrievedAgenda = this.retrievedAgenda\r\n\r\n const filtered = filterMultiLevelList({\r\n params: ['items', 'duration', 'title', 'startTime'],\r\n multiLevelList\r\n })\r\n\r\n const equal = isEqual(filtered, retrievedAgenda)\r\n\r\n if (equal) {\r\n this.saved = true\r\n this.status = 'saved'\r\n } else {\r\n setTimeout(() => {\r\n this.saved = false\r\n this.status = 'saving'\r\n this.save()\r\n this.status = 'saved'\r\n }, 1000)\r\n }\r\n }\r\n }\r\n}\r\n","import { setStyles } from './setStyles'\r\n\r\nexport function createEl({\r\n kind = '',\r\n className = null,\r\n textContent = null,\r\n title = null,\r\n\r\n styles = {},\r\n attributes = {},\r\n value = null,\r\n children = [],\r\n on = {}\r\n}) {\r\n var el = document.createElement(kind)\r\n\r\n setStyles(styles, el)\r\n\r\n if (value !== null) {\r\n el.value = value\r\n }\r\n if (typeof className === 'string') {\r\n el.className = className\r\n }\r\n if (typeof textContent === 'string') {\r\n el.textContent = textContent\r\n }\r\n if (typeof title === 'string') {\r\n el.title = title\r\n }\r\n\r\n for (const key in attributes) {\r\n const value = attributes[key]\r\n el.setAttribute(key, value)\r\n }\r\n\r\n for (let a = 0; a < children.length; a++) {\r\n el.appendChild(createEl(children[a]))\r\n }\r\n\r\n try {\r\n for (let key in on) {\r\n el.addEventListener(key, event => {\r\n on[key](event)\r\n })\r\n }\r\n } catch (x) {\r\n console.error(x)\r\n }\r\n\r\n return el\r\n}\r\n\r\n///\r\n","export function addEl({ component, duration, id }) {\r\n return {\r\n kind: 'button',\r\n className: 'button is-info is-light is-small is-outline is-rounded',\r\n title: 'add',\r\n textContent: 'Add',\r\n attributes: {\r\n adder: ''\r\n },\r\n value: duration,\r\n styles: {\r\n display: 'inline-block',\r\n marginLeft: '4px'\r\n },\r\n on: {\r\n click: function(event) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n\r\n component.openAddModal({\r\n id,\r\n event\r\n })\r\n }\r\n },\r\n children: [\r\n {\r\n kind: 'div',\r\n className: '',\r\n styles: {\r\n height: '0px',\r\n width: '0px'\r\n }\r\n }\r\n ]\r\n }\r\n}\r\n","export function editEl({ component, duration, id }) {\r\n return {\r\n kind: 'button',\r\n className: 'button is-info is-light is-small is-outline is-rounded',\r\n textContent: 'Edit',\r\n value: duration,\r\n attributes: {\r\n editor: ''\r\n },\r\n styles: {\r\n display: 'inline-block',\r\n marginLeft: '4px'\r\n },\r\n on: {\r\n click: function(event) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n\r\n component.openEditModal({ id, event })\r\n }\r\n },\r\n title: 'edit',\r\n children: [\r\n {\r\n kind: 'div',\r\n className: '',\r\n styles: {\r\n backgroundSize: 'contain',\r\n height: '0px',\r\n width: '0px',\r\n transform: 'scale(1.6)'\r\n }\r\n }\r\n ]\r\n }\r\n}\r\n","export function eraseEl({ component, duration, id, title }) {\r\n return {\r\n kind: 'button',\r\n className: 'button is-info is-light is-small is-outline is-rounded',\r\n textContent: 'Delete',\r\n value: duration,\r\n styles: {\r\n position: 'relative',\r\n marginLeft: '4px'\r\n },\r\n on: {\r\n click: function(e) {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n component.erase({ id, title })\r\n }\r\n }\r\n }\r\n}\r\n","export function downArrowEl({ component, duration, id }) {\r\n function press(event) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n\r\n component.moveDown({ id, component })\r\n }\r\n\r\n return {\r\n kind: 'button',\r\n className: 'button',\r\n title: 'move down',\r\n value: duration,\r\n attributes: {\r\n 'down-arrow': ''\r\n },\r\n styles: {\r\n display: 'inline-block',\r\n marginLeft: '4px'\r\n },\r\n on: {\r\n click: press,\r\n keypress: press\r\n },\r\n children: [\r\n {\r\n kind: 'div',\r\n className: 'icon-downarrow',\r\n styles: {\r\n height: '20px',\r\n width: '20px',\r\n backgroundSize: 'contain'\r\n }\r\n }\r\n ]\r\n }\r\n}\r\n","export function upArrowEl({ component, duration, id }) {\r\n function press(event) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n\r\n component.moveUp({ id, component })\r\n }\r\n\r\n return {\r\n kind: 'button',\r\n className: 'button',\r\n title: 'move up',\r\n value: duration,\r\n attributes: {\r\n 'up-arrow': ''\r\n },\r\n styles: {\r\n display: 'inline-block',\r\n marginLeft: '4px'\r\n },\r\n on: {\r\n click: press,\r\n keypress: press\r\n },\r\n children: [\r\n {\r\n kind: 'div',\r\n className: 'icon-uparrow',\r\n styles: {\r\n height: '20px',\r\n width: '20px',\r\n backgroundSize: 'contain'\r\n }\r\n }\r\n ]\r\n }\r\n}\r\n","/*\r\n builds the one level list on every call,\r\n from the multi level list\r\n*/\r\n\r\nimport { createEl } from '@/utilities/Element/create'\r\nimport NestedSort from 'nested-sort'\r\n\r\nimport _cloneDeep from 'lodash/cloneDeep'\r\n\r\nimport { addEl } from './functions/addEl'\r\nimport { editEl } from './functions/editEl'\r\nimport { eraseEl } from './functions/eraseEl'\r\nimport { downArrowEl } from './functions/downArrowEl'\r\nimport { upArrowEl } from './functions/upArrowEl'\r\n\r\nexport async function create() {\r\n const component = this\r\n const widths = this.widths\r\n\r\n const oneLevelList = this.buildOneLevelList()\r\n const data = _cloneDeep(oneLevelList)\r\n if (data.length === 0) {\r\n try {\r\n document.querySelectorAll('#nested-sortable-agenda')[0].textContent = ''\r\n } catch (x) {\r\n console.error(x)\r\n }\r\n }\r\n\r\n this.buildMultiLevel()\r\n\r\n new NestedSort({\r\n data: [],\r\n el: '#nested-sortable-agenda',\r\n listClassNames: ['nested-sort'],\r\n renderListItem: () => {}\r\n })\r\n\r\n new NestedSort({\r\n data,\r\n el: '#nested-sortable-agenda',\r\n listClassNames: ['nested-sort'],\r\n nestingLevels: this.maxDepth - 1,\r\n renderListItem: (el, params) => {\r\n let { title, duration, id, startTime } = params\r\n if (typeof duration === 'number') {\r\n duration = duration.toString()\r\n }\r\n\r\n el.textContent = ''\r\n el.style.display = 'block'\r\n el.style.justifyContent = 'space-around'\r\n el.style.width = '100%'\r\n el.style.paddingBottom = '10px'\r\n el.style.borderRadius = '6px'\r\n el.style.position = 'relative'\r\n el.style.overflow = 'hidden'\r\n\r\n const display = 'inline-block'\r\n const height = '40px'\r\n const paddingLeft = '10px'\r\n\r\n const titleEl = createEl({\r\n kind: 'div',\r\n styles: {\r\n display,\r\n width: widths[0],\r\n textAlign: 'left',\r\n\r\n ...(typeof title !== 'string' || title.length === 0 ? { height: 0 } : { height }),\r\n\r\n paddingLeft\r\n },\r\n\r\n children: [\r\n {\r\n kind: 'div',\r\n textContent: title,\r\n value: title,\r\n styles: {\r\n width: '90%',\r\n position: 'relative',\r\n top: '50%',\r\n transform: 'translateY(-50%)'\r\n }\r\n }\r\n ]\r\n })\r\n\r\n const durationEl = createEl({\r\n kind: 'div',\r\n styles: {\r\n position: 'relative',\r\n display,\r\n width: widths[1],\r\n height,\r\n paddingLeft\r\n },\r\n\r\n children: [\r\n {\r\n kind: 'div',\r\n textContent: duration,\r\n styles: {\r\n display: 'inline-block',\r\n position: 'relative',\r\n top: '50%',\r\n transform: 'translateY(-50%)'\r\n },\r\n on: {\r\n click: function(e) {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n }\r\n }\r\n },\r\n {\r\n kind: 'div',\r\n textContent: 'minutes',\r\n styles: {\r\n display: 'inline-block',\r\n position: 'relative',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n paddingLeft: '8px'\r\n },\r\n on: {\r\n click: function(e) {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n }\r\n }\r\n }\r\n ]\r\n })\r\n\r\n const startTimeEl = createEl({\r\n kind: 'div',\r\n styles: {\r\n position: 'relative',\r\n display,\r\n width: widths[2],\r\n paddingLeft\r\n },\r\n children: [\r\n {\r\n kind: 'div',\r\n className: 'tag',\r\n styles: {\r\n position: 'absolute',\r\n top: 'calc(50% + 3px)',\r\n transform: 'translateY(-50%)'\r\n },\r\n textContent: startTime\r\n }\r\n ]\r\n })\r\n\r\n const buttonsEl = createEl({\r\n kind: 'div',\r\n styles: {\r\n display,\r\n float: 'right',\r\n paddingLeft,\r\n marginBottom: '10px',\r\n textAlign: 'right'\r\n },\r\n children: [\r\n downArrowEl({\r\n component,\r\n duration,\r\n id\r\n }),\r\n upArrowEl({\r\n component,\r\n duration,\r\n id\r\n }),\r\n addEl({\r\n component,\r\n duration,\r\n id\r\n }),\r\n editEl({\r\n component,\r\n duration,\r\n id\r\n }),\r\n eraseEl({\r\n component,\r\n duration,\r\n id,\r\n title\r\n })\r\n ]\r\n })\r\n\r\n el.appendChild(titleEl)\r\n el.appendChild(durationEl)\r\n el.appendChild(startTimeEl)\r\n\r\n el.appendChild(buttonsEl)\r\n\r\n return el\r\n },\r\n actions: {\r\n /*\r\n list returned:\r\n problems:\r\n id:\r\n string -> integer\r\n \r\n parent:\r\n string -> integer\r\n \r\n add params:\r\n duration \r\n title\r\n */\r\n onDrop(list) {\r\n const oneLevelListWithParams = _cloneDeep(component.oneLevelList)\r\n\r\n /*\r\n add \"id\" and \"parent\" as integers\r\n */\r\n const result = _cloneDeep(list).map(item => {\r\n const id = parseInt(item.id)\r\n\r\n return {\r\n ...item,\r\n id,\r\n ...(typeof item.parent === 'string' ? { parent: parseInt(item.parent) } : {})\r\n }\r\n })\r\n\r\n /*\r\n add params: \"duration\" & \"title\"\r\n */\r\n for (let a = 0; a < result.length; a++) {\r\n const item = oneLevelListWithParams.find(item => {\r\n return item.id === result[a].id\r\n })\r\n\r\n result[a].duration = item.duration\r\n result[a].title = item.title\r\n }\r\n\r\n component.oneLevelList = result\r\n\r\n component.buildMultiLevel()\r\n\r\n component.create()\r\n }\r\n }\r\n })\r\n}\r\n","/*\r\n // note: makes modifications to the multi level list \r\n\r\n import { calculateStartTimes } from '@/utilities/nestedSort/multiLevelList/calculateStartTimes'\r\n \r\n calculateStartTimes ({\r\n items: this.multiLevelList,\r\n //\r\n // '3191-12-20T21:10:00'\r\n startTime = ''\r\n })\r\n*/\r\n\r\nimport moment from 'moment'\r\n\r\nexport function calculateStartTimes({ items, startTime }) {\r\n let mStartTime = moment(startTime)\r\n\r\n function updateBranch({ branch }) {\r\n for (let a = 0; a < branch.length; a++) {\r\n const item = branch[a]\r\n const duration = item.duration || 0\r\n\r\n const items = item.items\r\n\r\n /*\r\n console.log ({\r\n startTime: mStartTime.format ('hh:mm'),\r\n id: item.id\r\n })\r\n */\r\n\r\n item.startTime = mStartTime.format('hh:mm')\r\n mStartTime = mStartTime.add(duration, 'minutes')\r\n\r\n if (Array.isArray(items) && items.length >= 1) {\r\n updateBranch({\r\n branch: items\r\n })\r\n }\r\n }\r\n }\r\n\r\n updateBranch({ branch: items })\r\n}\r\n","/*\r\n import { buildMultiLevelList } from '@/utilities/nestedSort/multiLevelList/build'\r\n const multiLevelList = buildMultiLevelList ({\r\n oneLevelList,\r\n //\r\n // '3191-12-20T21:10:00'\r\n startTime = ''\r\n })\r\n*/\r\n\r\nimport _cloneDeep from 'lodash/cloneDeep'\r\n\r\nimport { calculateStartTimes } from './calculateStartTimes'\r\n\r\n// climb\r\nfunction tryInsert({ item, items }) {\r\n for (let a = 0; a < items.length; a++) {\r\n const branch = items[a]\r\n\r\n if (branch.id === item.parent) {\r\n const itemOrderIndex = item.order - 1\r\n items[a].items[itemOrderIndex] = item\r\n return true\r\n }\r\n\r\n if (Array.isArray(branch.items) && branch.items.length >= 1) {\r\n const found = tryInsert({\r\n item,\r\n items: branch.items\r\n })\r\n if (found) {\r\n return true\r\n }\r\n }\r\n }\r\n\r\n return false\r\n}\r\n\r\nexport function buildMultiLevelList({\r\n oneLevelList: _list,\r\n //\r\n // '3191-12-20T21:10:00'\r\n startTime = ''\r\n}) {\r\n const items = []\r\n\r\n const list = _cloneDeep(_list)\r\n\r\n /*\r\n add all the items without a parent to branches\r\n */\r\n for (let a = 0; a < list.length; a++) {\r\n const item = list[a]\r\n item.items = []\r\n\r\n const parent = item.parent\r\n const orderIndex = item.order - 1\r\n\r\n if (parent === undefined) {\r\n //\r\n // no parent was specified\r\n //\r\n\r\n // add to the level at the orderIndex specified.\r\n items.splice(orderIndex, 0, item)\r\n\r\n // remove item from the input list\r\n list.splice(a, 1)\r\n a--\r\n\r\n continue\r\n }\r\n }\r\n\r\n const maxIteration = 4\r\n let currentIteration = 0\r\n\r\n while (list.length >= 1 && currentIteration <= maxIteration) {\r\n for (let a = 0; a < list.length; a++) {\r\n const item = list[a]\r\n item.items = []\r\n\r\n const inserted = tryInsert({\r\n item,\r\n items\r\n })\r\n\r\n if (inserted) {\r\n list.splice(a, 1)\r\n a--\r\n }\r\n }\r\n\r\n currentIteration++\r\n }\r\n\r\n calculateStartTimes({\r\n items,\r\n startTime\r\n })\r\n\r\n return items\r\n}\r\n","import { buildMultiLevelList } from '@/utilities/nestedSort/multiLevelList/build'\r\n\r\n/*\r\n this.buildMultiLevel ()\r\n*/\r\n\r\n/*\r\n to be called after:\r\n refresh\r\n sort\r\n add\r\n remove\r\n*/\r\n\r\nexport function buildMultiLevel() {\r\n const startTime = this.boardPackage.meetingDate\r\n const oneLevelList = this.oneLevelList\r\n\r\n this.multiLevelList = buildMultiLevelList({\r\n oneLevelList,\r\n //\r\n // '3191-12-20T21:10:00'\r\n startTime\r\n })\r\n}\r\n","/*\r\n import { buildOneLevelList } from '@/utilities/nestedSort/buildOneLevelList'\r\n const oneLevelList = buildOneLevelList ({\r\n multiLevelList,\r\n //\r\n params: [ 'title', 'duration' ]\r\n })\r\n*/\r\n\r\nfunction readBranch({ branch, params, result, parent = undefined }) {\r\n for (let a = 0; a < branch.length; a++) {\r\n const item = branch[a]\r\n const id = result.length + 1\r\n const order = a + 1\r\n const items = item.items\r\n\r\n const extras = {}\r\n for (let b = 0; b < params.length; b++) {\r\n const param = params[b]\r\n\r\n extras[param] = item[param]\r\n }\r\n\r\n result.push({\r\n id,\r\n parent,\r\n order,\r\n ...extras\r\n })\r\n\r\n if (Array.isArray(items) && items.length >= 1) {\r\n readBranch({\r\n branch: items,\r\n params,\r\n result,\r\n parent: id\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport function buildOneLevelList({ multiLevelList, params = [] }) {\r\n const result = []\r\n\r\n readBranch({\r\n result,\r\n params,\r\n branch: multiLevelList\r\n })\r\n\r\n return result\r\n}\r\n","import { buildOneLevelList } from '@/utilities/nestedSort/buildOneLevelList'\r\n\r\nexport function _buildOneLevelList() {\r\n this.oneLevelList = buildOneLevelList({\r\n multiLevelList: this.multiLevelList,\r\n params: ['title', 'duration', 'startTime']\r\n })\r\n\r\n return this.oneLevelList\r\n}\r\n","import { modifyBoardPackage } from '@/services/BoardMeetings/BoardPackage/Put'\r\n\r\nimport { filterMultiLevelList } from '@/utilities/nestedSort/filterMultiLevelList'\r\n\r\nexport async function save(paramBoardPackage, paramMultiLevelList) {\r\n console.debug('save...')\r\n\r\n let boardPackage = {}\r\n\r\n if (paramBoardPackage !== undefined) {\r\n boardPackage = paramBoardPackage\r\n } else if (this.boardPackage !== undefined) {\r\n boardPackage = this.boardPackage\r\n }\r\n\r\n const { phoneMeetingID, physicalMeetingID, virtualMeetingID } = boardPackage\r\n\r\n if (phoneMeetingID === null) {\r\n delete boardPackage.phoneMeeting\r\n }\r\n if (physicalMeetingID === null) {\r\n delete boardPackage.physicalMeeting\r\n }\r\n if (virtualMeetingID === null) {\r\n delete boardPackage.virtualMeeting\r\n }\r\n\r\n let multiLevelList = {}\r\n\r\n if (paramMultiLevelList !== undefined) {\r\n multiLevelList = paramMultiLevelList\r\n } else if (this.multiLevelList !== undefined) {\r\n multiLevelList = this.multiLevelList\r\n }\r\n\r\n const result = filterMultiLevelList({\r\n params: ['items', 'duration', 'title', 'startTime'],\r\n multiLevelList: multiLevelList\r\n })\r\n\r\n const json = {\r\n ...boardPackage,\r\n agendaJson: JSON.stringify(result)\r\n }\r\n\r\n await modifyBoardPackage({\r\n json,\r\n successMessage: 'The board meeting agenda was saved successfully.'\r\n })\r\n}\r\n","/*\r\n import { findId } from '@/utilities/nestedSort/multiLevelList/findId'\r\n const theItem = findId ({ \r\n branch: multiLevelList,\r\n id\r\n });\r\n*/\r\n\r\nfunction determineLevels({ item }) {\r\n let levels = 1\r\n\r\n const items = item.items\r\n if (Array.isArray(items) && items.length >= 1) {\r\n levels++\r\n }\r\n\r\n let maxLevels = 0\r\n for (let a = 0; a < items.length; a++) {\r\n const _item = items[a]\r\n const _items = _item.items\r\n\r\n if (Array.isArray(_items) && _items.length >= 1) {\r\n const _levels =\r\n determineLevels({\r\n item: _item\r\n }) - 1\r\n\r\n if (_levels > maxLevels) {\r\n maxLevels = _levels\r\n }\r\n }\r\n }\r\n\r\n return levels + maxLevels\r\n}\r\n\r\nexport function findId({ parentId = null, branch, id, depth = 1 }) {\r\n // console.log ('searching for', id, 'in', parentId, ', depth:', depth);\r\n\r\n for (let a = 0; a < branch.length; a++) {\r\n const item = branch[a]\r\n const { id: _id, items } = item\r\n\r\n if (_id === id) {\r\n return {\r\n item,\r\n parentId,\r\n parentBranch: branch,\r\n index: a,\r\n found: true,\r\n depth: depth,\r\n levels: determineLevels({\r\n item\r\n })\r\n }\r\n }\r\n\r\n if (Array.isArray(items) && items.length >= 1) {\r\n const parentId = _id\r\n\r\n const {\r\n found,\r\n //\r\n item: _item,\r\n index: _index,\r\n //\r\n parentId: _parentId,\r\n parentBranch: _parentBranch,\r\n //\r\n depth: _depth\r\n } = findId({\r\n branch: items,\r\n id,\r\n parentId,\r\n depth: depth + 1\r\n })\r\n\r\n // console.log ({ found, _depth, depth, _item });\r\n\r\n // objKeys (_item).length >= 1\r\n if (found) {\r\n return {\r\n found: true,\r\n //\r\n item: _item,\r\n parentId: _parentId,\r\n parentBranch: _parentBranch,\r\n index: _index,\r\n //\r\n depth: _depth,\r\n levels: determineLevels({\r\n item: _item\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n return {\r\n found: false,\r\n //\r\n item: false,\r\n parentId: false,\r\n parentBranch: false,\r\n index: false,\r\n //\r\n depth: false\r\n }\r\n}\r\n","import { notifyMessage } from '@/services/notify'\r\nimport { findId } from '@/utilities/nestedSort/multiLevelList/findId'\r\n\r\nexport async function erase({ id, title }) {\r\n const item = findId({\r\n branch: this.multiLevelList,\r\n id\r\n })\r\n\r\n await new Promise(resolve => {\r\n this.$buefy.dialog.confirm({\r\n title: 'Deleting Agenda Item',\r\n message: `Are you sure you want to delete \"${title}\"? This will delete any sub-items of \"${title}\" as well.`,\r\n confirmText: 'Delete Account',\r\n type: 'is-danger',\r\n hasIcon: true,\r\n onConfirm: () => {\r\n resolve()\r\n }\r\n })\r\n })\r\n\r\n item.parentBranch.splice(item.index, 1)\r\n\r\n /*\r\n erase from multi-level list \r\n */\r\n\r\n notifyMessage(`\"${title}\" was deleted.`)\r\n\r\n try {\r\n this.$refs.openAddModalButton.$el.focus()\r\n } catch (x) {\r\n console.error(x)\r\n }\r\n\r\n this.create()\r\n}\r\n","import { findId } from '@/utilities/nestedSort/multiLevelList/findId'\r\nimport { calculateStartTimes } from '@/utilities/nestedSort/multiLevelList/calculateStartTimes'\r\n\r\n// get the id after the highest id\r\n// in the one level list\r\nfunction nextId({ oneLevelList }) {\r\n let highestId = 1\r\n for (let a = 0; a < oneLevelList.length; a++) {\r\n const item = oneLevelList[a]\r\n\r\n if (item.id > highestId) {\r\n highestId = item.id\r\n }\r\n }\r\n\r\n const id = highestId + 1\r\n\r\n return id\r\n}\r\n\r\nexport function add({ title = '', duration = 0, parent = null, reselected = '' }) {\r\n const multiLevelList = this.multiLevelList\r\n\r\n const id = nextId({\r\n oneLevelList: this.oneLevelList\r\n })\r\n\r\n console.debug('reselected=' + reselected + ', parent===' + JSON.stringify(parent))\r\n\r\n if (typeof parent === 'number') {\r\n const theItem = findId({\r\n branch: multiLevelList,\r\n id: parent\r\n })\r\n\r\n theItem.item.items.push({\r\n title,\r\n duration,\r\n\r\n id,\r\n order: theItem.item.items.length\r\n })\r\n } else {\r\n multiLevelList.push({\r\n title,\r\n duration,\r\n\r\n id,\r\n order: multiLevelList.length\r\n })\r\n }\r\n\r\n const startTime = this.boardPackage.meetingDate\r\n calculateStartTimes({\r\n items: this.multiLevelList,\r\n //\r\n // '3191-12-20T21:10:00'\r\n startTime\r\n })\r\n\r\n this.create()\r\n}\r\n","export function edit() {}\r\n","/*\r\n import { calcValidParents } from '@/utilities/nestedSort/calcValidParents'\r\n \r\n calcValidParents ({\r\n id: null,\r\n multiLevelList,\r\n maxDepth: 3\r\n })\r\n*/\r\n\r\n/*\r\n for determining the parent items that\r\n an item (id) can be attached to\r\n*/\r\n\r\nexport function calcValidParents({ id, multiLevelList, maxDepth = 10 }) {\r\n const result = []\r\n\r\n function findParents({ branch, depth }) {\r\n for (let a = 0; a < branch.length; a++) {\r\n const item = branch[a]\r\n const {\r\n id: itemId,\r\n items,\r\n //\r\n title = null,\r\n duration = null\r\n } = item\r\n\r\n if (id === itemId) {\r\n continue\r\n }\r\n\r\n result.push({\r\n id: itemId,\r\n title,\r\n duration\r\n })\r\n\r\n if (Array.isArray(items) && items.length >= 1) {\r\n if (depth === maxDepth - 1) {\r\n continue\r\n }\r\n\r\n findParents({\r\n branch: items,\r\n depth: depth + 1\r\n })\r\n }\r\n }\r\n }\r\n\r\n findParents({\r\n branch: multiLevelList,\r\n depth: 1\r\n })\r\n\r\n return result\r\n}\r\n","/*\r\n import { moveItem } from '@/utilities/nestedSort/multiLevelList/moveItem'\r\n moveItem ({\r\n id,\r\n parentId,\r\n multiLevelList\r\n })\r\n*/\r\n\r\nimport { objKeys } from '@/utilities/Object/keys'\r\n\r\nimport { findId } from './findId'\r\n\r\nexport function moveItem({ id, parentId, multiLevelList }) {\r\n console.log('moveItem', { id, parentId, multiLevelList })\r\n\r\n const theParentItem =\r\n typeof parentId !== 'number'\r\n ? {\r\n item: {\r\n items: multiLevelList\r\n },\r\n parentBranch: false,\r\n index: false\r\n }\r\n : findId({\r\n branch: multiLevelList,\r\n id: parentId\r\n })\r\n\r\n const theItem = findId({\r\n branch: multiLevelList,\r\n id\r\n })\r\n\r\n console.log({ theParentItem, theItem })\r\n\r\n if (objKeys(theParentItem.item).length >= 1 && objKeys(theItem.item).length >= 1) {\r\n const item = theItem.parentBranch.splice(theItem.index, 1)[0]\r\n theParentItem.item.items.push(item)\r\n\r\n return true\r\n }\r\n\r\n console.error(theParentItem, theItem)\r\n throw new Error(`The move of ${id} into ${parentId} was unsuccessful.`)\r\n}\r\n","import { calcValidParents } from '@/utilities/nestedSort/multiLevelList/calcValidParents'\r\nimport { moveItem } from '@/utilities/nestedSort/multiLevelList/moveItem'\r\nimport { findId } from '@/utilities/nestedSort/multiLevelList/findId'\r\n\r\nexport async function openEditModal({ id }) {\r\n this.buildMultiLevel()\r\n const multiLevelList = this.multiLevelList\r\n\r\n this.rselect = 'activate'\r\n\r\n const item = findId({\r\n branch: multiLevelList,\r\n id\r\n }).item\r\n\r\n const parentItems = calcValidParents({\r\n id,\r\n multiLevelList,\r\n maxDepth: this.maxDepth\r\n })\r\n\r\n console.debug('this.rselect=' + this.rselect)\r\n\r\n await new Promise(resolve => {\r\n this.$refs.itemModal.open({\r\n mode: 'edit',\r\n //\r\n duration: item.duration,\r\n title: item.title,\r\n parentItems,\r\n parentId: this.reselect === 'none' ? 0 : item.parent,\r\n dataId: id,\r\n //\r\n editAgendaItem: params => {\r\n let { parent: parentId, duration, title } = params\r\n\r\n if (this.rselect === 'none') {\r\n parentId = null\r\n this.isDisabled = true\r\n } else {\r\n this.isDisabled = false\r\n this.rselect = 'activate'\r\n }\r\n\r\n item.duration = duration\r\n item.title = title\r\n\r\n if (typeof parentId !== 'number' && typeof item.parent !== 'number') {\r\n resolve()\r\n return\r\n }\r\n\r\n if (parentId !== item.parent) {\r\n moveItem({\r\n id: item.id,\r\n parentId,\r\n multiLevelList\r\n })\r\n }\r\n\r\n resolve()\r\n }\r\n })\r\n })\r\n\r\n this.create()\r\n}\r\n","import { calcValidParents } from '@/utilities/nestedSort/multiLevelList/calcValidParents'\r\nimport { findId } from '@/utilities/nestedSort/multiLevelList/findId'\r\n\r\nimport _get from 'lodash/get'\r\n\r\nexport function openAddModal({ id = null } = {}) {\r\n try {\r\n console.debug('in openAddModal...')\r\n this.buildMultiLevel()\r\n console.debug('in this.buildMultiLevel()...')\r\n const multiLevelList = this.multiLevelList\r\n console.debug('in multiLevelList...')\r\n\r\n const item = findId({\r\n branch: multiLevelList,\r\n id\r\n })\r\n\r\n const parentItems = calcValidParents({\r\n id: null,\r\n multiLevelList,\r\n maxDepth: this.maxDepth\r\n })\r\n\r\n this.$refs.itemModal.open({\r\n mode: 'add',\r\n parentItems,\r\n parentId: id,\r\n dataId: _get(item, ['item', 'id'], null),\r\n addAgendaItem: params => {\r\n console.debug('addAgendaItem=' + JSON.stringify(params))\r\n this.add(params)\r\n }\r\n })\r\n } catch (ex) {\r\n console.debug('error=' + ex.message)\r\n }\r\n}\r\n","/*\r\n\timport { saveAgendaReport } from '@/services/BoardMeetings/Reports/AgendaReport/Save';\r\n\r\n const { result, successful, message } = await saveAgendaReport ({\r\n params: {\r\n boardPackageID,\r\n format: \"PDF\"\r\n }\r\n });\r\n*/\r\n\r\n/*\r\n exception.fields {\r\n phoneNumber: [ '' ], \r\n }\r\n*/\r\n\r\nimport kms from '@/services/kms'\r\nimport { notifyError } from '@/services/notify'\r\n\r\nexport async function saveAgendaReport({ params }) {\r\n let exception = ''\r\n\r\n try {\r\n const result = await kms.get(`/BoardMeetings/Reports/AgendaReport/Save`, {\r\n params\r\n })\r\n\r\n return {\r\n successful: true,\r\n message: 'The board meeting agenda report was saved successfully.',\r\n exception: null,\r\n result\r\n }\r\n } catch (_exception) {\r\n exception = _exception\r\n }\r\n\r\n let message = 'A problem occurred and the board meeting agenda report could not be saved.'\r\n notifyError(message)\r\n\r\n return {\r\n successful: false,\r\n message,\r\n exception,\r\n result: null\r\n }\r\n}\r\n","/*\r\n example:\r\n import { getAgendaReportBase64 } from '@/services/BoardMeetings/Reports/AgendaReport/GetAsBaseSixtyFour';\r\n\r\n const { report, successful, message } = await getAgendaReportBase64 ({\r\n params: {\r\n boardPackageID: '',\r\n asBase64: true\r\n }\r\n });\r\n if (!successful) {\r\n console.error (message);\r\n return;\r\n }\r\n*/\r\n//\r\nimport kms from '@/services/kms'\r\nimport { notifyError } from '@/services/notify'\r\n//\r\nexport async function getAgendaReportBase64({ params }) {\r\n try {\r\n const result = await kms.get(`/BoardMeetings/Reports/AgendaReport/GetAsBaseSixtyFour`, {\r\n params\r\n })\r\n\r\n return {\r\n successful: true,\r\n message: '',\r\n report: result\r\n }\r\n } catch (exception) {\r\n console.error(exception)\r\n }\r\n\r\n let message = `A problem occurred and the agenda report could not be retrieved.`\r\n notifyError(message)\r\n\r\n return {\r\n successful: false,\r\n message,\r\n report: null\r\n }\r\n}\r\n\r\n///////\r\n","import { saveAgendaReport } from '@/services/BoardMeetings/Reports/AgendaReport/Save'\r\nimport { getAgendaReportBase64 } from '@/services/BoardMeetings/Reports/AgendaReport/GetAsBaseSixtyFour'\r\nimport { base64toBlob, showPdf } from '@/services/blobutility'\r\n\r\nimport { notifyError } from '@/services/notify'\r\n\r\nexport async function preview() {\r\n this.loading = true\r\n\r\n const boardPackageID = this.boardPackage.boardPackageID\r\n\r\n await saveAgendaReport({\r\n params: {\r\n boardPackageID,\r\n format: 'PDF'\r\n }\r\n }).then(({ result, successful, message }) => {\r\n if (!successful) {\r\n notifyError(message)\r\n throw new Error(message)\r\n }\r\n\r\n return { result }\r\n })\r\n\r\n const { report, successful, message } = await getAgendaReportBase64({\r\n params: {\r\n boardPackageID,\r\n format: 'PDF'\r\n }\r\n })\r\n if (!successful) {\r\n notifyError(message)\r\n throw new Error(message)\r\n }\r\n\r\n const blob = base64toBlob(report, 'application/pdf')\r\n showPdf(blob)\r\n\r\n this.loading = false\r\n}\r\n","/*\r\n import { findPrev } from '@/utilities/nestedSort/multiLevelList/findPrev'\r\n const result = findPrev ({\r\n id,\r\n multiLevelList\r\n })\r\n*/\r\n\r\n/* \r\n result {\r\n id\r\n items\r\n }\r\n*/\r\n\r\nimport { findId } from '@/utilities/nestedSort/multiLevelList/findId'\r\n\r\nfunction climb({ items, index }) {\r\n const previousSibling = items[index]\r\n const previousSiblingItems = items[index].items\r\n //\r\n // last index of items of previous sibling\r\n const lastIndex = previousSiblingItems.length - 1\r\n\r\n if (previousSiblingItems.length === 0) {\r\n return previousSibling\r\n }\r\n\r\n const _item = previousSiblingItems[lastIndex]\r\n\r\n return climb({\r\n item: _item,\r\n items: previousSiblingItems,\r\n index: lastIndex\r\n })\r\n}\r\n\r\nexport function findPrev({ id, multiLevelList }) {\r\n const { index, parentBranch, parentId } = findId({\r\n branch: multiLevelList,\r\n id\r\n })\r\n\r\n /*\r\n if is the first item,\r\n there is no previous item\r\n \r\n for example:\r\n _\r\n [ ] <- first item, no previous items\r\n [ ]\r\n [ ]\r\n [ ]\r\n [ ]\r\n [ ]\r\n */\r\n if (index === 0) {\r\n if (parentId === null) {\r\n return {\r\n id: null,\r\n items: parentBranch\r\n }\r\n }\r\n\r\n return {\r\n id: parentId,\r\n items: parentBranch\r\n }\r\n }\r\n\r\n /*\r\n for example:\r\n _\r\n [2]\r\n [1]\r\n [ ]\r\n [ ]\r\n [ ]\r\n [3] <- \r\n [4]\r\n \r\n parentBrach length = 4\r\n parent branch: [2][1][3][4]\r\n \r\n index = 2\r\n */\r\n const theItem = findId({\r\n branch: parentBranch,\r\n id\r\n })\r\n\r\n const foundItem = climb({\r\n item: theItem.item,\r\n items: theItem.parentBranch,\r\n index: index - 1\r\n })\r\n\r\n /*\r\n { id: Number, items: Array }\r\n */\r\n return foundItem\r\n}\r\n","/*\r\n import { moveUp } from '@/utilities/nestedSort/multiLevelList/moveUp'\r\n const theItem = moveUp ({ \r\n multiLevelList,\r\n id\r\n });\r\n*/\r\n\r\nimport { findId } from '@/utilities/nestedSort/multiLevelList/findId'\r\nimport { findPrev } from '@/utilities/nestedSort/multiLevelList/findPrev'\r\n\r\nfunction addToParent({ parentItem, item }) {\r\n const { parentBranch, index } = parentItem\r\n\r\n parentBranch.splice(index, 0, item)\r\n}\r\n\r\nexport function moveUp({ multiLevelList, id, maxDepth = 10, notes = 0 }) {\r\n const item = findId({\r\n branch: multiLevelList,\r\n id\r\n })\r\n\r\n const parentBranch = item.parentBranch\r\n const parentId = item.parentId\r\n const index = item.index\r\n\r\n const isFirst = item.index === 0\r\n if (notes) {\r\n console.log({ isFirst })\r\n }\r\n\r\n if (!isFirst) {\r\n //\r\n // The item is not the last in the parent's item\r\n // array, therefore it can be moved up into the last\r\n // and deepest leaf of the previous item.\r\n //\r\n // * <- indicates \"not first\"\r\n //\r\n /*\r\n [1]\r\n [2]\r\n [3]\r\n [4*]\r\n [5*] <- attach to [1] after [2]\r\n [6 ]\r\n [7*] <- flip with [6]\r\n [8*] <- flip with [5]\r\n [9]\r\n [10]\r\n [11*] <- flip with [10]\r\n */\r\n\r\n const itemLevels = item.levels\r\n if (notes) {\r\n console.log({ itemLevels })\r\n }\r\n\r\n let prev\r\n let _id = id\r\n\r\n let a = 1\r\n while (a <= 20) {\r\n prev = findPrev({\r\n id: _id,\r\n multiLevelList\r\n })\r\n if (prev.id === null) {\r\n if (notes) {\r\n console.log('attach as first item of parent')\r\n }\r\n\r\n const _item = parentBranch.splice(index, 1)[0]\r\n multiLevelList.splice(0, 0, _item)\r\n\r\n return {\r\n code: 0,\r\n moved: true,\r\n idChange: true\r\n }\r\n }\r\n\r\n const prevItem = findId({\r\n branch: multiLevelList,\r\n id: prev.id\r\n })\r\n\r\n const found = prevItem.found\r\n if (!found) {\r\n if (notes) {\r\n console.log('no previous item of', _id, 'add to beginning of multi level list')\r\n }\r\n\r\n const _item = parentBranch.splice(index, 1)[0]\r\n multiLevelList.splice(0, 0, _item)\r\n return {\r\n code: 1,\r\n moved: true,\r\n idChange: true\r\n }\r\n }\r\n\r\n _id = prev.id\r\n\r\n /*\r\n \r\n \r\n */\r\n const resultantLevel = itemLevels + prevItem.depth\r\n if (resultantLevel <= maxDepth) {\r\n const attachTo = findId({\r\n branch: multiLevelList,\r\n id: _id\r\n })\r\n\r\n if (notes) {\r\n console.log('same branch', {\r\n attachTo: attachTo\r\n })\r\n }\r\n\r\n const _item = parentBranch.splice(index, 1)[0]\r\n const _items = attachTo.item.items\r\n\r\n if (notes) {\r\n console.log('same branch', {\r\n attachTo: attachTo,\r\n _item,\r\n _items\r\n })\r\n }\r\n\r\n //\r\n // This was problematic, but maybe there\r\n // is a condition where should be at front of\r\n // array....\r\n //\r\n // _items.splice(index - 1, 0, _item)\r\n\r\n _items.push(_item)\r\n\r\n return {\r\n code: 2,\r\n moved: true,\r\n idChange: true\r\n }\r\n }\r\n\r\n a++\r\n }\r\n\r\n /*\r\n determine this for each possible previous item\r\n */\r\n return {\r\n code: 3,\r\n moved: true,\r\n idChange: true\r\n }\r\n }\r\n\r\n if (isFirst && typeof parentId !== 'number') {\r\n //\r\n // The item is the first item of the level 0 array\r\n // therefore, it can't be moved up any more.\r\n //\r\n return {\r\n code: 4,\r\n moved: false,\r\n idChange: false\r\n }\r\n }\r\n\r\n const parentItem = findId({\r\n branch: multiLevelList,\r\n id: parentId\r\n })\r\n\r\n const _item = parentBranch.splice(index, 1)[0]\r\n addToParent({\r\n item: _item,\r\n parentItem,\r\n multiLevelList\r\n })\r\n\r\n return {\r\n code: 5,\r\n moved: true,\r\n idChange: true\r\n }\r\n}\r\n","import { moveUp } from '@/utilities/nestedSort/multiLevelList/moveUp'\r\nimport { calculateStartTimes } from '@/utilities/nestedSort/multiLevelList/calculateStartTimes'\r\nimport { save } from './save'\r\n\r\nexport async function _moveUp({ id, component }) {\r\n const { idChange } = moveUp({\r\n multiLevelList: this.multiLevelList,\r\n id,\r\n maxDepth: this.maxDepth\r\n })\r\n\r\n const startTime = this.boardPackage.meetingDate\r\n calculateStartTimes({\r\n items: this.multiLevelList,\r\n // '3191-12-20T21:10:00'\r\n startTime\r\n })\r\n\r\n component.create()\r\n\r\n function focus() {\r\n let _id = id\r\n if (idChange) {\r\n _id--\r\n }\r\n\r\n try {\r\n document\r\n .querySelectorAll('#nested-sortable-agenda')[0]\r\n .querySelectorAll(`[data-id=\"${_id}\"]`)[0]\r\n .querySelectorAll(`[up-arrow]`)[0]\r\n .focus()\r\n } catch (x) {\r\n console.error(x)\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n focus()\r\n }, 500)\r\n setTimeout(() => {\r\n focus()\r\n }, 1000)\r\n setTimeout(() => {\r\n focus()\r\n this.status = 'saving'\r\n save(this.boardPackage, this.multiLevelList)\r\n this.refresh()\r\n this.savingTimeout = setTimeout(() => {\r\n this.status = 'saved'\r\n }, 300)\r\n }, 1500)\r\n}\r\n","/*\r\n import { moveDown } from '@/utilities/nestedSort/multiLevelList/findNext'\r\n const theItem = moveDown ({ \r\n multiLevelList,\r\n id\r\n });\r\n*/\r\nimport { findId } from '@/utilities/nestedSort/multiLevelList/findId'\r\n\r\nfunction addToParent({ parentItem, item }) {\r\n const { parentBranch, index } = parentItem\r\n\r\n parentBranch.splice(index + 1, 0, item)\r\n}\r\n\r\nexport function moveDown({ multiLevelList, id, maxDepth = 100 }) {\r\n const item = findId({\r\n branch: multiLevelList,\r\n id\r\n })\r\n\r\n const parentBranch = item.parentBranch\r\n const parentId = item.parentId\r\n const index = item.index\r\n\r\n const isLast = item.index + 1 === parentBranch.length\r\n\r\n if (!isLast) {\r\n //\r\n // The item is not the last in the parent's item\r\n // array, therefore it can be moved one down in the array.\r\n //\r\n const nextId = parentBranch[index + 1].id\r\n const nextItem = findId({\r\n branch: multiLevelList,\r\n id: nextId\r\n })\r\n\r\n const combinedDepth = nextItem.depth + item.levels - 1\r\n\r\n if (combinedDepth < maxDepth) {\r\n const _item = parentBranch.splice(index, 1)[0]\r\n nextItem.item.items.unshift(_item)\r\n\r\n return {\r\n moved: true,\r\n idChange: true\r\n }\r\n }\r\n\r\n // max depth found\r\n const _item = parentBranch.splice(index, 1)[0]\r\n parentBranch.splice(index + 1, 0, _item)\r\n\r\n return {\r\n moved: true,\r\n idChange: true\r\n }\r\n }\r\n\r\n if (isLast && typeof parentId !== 'number') {\r\n //\r\n // The item is the last item of the level 0 array\r\n // therefore, it can't be moved down any more.\r\n //\r\n return {\r\n moved: false,\r\n idChange: false\r\n }\r\n }\r\n\r\n //\r\n // the item is the last item,\r\n // however it is a descendent of\r\n // another item\r\n //\r\n\r\n const parentItem = findId({\r\n branch: multiLevelList,\r\n id: parentId\r\n })\r\n\r\n const _item = parentBranch.splice(index, 1)[0]\r\n addToParent({\r\n item: _item,\r\n parentItem,\r\n multiLevelList\r\n })\r\n\r\n return {\r\n moved: true,\r\n idChange: false\r\n }\r\n}\r\n","import { moveDown } from '@/utilities/nestedSort/multiLevelList/moveDown'\r\nimport { calculateStartTimes } from '@/utilities/nestedSort/multiLevelList/calculateStartTimes'\r\nimport { save } from './save'\r\n\r\nexport async function _moveDown({ id, component }) {\r\n const { idChange } = moveDown({\r\n multiLevelList: this.multiLevelList,\r\n id,\r\n maxDepth: this.maxDepth\r\n })\r\n\r\n const startTime = this.boardPackage.meetingDate\r\n calculateStartTimes({\r\n items: this.multiLevelList,\r\n // '3191-12-20T21:10:00'\r\n startTime\r\n })\r\n\r\n component.create()\r\n\r\n function focus() {\r\n let _id = id\r\n if (idChange) {\r\n _id++\r\n }\r\n\r\n try {\r\n document\r\n .querySelectorAll('#nested-sortable-agenda')[0]\r\n .querySelectorAll(`[data-id=\"${_id}\"]`)[0]\r\n .querySelectorAll(`[down-arrow]`)[0]\r\n .focus()\r\n } catch (x) {\r\n console.error(x)\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n focus()\r\n }, 500)\r\n setTimeout(() => {\r\n focus()\r\n this.status = 'saving'\r\n save(this.boardPackage, this.multiLevelList)\r\n this.refresh()\r\n this.savingTimeout = setTimeout(() => {\r\n this.status = 'saved'\r\n }, 300)\r\n }, 1000)\r\n}\r\n","import { getBoardPackage } from '@/services/BoardMeetings/BoardPackage/Get'\r\n\r\nimport { notifyError } from '@/services/notify'\r\n\r\nimport { create } from './list/create'\r\nimport { buildMultiLevel } from './list/buildMultiLevel'\r\nimport { _buildOneLevelList } from './list/buildOneLevelList'\r\nimport { save } from './list/save'\r\nimport { erase } from './list/erase'\r\nimport { add } from './list/add'\r\nimport { edit } from './list/edit'\r\nimport { openEditModal } from './list/openEditModal'\r\nimport { openAddModal } from './list/openAddModal'\r\nimport { preview } from './list/preview'\r\n\r\nimport { _moveUp } from './list/moveUp'\r\nimport { _moveDown } from './list/moveDown'\r\n\r\nexport const methods = {\r\n erase,\r\n save,\r\n\r\n buildMultiLevel,\r\n buildOneLevelList: _buildOneLevelList,\r\n create,\r\n add,\r\n edit,\r\n openEditModal,\r\n\r\n moveUp: _moveUp,\r\n moveDown: _moveDown,\r\n\r\n preview,\r\n\r\n async itemModalClosed({ dataId, mode }) {\r\n await new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve()\r\n }, 500)\r\n })\r\n\r\n if (typeof dataId === 'number') {\r\n if (mode === 'add') {\r\n try {\r\n document\r\n .querySelectorAll('#nested-sortable-agenda')[0]\r\n .querySelectorAll(`[data-id=\"${dataId}\"]`)[0]\r\n .querySelectorAll(`[adder]`)[0]\r\n .focus()\r\n } catch (x) {\r\n console.error(x)\r\n }\r\n } else if (mode === 'edit') {\r\n try {\r\n document\r\n .querySelectorAll('#nested-sortable-agenda')[0]\r\n .querySelectorAll(`[data-id=\"${dataId}\"]`)[0]\r\n .querySelectorAll(`[editor]`)[0]\r\n .focus()\r\n } catch (x) {\r\n console.error(x)\r\n }\r\n }\r\n\r\n return\r\n }\r\n\r\n try {\r\n this.$refs.openAddModalButton.$el.focus()\r\n } catch (x) {\r\n console.error(x)\r\n }\r\n },\r\n\r\n getWidths() {\r\n if (['tablet', 'mobile'].includes(this.breakpoint)) {\r\n return ['30%', '30%', '30%']\r\n }\r\n\r\n return ['30%', '13%', '10%']\r\n },\r\n\r\n async getAgenda() {\r\n await getBoardPackage({\r\n boardPackageID: this.id\r\n }).then(({ successful, message, boardPackage }) => {\r\n if (!successful) {\r\n notifyError(message)\r\n return\r\n }\r\n\r\n this.boardPackage = boardPackage\r\n\r\n this.multiLevelList = JSON.parse(this.boardPackage.agendaJson)\r\n\r\n // for the sake of checking if \"saved\"\r\n this.retrievedAgenda = Object.seal(this.multiLevelList)\r\n\r\n this.buildOneLevelList()\r\n this.buildMultiLevel()\r\n })\r\n },\r\n\r\n openAddModal,\r\n\r\n async refresh() {\r\n this.widths = this.getWidths()\r\n\r\n await this.getAgenda()\r\n await this.create()\r\n }\r\n}\r\n","export function data() {\r\n return {\r\n found: false,\r\n saved: true,\r\n status: 'saved',\r\n nextId: 1,\r\n id: null,\r\n oneLevelList: [],\r\n multiLevelList: [],\r\n maxDepth: 3,\r\n widths: this.getWidths(),\r\n paddingLefts: ['10px']\r\n }\r\n}\r\n","import { mapState } from 'vuex'\r\n\r\nexport const computed = {\r\n ...mapState({\r\n breakpoint: state => state.win.breakpoint\r\n })\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',{attrs:{\"toggle\":_vm.toggle,\"styles\":{ modalContent: { minHeight: '100px' } }},on:{\"update:toggle\":function($event){_vm.toggle=$event}},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [(_vm.mode === 'add')?_c('div',[_vm._v(\"Add Agenda Item\")]):_vm._e(),(_vm.mode === 'edit')?_c('div',[_vm._v(\"Edit Agenda Item\")]):_vm._e()]},proxy:true},{key:\"footer\",fn:function(){return [_c('b-button',{staticClass:\"is-primary\",on:{\"click\":function($event){_vm.toggle = false}}},[_vm._v(\"Close\")]),(_vm.mode === 'add')?_c('b-button',{staticClass:\"is-primary\",style:({ float: 'right' }),on:{\"click\":_vm.add}},[_vm._v(\"Add\")]):_vm._e(),(_vm.mode === 'edit')?_c('b-button',{staticClass:\"is-primary\",style:({ float: 'right' }),on:{\"click\":_vm.edit}},[_vm._v(\"Save\")]):_vm._e()]},proxy:true}])},[_c('b-field',[_c('b-radio',{attrs:{\"name\":\"selectLevel\",\"native-value\":\"none\",\"aria-label\":\"none\"},model:{value:(_vm.rselect),callback:function ($$v) {_vm.rselect=$$v},expression:\"rselect\"}},[_vm._v(\" Add at Top Level \")])],1),_c('b-field',[_c('b-radio',{attrs:{\"name\":\"selectLevel\",\"native-value\":\"activate\",\"aria-label\":\"activate\"},model:{value:(_vm.rselect),callback:function ($$v) {_vm.rselect=$$v},expression:\"rselect\"}},[_vm._v(\" Add Under Existing Heading Item \")])],1),_c('b-field',{attrs:{\"label\":\"Parent\"}},[_c('b-select',{attrs:{\"disabled\":_vm.isDisabled},model:{value:(_vm.parent),callback:function ($$v) {_vm.parent=$$v},expression:\"parent\"}},_vm._l((_vm.parentItems),function(option,index){return _c('option',{key:index,domProps:{\"value\":option.id}},[_vm._v(\" \"+_vm._s(option.text)+\" \")])}),0)],1),_c('b-field',{attrs:{\"label\":\"Title\"}},[_c('b-input',{model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}})],1),_c('b-field',{attrs:{\"label\":\"Duration (minutes)\"}},[_c('b-numberinput',{attrs:{\"controls-position\":\"compact\"},model:{value:(_vm.duration),callback:function ($$v) {_vm.duration=$$v},expression:\"duration\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4a85f13e&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=03a977b1&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","/*\r\n import { setStyles } from '@/utilities/Element/setStyles'\r\n\r\n setStyles ({\r\n width: '100%'\r\n }, element);\r\n*/\r\nexport const setStyles = (styles, element) => {\r\n for (const style in styles) {\r\n element.style[style] = styles[style]\r\n }\r\n}\r\n","/*\r\n import { base64toBlob, showPdf } from '@/services/blobutility'\r\n*/\r\n\r\nexport const base64toBlob = (b64Data, contentType) => {\r\n const sliceSize = 512\r\n const byteCharacters = atob(b64Data)\r\n const byteArrays = []\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize)\r\n\r\n const byteNumbers = new Array(slice.length)\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i)\r\n }\r\n\r\n const byteArray = new Uint8Array(byteNumbers)\r\n byteArrays.push(byteArray)\r\n }\r\n\r\n const blob = new Blob(byteArrays, { type: contentType })\r\n return blob\r\n}\r\n\r\nexport const showPdf = blob => {\r\n var newBlob = new Blob([blob], { type: 'application/pdf' })\r\n\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob)\r\n } else {\r\n const data = window.URL.createObjectURL(newBlob)\r\n\r\n var link = document.createElement('a')\r\n link.download = 'download.pdf'\r\n link.setAttribute('download', 'download.pdf')\r\n link.href = data\r\n\r\n window.open(link, '_blank')\r\n }\r\n\r\n return\r\n}\r\n\r\nexport const downloadPdf = blob => {\r\n var newBlob = new Blob([blob], { type: 'application/pdf' })\r\n\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob)\r\n } else {\r\n const data = window.URL.createObjectURL(newBlob)\r\n var link = document.createElement('a')\r\n link.download = 'download.pdf'\r\n link.setAttribute('download', 'download.pdf')\r\n link.href = data\r\n link.click()\r\n\r\n setTimeout(function() {\r\n window.URL.revokeObjectURL(data)\r\n 100\r\n })\r\n }\r\n\r\n return\r\n}\r\n\r\nexport const showAnyType = (blob, mimeType) => {\r\n console.debug('showAnyType...')\r\n var newBlob = new Blob([blob], { type: mimeType })\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob)\r\n } else {\r\n const data = window.URL.createObjectURL(newBlob)\r\n var link = document.createElement('a')\r\n link.href = data\r\n\r\n window.open(data, '_blank')\r\n\r\n setTimeout(function() {\r\n window.URL.revokeObjectURL(data)\r\n 100\r\n })\r\n }\r\n\r\n return\r\n}\r\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativeSeal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeSeal(1); });\n\n// `Object.seal` method\n// https://tc39.github.io/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return nativeSeal && isObject(it) ? nativeSeal(onFreeze(it)) : it;\n }\n});\n","/*\r\n import { notifyError } from '@/services/notify'\r\n\r\n\timport { getBoardPackage } from '@/services/BoardMeetings/BoardPackage/Get';\r\n\r\n await getBoardPackage ({\r\n boardPackageID\r\n }).then (({ successful, message, boardPackage }) => {\r\n if (!successful) {\r\n notifyError (message);\r\n return;\r\n }\r\n \r\n })\r\n \r\n*/\r\n\r\nimport kms from '@/services/kms'\r\nimport { notifyError } from '@/services/notify'\r\n\r\nexport async function getBoardPackage({ boardPackageID }) {\r\n try {\r\n const result = await kms.get(`/BoardMeetings/BoardPackage/${boardPackageID}`)\r\n\r\n return {\r\n successful: true,\r\n message: `The board meeting details were retrieved successfully.`,\r\n boardPackage: result\r\n }\r\n } catch (exception) {\r\n console.error(exception)\r\n }\r\n\r\n const message = `Board meeting ${boardPackageID} could not be retrieved. It might have been deleted or you might not have permission to open it.`\r\n notifyError(message)\r\n\r\n return {\r\n successful: false,\r\n message,\r\n boardPackage: null\r\n }\r\n}\r\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.NestedSort = factory());\n})(this, (function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var DataEngine = /*#__PURE__*/function () {\n /**\n * @constructor\n */\n function DataEngine(_ref) {\n var data = _ref.data,\n _ref$propertyMap = _ref.propertyMap,\n propertyMap = _ref$propertyMap === void 0 ? {} : _ref$propertyMap,\n renderListItem = _ref.renderListItem;\n\n _classCallCheck(this, DataEngine);\n\n _defineProperty(this, \"data\", void 0);\n\n _defineProperty(this, \"sortedData\", void 0);\n\n _defineProperty(this, \"sortedDataDomArray\", void 0);\n\n _defineProperty(this, \"propertyMap\", void 0);\n\n _defineProperty(this, \"renderListItem\", void 0);\n\n this.data = data;\n this.sortedData = [];\n this.sortedDataDomArray = [];\n this.propertyMap = propertyMap;\n this.renderListItem = renderListItem;\n this.maybeTransformData();\n }\n\n _createClass(DataEngine, [{\n key: \"maybeTransformData\",\n value: function maybeTransformData() {\n if (!Object.keys(this.propertyMap).length || !Array.isArray(this.data)) return;\n var getItemPropProxyName = this.getItemPropProxyName.bind(this);\n this.data = this.data.map(function (item) {\n return new Proxy(item, {\n get: function get(target, prop, receiver) {\n return Reflect.get(target, getItemPropProxyName(prop), receiver);\n }\n });\n });\n }\n }, {\n key: \"getItemPropProxyName\",\n value: function getItemPropProxyName(prop) {\n if (Object.prototype.hasOwnProperty.call(this.propertyMap, prop)) {\n return this.propertyMap[prop];\n }\n\n return prop;\n }\n }, {\n key: \"isTopLevelItem\",\n value: function isTopLevelItem(item) {\n return !item.parent;\n }\n }, {\n key: \"sortListItems\",\n value: function sortListItems() {\n var _this = this;\n\n var items = _toConsumableArray(this.data);\n\n var topLevelItems = items.filter(function (a) {\n return _this.isTopLevelItem(a);\n }).sort(function (a, b) {\n return a.order && b.order ? a.order - b.order : 0;\n });\n var childItems = items.filter(function (a) {\n return !_this.isTopLevelItem(a);\n }).reduce(function (groups, item) {\n if (Object.prototype.hasOwnProperty.call(groups, item.parent)) {\n groups[item.parent].push(item);\n } else {\n groups[item.parent] = [item];\n }\n\n return groups;\n }, {});\n Object.keys(childItems).forEach(function (parentId) {\n childItems[parentId].sort(function (a, b) {\n return a.order && b.order ? a.order - b.order : 0;\n });\n });\n this.sortedData = [].concat(_toConsumableArray(topLevelItems), _toConsumableArray(Object.values(childItems).flat()));\n return this.sortedData;\n }\n }, {\n key: \"createItemElement\",\n value: function createItemElement(item) {\n var nodeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'li';\n var id = item.id,\n text = item.text;\n var el = document.createElement(nodeName);\n el.dataset.id = id;\n if (nodeName === 'li' && text) el.innerHTML = text;\n return nodeName === 'li' && typeof this.renderListItem === 'function' ? this.renderListItem(el, item) : el;\n }\n }, {\n key: \"elementIsParentOfItem\",\n value: function elementIsParentOfItem(node, item) {\n return node.dataset.id === \"\".concat(item.parent);\n }\n }, {\n key: \"getParentNodeOfItem\",\n value: function getParentNodeOfItem(node, item, nodeName) {\n return node.querySelector(\"\".concat(nodeName, \"[data-id=\\\"\").concat(item.parent, \"\\\"]\"));\n }\n }, {\n key: \"elementIsAncestorOfItem\",\n value: function elementIsAncestorOfItem(node, item) {\n return !!this.getParentNodeOfItem(node, item, 'li');\n }\n }, {\n key: \"getDirectListParentOfItem\",\n value: function getDirectListParentOfItem(node, item) {\n return this.getParentNodeOfItem(node, item, 'ol');\n }\n }, {\n key: \"maybeAppendItemToParentDom\",\n value: function maybeAppendItemToParentDom(item) {\n var _this2 = this;\n\n var parent = item.parent;\n var topParent = this.sortedDataDomArray.find(function (topLevelListItem) {\n return _this2.elementIsParentOfItem(topLevelListItem, item) || _this2.elementIsAncestorOfItem(topLevelListItem, item);\n });\n if (!topParent) return false;\n var listItem = this.createItemElement(item);\n var directParentList = this.getDirectListParentOfItem(topParent, item);\n\n if (!directParentList) {\n // we need to create the direct parent OL and append it to the direct parent LI\n directParentList = this.createItemElement({\n id: parent\n }, 'ol');\n var directParentListItem = this.getParentNodeOfItem(topParent, item, 'li') || topParent;\n directParentListItem.appendChild(directParentList);\n }\n\n directParentList.appendChild(listItem);\n return true;\n }\n }, {\n key: \"getListItemsDom\",\n value: function getListItemsDom() {\n var _this3 = this;\n\n this.sortedDataDomArray = [];\n var processedItems = [];\n\n while (processedItems.length !== this.sortListItems().length) {\n processedItems = this.sortedData.reduce(function (processedItems, item) {\n var id = item.id.toString();\n if (processedItems.includes(id)) return processedItems;\n var itemAdded;\n\n if (!item.parent) {\n var listItem = _this3.createItemElement(item);\n\n _this3.sortedDataDomArray.push(listItem);\n\n itemAdded = true;\n } else {\n itemAdded = _this3.maybeAppendItemToParentDom(item);\n }\n\n if (itemAdded) processedItems.push(id);\n return processedItems;\n }, processedItems);\n }\n\n return this.sortedDataDomArray;\n }\n }, {\n key: \"convertDomToData\",\n value: function convertDomToData(list) {\n var _this4 = this;\n\n return Array.from((list === null || list === void 0 ? void 0 : list.querySelectorAll('li')) || []).map(function (li) {\n var _ref2;\n\n var parentListItem = li.parentNode;\n var parent = parentListItem.dataset.id;\n var order = Array.from(parentListItem.children).findIndex(function (item) {\n return item === li;\n }) + 1;\n return _ref2 = {}, _defineProperty(_ref2, _this4.getItemPropProxyName('id'), li.dataset.id), _defineProperty(_ref2, _this4.getItemPropProxyName('parent'), parent), _defineProperty(_ref2, _this4.getItemPropProxyName('order'), order), _ref2;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var list = document.createElement('ol');\n this.getListItemsDom().forEach(function (listItem) {\n return list.appendChild(listItem);\n });\n return list;\n }\n }]);\n\n return DataEngine;\n }();\n\n var NestedSort = /*#__PURE__*/function () {\n function NestedSort(_ref) {\n var _ref$actions = _ref.actions,\n actions = _ref$actions === void 0 ? {} : _ref$actions,\n data = _ref.data,\n _ref$droppingEdge = _ref.droppingEdge,\n droppingEdge = _ref$droppingEdge === void 0 ? 15 : _ref$droppingEdge,\n el = _ref.el,\n _ref$init = _ref.init,\n init = _ref$init === void 0 ? true : _ref$init,\n listClassNames = _ref.listClassNames,\n listItemClassNames = _ref.listItemClassNames,\n nestingLevels = _ref.nestingLevels,\n _ref$propertyMap = _ref.propertyMap,\n propertyMap = _ref$propertyMap === void 0 ? {} : _ref$propertyMap,\n renderListItem = _ref.renderListItem;\n\n _classCallCheck(this, NestedSort);\n\n _defineProperty(this, \"actions\", void 0);\n\n _defineProperty(this, \"classNames\", void 0);\n\n _defineProperty(this, \"cursor\", void 0);\n\n _defineProperty(this, \"data\", void 0);\n\n _defineProperty(this, \"dataEngine\", void 0);\n\n _defineProperty(this, \"distances\", void 0);\n\n _defineProperty(this, \"draggedNode\", void 0);\n\n _defineProperty(this, \"initialised\", void 0);\n\n _defineProperty(this, \"listClassNames\", void 0);\n\n _defineProperty(this, \"listEventListeners\", void 0);\n\n _defineProperty(this, \"listInterface\", void 0);\n\n _defineProperty(this, \"listItemClassNames\", void 0);\n\n _defineProperty(this, \"mainListClassName\", void 0);\n\n _defineProperty(this, \"nestingLevels\", void 0);\n\n _defineProperty(this, \"placeholderList\", void 0);\n\n _defineProperty(this, \"placeholderInUse\", void 0);\n\n _defineProperty(this, \"propertyMap\", void 0);\n\n _defineProperty(this, \"renderListItem\", void 0);\n\n _defineProperty(this, \"sortableList\", void 0);\n\n _defineProperty(this, \"targetedNode\", void 0);\n\n _defineProperty(this, \"targetNode\", void 0);\n\n _defineProperty(this, \"wrapper\", void 0);\n\n this.renderListItem = renderListItem;\n var element = typeof el === 'string' ? document.querySelector(el) : el;\n var elementIsAList = element instanceof HTMLOListElement || element instanceof HTMLUListElement;\n this.wrapper = elementIsAList ? undefined : element;\n this.sortableList = elementIsAList ? element : null;\n this.data = data;\n this.listClassNames = this.createListClassNamesArray(listClassNames);\n this.mainListClassName = this.listClassNames[0] || 'nested-sort';\n this.listItemClassNames = this.createListClassNamesArray(listItemClassNames);\n this.propertyMap = propertyMap;\n this.actions = {\n onDrop: actions.onDrop\n };\n this.initialised = false;\n this.distances = {\n droppingEdge: droppingEdge\n };\n this.classNames = {\n dragged: 'ns-dragged',\n placeholder: 'ns-placeholder',\n targeted: 'ns-targeted'\n };\n this.listEventListeners = {\n dragover: this.onDragOver.bind(this),\n dragstart: this.onDragStart.bind(this),\n dragenter: this.onDragEnter.bind(this),\n dragend: this.onDragEnd.bind(this),\n drop: this.onDrop.bind(this)\n };\n var intNestingLevels = parseInt(nestingLevels);\n this.nestingLevels = isNaN(intNestingLevels) ? -1 : intNestingLevels; // values less than 0 mean infinite levels of nesting\n\n this.listInterface = this.getListInterface();\n this.maybeInitDataDom();\n this.addListAttributes();\n if (init) this.initDragAndDrop();\n }\n\n _createClass(NestedSort, [{\n key: \"getListInterface\",\n value: function getListInterface() {\n if (Array.isArray(this.data) && this.data.length) return HTMLOListElement;\n return this.sortableList instanceof HTMLOListElement ? HTMLOListElement : HTMLUListElement;\n }\n }, {\n key: \"getDataEngine\",\n value: function getDataEngine() {\n if (this.dataEngine) return this.dataEngine;\n this.dataEngine = new DataEngine({\n data: this.data,\n propertyMap: this.propertyMap,\n renderListItem: this.renderListItem\n });\n return this.dataEngine;\n }\n }, {\n key: \"createListClassNamesArray\",\n value: function createListClassNamesArray(listClassNames) {\n if (!listClassNames) return [];\n return Array.isArray(listClassNames) ? listClassNames : listClassNames.split(' ');\n }\n }, {\n key: \"maybeInitDataDom\",\n value: function maybeInitDataDom() {\n if (!(Array.isArray(this.data) && this.data.length && this.wrapper)) return;\n var list = this.getDataEngine().render();\n this.wrapper.innerHTML = '';\n this.wrapper.appendChild(list);\n }\n }, {\n key: \"getListTagName\",\n value: function getListTagName() {\n return this.listInterface === HTMLOListElement ? 'ol' : 'ul';\n }\n }, {\n key: \"getSortableList\",\n value: function getSortableList() {\n var _this$wrapper;\n\n if (this.sortableList instanceof this.listInterface) return this.sortableList;\n this.sortableList = (_this$wrapper = this.wrapper) === null || _this$wrapper === void 0 ? void 0 : _this$wrapper.querySelector(this.getListTagName());\n return this.sortableList;\n }\n }, {\n key: \"addListAttributes\",\n value: function addListAttributes() {\n var _list$classList,\n _this = this;\n\n var list = this.getSortableList();\n if (!list) return;\n\n (_list$classList = list.classList).add.apply(_list$classList, _toConsumableArray(this.listClassNames.concat(this.mainListClassName)));\n\n list.querySelectorAll(this.getListTagName()).forEach(function (l) {\n var _l$classList;\n\n (_l$classList = l.classList).add.apply(_l$classList, _toConsumableArray(_this.listClassNames));\n });\n list.querySelectorAll('li').forEach(function (li) {\n var _li$classList;\n\n (_li$classList = li.classList).add.apply(_li$classList, _toConsumableArray(_this.listItemClassNames));\n });\n }\n }, {\n key: \"toggleMainListLifeCycleClassName\",\n value: function toggleMainListLifeCycleClassName() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var list = this.getSortableList();\n if (!list) return;\n var className = \"\".concat(this.mainListClassName, \"--enabled\");\n enabled ? list.classList.add(className) : list.classList.remove(className);\n }\n }, {\n key: \"toggleListItemAttributes\",\n value: function toggleListItemAttributes() {\n var _this$getSortableList;\n\n var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n (_this$getSortableList = this.getSortableList()) === null || _this$getSortableList === void 0 ? void 0 : _this$getSortableList.querySelectorAll('li').forEach(function (el) {\n el.setAttribute('draggable', enable.toString());\n });\n }\n }, {\n key: \"toggleListEventListeners\",\n value: function toggleListEventListeners() {\n var _this2 = this;\n\n var remove = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var list = this.getSortableList();\n if (!list) return;\n Object.keys(this.listEventListeners).forEach(function (event) {\n remove ? list.removeEventListener(event, _this2.listEventListeners[event]) : list.addEventListener(event, _this2.listEventListeners[event], false);\n });\n }\n }, {\n key: \"initDragAndDrop\",\n value: function initDragAndDrop() {\n if (this.initialised) return;\n this.toggleListEventListeners();\n this.initPlaceholderList();\n this.toggleListItemAttributes();\n this.toggleMainListLifeCycleClassName();\n this.initialised = true;\n }\n }, {\n key: \"init\",\n value: function init() {\n this.initDragAndDrop();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.toggleListEventListeners(true);\n this.toggleListItemAttributes(false);\n this.toggleMainListLifeCycleClassName(false);\n this.initialised = false;\n }\n }, {\n key: \"removeClassFromEl\",\n value: function removeClassFromEl(className, el) {\n if (el && el.classList.contains(className)) {\n el.classList.remove(className);\n }\n }\n }, {\n key: \"canBeTargeted\",\n value: function canBeTargeted(el) {\n if (!this.draggedNode || this.draggedNode === el) return false;\n return el.nodeName === 'LI' || el instanceof this.listInterface && el.classList.contains(this.classNames.placeholder);\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(e) {\n var _e$dataTransfer;\n\n this.draggedNode = e.target;\n this.draggedNode.classList.add(this.classNames.dragged);\n (_e$dataTransfer = e.dataTransfer) === null || _e$dataTransfer === void 0 ? void 0 : _e$dataTransfer.setData('text', 'Drag started!'); // Hack for Firefox!\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(e) {\n e.preventDefault(); // prevent default to allow drop\n\n this.updateCoordination(e);\n this.managePlaceholderLists();\n }\n }, {\n key: \"onDragEnter\",\n value: function onDragEnter(e) {\n if (!this.canBeTargeted(e.target)) return;\n this.removeClassFromEl(this.classNames.targeted, this.targetedNode);\n this.targetedNode = e.target;\n this.targetedNode.classList.add(this.classNames.targeted);\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd(e) {\n e.stopPropagation();\n this.removeClassFromEl(this.classNames.dragged, this.draggedNode);\n this.removeClassFromEl(this.classNames.targeted, this.targetedNode);\n this.cleanupPlaceholderLists();\n delete this.draggedNode;\n delete this.targetedNode;\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(e) {\n e.stopPropagation();\n this.maybeDrop();\n this.cleanupPlaceholderLists();\n\n if (typeof this.actions.onDrop === 'function') {\n this.actions.onDrop(this.getDataEngine().convertDomToData(this.getSortableList()));\n }\n }\n }, {\n key: \"updateCoordination\",\n value: function updateCoordination(e) {\n this.calcMouseCoords(e);\n this.calcMouseToTargetedElDist();\n }\n }, {\n key: \"getDropLocation\",\n value: function getDropLocation() {\n if (this.canBeDropped()) {\n var _this$targetedNode;\n\n if (((_this$targetedNode = this.targetedNode) === null || _this$targetedNode === void 0 ? void 0 : _this$targetedNode.nodeName) === 'LI') return 'before';else if (this.targetedNode instanceof this.listInterface) return 'inside';\n }\n }\n }, {\n key: \"maybeDrop\",\n value: function maybeDrop() {\n var location = this.getDropLocation();\n if (location) this.dropTheItem(location);\n }\n }, {\n key: \"dropTheItem\",\n value: function dropTheItem(place) {\n var _this$targetedNode2, _this$targetedNode2$p, _this$targetedNode3;\n\n switch (place) {\n case 'before':\n (_this$targetedNode2 = this.targetedNode) === null || _this$targetedNode2 === void 0 ? void 0 : (_this$targetedNode2$p = _this$targetedNode2.parentNode) === null || _this$targetedNode2$p === void 0 ? void 0 : _this$targetedNode2$p.insertBefore(this.draggedNode, this.targetedNode);\n break;\n\n case 'inside':\n (_this$targetedNode3 = this.targetedNode) === null || _this$targetedNode3 === void 0 ? void 0 : _this$targetedNode3.appendChild(this.draggedNode);\n break;\n }\n }\n }, {\n key: \"calcMouseCoords\",\n value: function calcMouseCoords(e) {\n // we're having the client coords because on the next lines, we use getBoundingClientRect which behaves in the same way\n this.cursor = {\n X: e.clientX,\n Y: e.clientY\n };\n }\n }, {\n key: \"calcMouseToTargetedElDist\",\n value: function calcMouseToTargetedElDist() {\n if (!this.targetedNode) {\n return;\n }\n\n var offset = this.targetedNode.getBoundingClientRect();\n this.targetNode = {\n X: offset.left,\n Y: offset.top\n };\n var result = this.targetNode.Y - this.cursor.Y;\n var targetedElTopAbs = Math.abs(result);\n this.distances.mouseTo = {\n targetedElTop: result,\n targetedElTopAbs: targetedElTopAbs,\n targetedElBot: targetedElTopAbs - this.targetedNode.clientHeight\n };\n }\n }, {\n key: \"areNested\",\n value: function areNested(child, parent) {\n return !!child && !!parent && Array.from(parent === null || parent === void 0 ? void 0 : parent.querySelectorAll('li')).some(function (li) {\n return li === child;\n });\n }\n }, {\n key: \"cursorIsIndentedEnough\",\n value: function cursorIsIndentedEnough() {\n return this.cursor.X - this.targetNode.X > 50;\n }\n }, {\n key: \"mouseIsTooCloseToTop\",\n value: function mouseIsTooCloseToTop() {\n var _this$distances;\n\n if (!((_this$distances = this.distances) !== null && _this$distances !== void 0 && _this$distances.droppingEdge)) return false;\n return this.cursor.Y - this.targetNode.Y < this.distances.droppingEdge;\n }\n }, {\n key: \"managePlaceholderLists\",\n value: function managePlaceholderLists() {\n var _this3 = this;\n\n var actions = this.analysePlaceHolderSituation();\n actions.forEach(function (action) {\n switch (action) {\n case 'add':\n _this3.cleanupPlaceholderLists();\n\n _this3.addPlaceholderList();\n\n break;\n\n case 'cleanup':\n _this3.cleanupPlaceholderLists();\n\n break;\n }\n });\n }\n }, {\n key: \"targetedNodeIsPlaceholder\",\n value: function targetedNodeIsPlaceholder() {\n return this.targetedNode instanceof this.listInterface && this.targetedNode.classList.contains(this.classNames.placeholder);\n }\n }, {\n key: \"getTargetedNodeDepth\",\n value: function getTargetedNodeDepth() {\n var depth = 0;\n var el = this.targetedNode;\n var list = this.getSortableList();\n\n while (list !== ((_el = el) === null || _el === void 0 ? void 0 : _el.parentElement)) {\n var _el, _el2, _el3;\n\n if (((_el2 = el) === null || _el2 === void 0 ? void 0 : _el2.parentElement) instanceof this.listInterface) depth++;\n el = (_el3 = el) === null || _el3 === void 0 ? void 0 : _el3.parentElement;\n }\n\n return depth;\n }\n }, {\n key: \"nestingThresholdReached\",\n value: function nestingThresholdReached() {\n if (this.nestingLevels < 0) return false;\n if (this.nestingLevels === 0) return true;\n return this.getTargetedNodeDepth() >= this.nestingLevels;\n }\n }, {\n key: \"analysePlaceHolderSituation\",\n value: function analysePlaceHolderSituation() {\n if (!this.targetedNode || this.areNested(this.targetedNode, this.draggedNode)) {\n return [];\n }\n\n var actions = [];\n\n if (!this.cursorIsIndentedEnough() || this.mouseIsTooCloseToTop()) {\n if (!this.targetedNodeIsPlaceholder()) {\n actions.push('cleanup');\n }\n } else if (this.targetedNode !== this.draggedNode && this.targetedNode.nodeName === 'LI' && !this.targetedNode.querySelectorAll(this.getListTagName()).length && !this.nestingThresholdReached()) {\n actions.push('add');\n }\n\n return actions;\n }\n }, {\n key: \"animatePlaceholderList\",\n value: function animatePlaceholderList() {\n var _this$draggedNode;\n\n this.placeholderInUse.style.minHeight = '0';\n this.placeholderInUse.style.transition = 'min-height ease .2s';\n this.placeholderInUse.style.minHeight = \"\".concat((_this$draggedNode = this.draggedNode) === null || _this$draggedNode === void 0 ? void 0 : _this$draggedNode.offsetHeight, \"px\");\n }\n }, {\n key: \"addPlaceholderList\",\n value: function addPlaceholderList() {\n var _this$targetedNode4;\n\n this.getPlaceholderList();\n (_this$targetedNode4 = this.targetedNode) === null || _this$targetedNode4 === void 0 ? void 0 : _this$targetedNode4.appendChild(this.placeholderInUse);\n this.animatePlaceholderList();\n }\n }, {\n key: \"targetNodeIsIdentified\",\n value: function targetNodeIsIdentified() {\n return !!this.targetedNode;\n }\n }, {\n key: \"targetNodeIsBeingDragged\",\n value: function targetNodeIsBeingDragged() {\n return this.targetNodeIsIdentified() && this.targetedNode === this.draggedNode;\n }\n }, {\n key: \"targetNodeIsListWithItems\",\n value: function targetNodeIsListWithItems() {\n return this.targetNodeIsIdentified() && this.targetedNode instanceof this.listInterface && !!this.targetedNode.querySelectorAll('li').length;\n }\n }, {\n key: \"canBeDropped\",\n value: function canBeDropped() {\n return this.targetNodeIsIdentified() && !this.targetNodeIsBeingDragged() && !this.targetNodeIsListWithItems() && !this.areNested(this.targetedNode, this.draggedNode);\n }\n }, {\n key: \"cleanupPlaceholderLists\",\n value: function cleanupPlaceholderLists() {\n var _this$getSortableList2,\n _this4 = this;\n\n var tag = this.getListTagName();\n var listsArray = ((_this$getSortableList2 = this.getSortableList()) === null || _this$getSortableList2 === void 0 ? void 0 : _this$getSortableList2.querySelectorAll(tag)) || [];\n Array.from(listsArray).forEach(function (ul) {\n if (!ul.querySelectorAll('li').length) {\n ul.remove();\n } else if (ul.classList.contains(_this4.classNames.placeholder)) {\n ul.classList.remove(_this4.classNames.placeholder);\n ul.style.minHeight = 'auto';\n ul.dataset.id = ul.parentNode.dataset.id;\n }\n });\n }\n }, {\n key: \"initPlaceholderList\",\n value: function initPlaceholderList() {\n var _this$placeholderList;\n\n this.placeholderList = document.createElement(this.getListTagName());\n\n (_this$placeholderList = this.placeholderList.classList).add.apply(_this$placeholderList, [this.classNames.placeholder].concat(_toConsumableArray(this.listClassNames)));\n }\n }, {\n key: \"getPlaceholderList\",\n value: function getPlaceholderList() {\n this.placeholderInUse = this.placeholderList.cloneNode(true);\n return this.placeholderInUse;\n }\n }]);\n\n return NestedSort;\n }();\n\n return NestedSort;\n\n}));\n","/*\r\n\timport { modifyBoardPackage } from '@/services/BoardMeetings/BoardPackage/Put';\r\n\r\n const { phonePackage } = await modifyBoardPackage ({\r\n json: {\r\n\t\t\thoaID,\r\n \r\n phoneNumber,\r\n \r\n \"meetingDate\": \"2022-09-20T06:45:23.271Z\",\r\n \"financialMonth\": \"2022-09-20T06:45:23.271Z\",\r\n \r\n //\r\n // \"Executive\"\r\n // \"Regular\"\r\n //\r\n \"type\": \"string\",\r\n \r\n \"agendaJson\": \"{}\",\r\n \r\n ///////\r\n // optional\r\n //\r\n // \"physicalMeetingID\": 6,\r\n // \"virtualMeetingID\": 4,\r\n // \"phoneMeetingID\": 4,\r\n }\r\n });\r\n*/\r\n\r\n/*\r\n exception.fields {\r\n phoneNumber: [ '' ], \r\n }\r\n*/\r\n\r\nimport kms from '@/services/kms'\r\nimport { notifyError } from '@/services/notify'\r\n\r\nexport async function modifyBoardPackage({ json }) {\r\n let exception = ''\r\n\r\n try {\r\n const result = await kms.put(`/BoardMeetings/BoardPackage`, json)\r\n\r\n const message = 'The board meeting was saved successfully.'\r\n\r\n return {\r\n successful: true,\r\n message,\r\n exception: null,\r\n phoneMeeting: result\r\n }\r\n } catch (_exception) {\r\n exception = _exception\r\n }\r\n\r\n let message = 'The board meeting could not be saved.'\r\n notifyError(message)\r\n\r\n return {\r\n successful: false,\r\n message,\r\n exception,\r\n phoneMeeting: null\r\n }\r\n}\r\n"],"sourceRoot":""}