UNPKG

province-city-area

Version:
1 lines 3.44 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.orderBy=exports.getAreas=exports.getCitys=exports.getProvinces=undefined;var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var _keyValueEqual=require("key-value-equal");var _data=require("./data");function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i]}return arr2}else{return Array.from(arr)}}var _isNonemptyArray=function _isNonemptyArray(collection){return Array.isArray(collection)&&collection.length>0};var _arrayGroup=function _arrayGroup(collection,fields){if(_isNonemptyArray(collection)&&_isNonemptyArray(fields)){var map=new Map;var key=void 0;collection.forEach(function(item){key="";fields.forEach(function(field){key+=item.hasOwnProperty(field)?item[field]:""});if(map.has(key)){map.get(key).push(item)}else{map.set(key,[item])}});return[].concat(_toConsumableArray(map.values()))}return[]};var _singleOrderBy=function _singleOrderBy(collection,field,order){return collection.slice().sort(function(_ref,_ref2){var a=_ref[field];var b=_ref2[field];return order==="desc"||order==="DESC"?typeof a==="string"?b.localeCompare(a):b-a:typeof a==="string"?a.localeCompare(b):a-b})};var _orderBy=function _orderBy(collection,sort){if(_isNonemptyArray(collection)&&sort&&(typeof sort==="undefined"?"undefined":_typeof(sort))==="object"&&Object.keys(sort).length>0){var sortFields=Object.keys(sort);var result=_singleOrderBy(collection,sortFields[0],sort[sortFields[0]]);var groupFields=[sortFields.shift()];if(sortFields.length>0){var groupReslut=void 0;sortFields.forEach(function(sortField){groupReslut=_arrayGroup(result,groupFields);result.length=0;groupReslut.forEach(function(group){result=result.concat(_singleOrderBy(group,sortField,sort[sortField]))});groupFields.push(sortField)})}return result}return Array.isArray(collection)?collection.slice():[]};var _handleItemField=function _handleItemField(collection,field){field=Array.isArray(field)?(0,_keyValueEqual.kve)(field):field;if(_isNonemptyArray(collection)&&field&&(typeof field==="undefined"?"undefined":_typeof(field))==="object"&&Object.keys(field).length>0){var newCollection=[],newItem=void 0;collection.forEach(function(item){newItem={};Object.keys(field).forEach(function(key){if(item.hasOwnProperty(key)&&item[key])newItem[item[key]]=item[key]});newCollection.push(Object.keys(newItem).length>0?newItem:item)});return newCollection}return collection};var _getCityArea=function _getCityArea(type,pid,field,sort){var result=[];pid=typeof pid==="number"?pid.toString():pid;if(pid&&typeof pid==="string"){switch(type){case 1:result=_data.city[pid];break;case 2:result=_data.area[pid];break;default:result=[]}result=_orderBy(result,sort);return _handleItemField(result,field)}return result};var getProvinces=exports.getProvinces=function getProvinces(field,sort){var result=_orderBy(_data.province,sort);return _handleItemField(result,field)};var getCitys=exports.getCitys=function getCitys(pid,field,sort){return _getCityArea(1,pid,field,sort)};var getAreas=exports.getAreas=function getAreas(pid,field,sort){return _getCityArea(2,pid,field,sort)};var orderBy=exports.orderBy=function orderBy(collection,sort){return _orderBy(collection,sort)};