--- /dev/null
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2019 IBM Intellectual propertyNameerty. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { Pipe, PipeTransform } from '@angular/core';
+
+@Pipe({
+ name: 'sort',
+ pure:false,
+})
+export class SortPipe implements PipeTransform {
+
+ transform(arrayData: any[], direcion: string, propertyName?: string): any {
+ if (!arrayData) {
+ return [];
+ }
+ if (!direcion || !propertyName) {
+ return arrayData
+ }
+ if (arrayData.length > 0) {
+ const _direction = direcion === 'asc' ? -1 : 1,
+ isArray = Array.isArray(arrayData),
+ arrayDataType = typeof arrayData[0],
+ flag = isArray && arrayDataType === 'object' ? true : isArray && arrayDataType !== 'object' ? false : true;
+ arrayData.sort((a, b) => {
+ a = flag ? a[propertyName] : a;
+ b = flag ? b[propertyName] : b;
+ if (typeof a === 'string') {
+ return a.toLowerCase() > b.toLowerCase() ? -1 * _direction : 1 * _direction;
+ } else if (typeof a === 'number') {
+ return a - b > 0 ? -1 * _direction : 1 * _direction;
+ }
+ });
+ }
+ return arrayData;
+ }
+}
\ No newline at end of file
import { ApiService } from 'src/app/common/core/services/api.service';
import { IMetaData } from 'src/app/common/core/store/models/metadata.model';
import { EditorService } from './editor.service';
+import { SortPipe } from '../../../../common/shared/pipes/sort.pipe';
interface Node {
name: string;
newFileNode.data = '';
this.filesData.push(newFileNode);
}
+ this.filesData = new SortPipe().transform(this.filesData, 'asc', 'name');
this.arrangeTreeData(this.filesData);
}
}
if (this.validfile) {
this.fetchTOSACAMetadata();
+ this.paths = new SortPipe().transform(this.paths, 'asc', 'name');
this.filesData = this.paths;
+ this.paths = new SortPipe().transform(this.paths, 'asc', 'name');
this.tree = this.arrangeTreeData(this.paths);
} else {
alert('Please update proper file with TOSCA metadata');
i = i - 1;
}
}
+ this.filesData = new SortPipe().transform(this.filesData, 'asc', 'name');
this.arrangeTreeData(this.filesData);
}
import { IAppState } from '../../../../common/core/store/state/app.state';
import { LoadBlueprintSuccess, SET_BLUEPRINT_STATE, SetBlueprintState } from '../../../../common/core/store/actions/blueprint.action';
import { json } from 'd3';
+import { SortPipe } from '../../../../common/shared/pipes/sort.pipe';
@Component({
selector: 'app-search-template',
if(this.validfile) {
this.fetchTOSACAMetadata();
+ this.paths = new SortPipe().transform(this.paths, 'asc', 'name');
this.tree = this.arrangeTreeData(this.paths);
} else {
alert('Please update proper file with TOSCA metadata');