\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t${filter.name} (The filter does not exist for: \\\"${selectedCategory.name}\\\")\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n\\r\\n\";","import { ObjectListColumnManager } from 'app/services/object-list/object-list-column-manager';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { DnDService } from 'app/services/d-n-d-service';\r\nimport { ObjectFilter, UIValueFilter, ValueFilter } from 'app/models/object-filter';\r\n@autoinject\r\nexport class FilterSelectorSimple {\r\n public filters: ObjectListColumnManager | undefined;\r\n\r\n //public available: ObjectFilter[];\r\n public available: UIValueFilter[] = [];\r\n \r\n public searchFilter: string = \"\";\r\n\t//public dragFilter: ObjectFilter; // This is a hack used to change the dragged html at the time it is copied to the mouse\r\n\tpublic dragFilter: UIValueFilter | undefined; // This is a hack used to change the dragged html at the time it is copied to the mouse\r\n\t\r\n\tconstructor(protected dialog: DialogController, private dndService: DnDService) {\r\n console.log('ctor fss');\r\n\t}\r\n\t\r\n\tasync activate(model: ObjectListColumnManager) {\r\n this.filters = model;\r\n\t\tthis.setFilterList();\r\n\t}\r\n\r\n attached() {\r\n let draggedItem: UIValueFilter | undefined; //ObjectFilter;\r\n this.dndService.attachListInteraction(\"selected-filters-list\", {\r\n\t\t\tanimation: 150,\r\n\t\t\tforceFallback: true,\r\n group: \"filter-selector\",\r\n handle: \".drag-handle\",\r\n draggable: \".draggable-item\",\r\n dragClass: \"draggable-item--dragged\",\r\n\t\t\tchosenClass: \"draggable-item--chosen\",\r\n ghostClass: \"draggable-item--ghost\",\r\n onChoose: (event: any) => { \r\n draggedItem = this.filters?.selected[event.oldDraggableIndex];\r\n this.dragFilter = draggedItem;\r\n },\r\n onUnchoose: (event: any) => this.dragFilter = undefined,\r\n onClone: (event: any) => this.dragFilter = undefined,\r\n onMove: (event: any) => this.dragFilter = event.to.id == \"available-filters-list\" ? draggedItem : undefined,\r\n onEnd: (event: any) => { \r\n\t\t\t\tconsole.log('fss.onEnd splice filters.selected');\r\n if (event.to.id == \"available-filters-list\") {\r\n\t\t\t\t\tlet item: UIValueFilter | undefined = this.filters?.selected[event.oldDraggableIndex];\r\n if (item) {\r\n this.filters?.selected.splice(event.oldDraggableIndex, 1); // remove from old index in old list\r\n this.available.splice(event.newDraggableIndex, 0, item); // add to new index in new list\r\n }\r\n } else {\r\n let item: UIValueFilter | undefined = this.filters?.selected[event.oldDraggableIndex];\r\n if (item) {\r\n this.filters?.selected.splice(event.oldDraggableIndex, 1); // remove from old index\r\n this.filters?.selected.splice(event.newDraggableIndex, 0, item); // add to new index\r\n }\r\n }\r\n this.dragFilter = undefined;\r\n draggedItem = undefined;\r\n }\r\n });\r\n }\r\n \r\n detached() {\r\n this.dndService.detachListInteraction(\"selected-filters-list\");\r\n\t}\r\n\t\r\n\tpublic select(filter: UIValueFilter) {\r\n let index = this.available.indexOf(filter);\r\n\t\tif (index >= 0) {\r\n\t\t\t\r\n this.available.splice(index, 1);\r\n\t\t\tthis.filters?.selected.push(filter); console.log('fss.select push filters.selected');\r\n }\r\n }\r\n\r\n public unSelect(filter: UIValueFilter) {\r\n let index: number | undefined = this.filters?.selected.indexOf(filter);\r\n if (index && index >= 0) {\r\n\t\t\t\r\n\t\t\tthis.filters?.selected.splice(index, 1); console.log('fss.unselect splice filters.selected');\r\n this.available.push(filter);\r\n }\r\n }\r\n\r\n private async setFilterList(): Promise{\r\n\t\tthis.searchFilter = \"\";\r\n let availableFilter: ValueFilter[] | undefined = await this.filters?.getAvailableFiltersByAppliedFilters('fss');\r\n if (availableFilter) {\r\n let valueFilters:ValueFilter[] = availableFilter; \r\n this.available = ObjectListColumnManager.valueFilter2UIFilter(valueFilters);\r\n }\r\n\t}\r\n\t\r\n public async ok() : Promise {\r\n this.dialog.ok();\r\n\t}\r\n\t\r\n public cancel() {\r\n this.dialog.cancel();\r\n }\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","FilterSelectorSimple","constructor","dialog","dndService","available","searchFilter","console","log","activate","model","this","filters","setFilterList","attached","draggedItem","attachListInteraction","animation","forceFallback","group","handle","draggable","dragClass","chosenClass","ghostClass","onChoose","event","selected","oldDraggableIndex","dragFilter","onUnchoose","undefined","onClone","onMove","to","onEnd","item","splice","newDraggableIndex","detached","detachListInteraction","select","filter","index","indexOf","unSelect","availableFilter","getAvailableFiltersByAppliedFilters","valueFilters","valueFilter2UIFilter","ok","cancel","autoinject","DialogController"],"sourceRoot":""}