diff --git a/src/AppMenu.vue b/src/AppMenu.vue index 431c0acec..be702fa4e 100644 --- a/src/AppMenu.vue +++ b/src/AppMenu.vue @@ -58,6 +58,7 @@ ● DataTable ● DataView ● FullCalendar + ● OrderList ● Paginator diff --git a/src/components/orderlist/OrderList.d.ts b/src/components/orderlist/OrderList.d.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/components/orderlist/OrderList.vue b/src/components/orderlist/OrderList.vue new file mode 100644 index 000000000..158bc7fc0 --- /dev/null +++ b/src/components/orderlist/OrderList.vue @@ -0,0 +1,411 @@ + + + + + diff --git a/src/components/utils/ObjectUtils.js b/src/components/utils/ObjectUtils.js index 6e37c820c..9ef9b6286 100644 --- a/src/components/utils/ObjectUtils.js +++ b/src/components/utils/ObjectUtils.js @@ -130,4 +130,25 @@ export default class ObjectUtils { return false; } + + static insertIntoOrderedArray(item, index, arr, sourceArr) { + if (arr.length > 0) { + let injected = false; + for (let i = 0; i < arr.length; i++) { + let currentItemIndex = this.findIndexInList(arr[i], sourceArr); + if (currentItemIndex > index) { + arr.splice(i, 0, item); + injected = true; + break; + } + } + + if (!injected) { + arr.push(item); + } + } + else { + arr.push(item); + } + } } \ No newline at end of file diff --git a/src/main.js b/src/main.js index 6d887cc1e..8c436c9ea 100644 --- a/src/main.js +++ b/src/main.js @@ -26,6 +26,7 @@ import Listbox from './components/listbox/Listbox'; import Menu from './components/menu/Menu'; import Message from './components/message/Message'; import MultiSelect from './components/multiselect/MultiSelect'; +import OrderList from './components/orderlist/OrderList'; import OverlayPanel from './components/overlaypanel/OverlayPanel'; import Paginator from './components/paginator/Paginator'; import Panel from './components/panel/Panel'; @@ -87,6 +88,7 @@ Vue.component('Listbox', Listbox); Vue.component('Menu', Menu); Vue.component('Message', Message); Vue.component('MultiSelect', MultiSelect); +Vue.component('OrderList', OrderList); Vue.component('OverlayPanel', OverlayPanel); Vue.component('Paginator', Paginator); Vue.component('Panel', Panel); diff --git a/src/router.js b/src/router.js index 157559217..9488b5133 100644 --- a/src/router.js +++ b/src/router.js @@ -240,6 +240,11 @@ export default new Router({ path: '/multiselect', name: 'multiselect', component: () => import('./views/multiselect/MultiSelectDemo.vue') + }, + { + path: '/orderlist', + name: 'orderlist', + component: () => import('./views/orderlist/OrderListDemo.vue') }, { path: '/overlaypanel', diff --git a/src/views/orderlist/OrderListDemo.vue b/src/views/orderlist/OrderListDemo.vue new file mode 100644 index 000000000..0eb4fba66 --- /dev/null +++ b/src/views/orderlist/OrderListDemo.vue @@ -0,0 +1,48 @@ + + \ No newline at end of file diff --git a/src/views/orderlist/OrderListDoc.vue b/src/views/orderlist/OrderListDoc.vue new file mode 100644 index 000000000..14100199b --- /dev/null +++ b/src/views/orderlist/OrderListDoc.vue @@ -0,0 +1,194 @@ + \ No newline at end of file