/***
 *    db       .d88b.   d888b   d888b  d888888b d8b   db  d888b
 *    88      .8P  Y8. 88' Y8b 88' Y8b   `88'   888o  88 88' Y8b
 *    88      88    88 88      88         88    88V8o 88 88
 *    88      88    88 88  ooo 88  ooo    88    88 V8o88 88  ooo
 *    88booo. `8b  d8' 88. ~8~ 88. ~8~   .88.   88  V888 88. ~8~
 *    Y88888P  `Y88P'   Y888P   Y888P  Y888888P VP   V8P  Y888P
 *

import { getHelpfullErrorV2 } from '@mikezimm/npmfunctions/dist/Logging/ErrorHandler';

 */
/***
 *     .d8b.  d8888b. d8888b.  .d8b.  db    db .d8888.
 *    d8' `8b 88  `8D 88  `8D d8' `8b `8b  d8' 88'  YP
 *    88ooo88 88oobY' 88oobY' 88ooo88  `8bd8'  `8bo.
 *    88~~~88 88`8b   88`8b   88~~~88    88      `Y8b.
 *    88   88 88 `88. 88 `88. 88   88    88    db   8D
 *    YP   YP 88   YD 88   YD YP   YP    YP    `8888Y'
 *
 *
//Updated these imports 0200-01-11.

//Sorting
import { sortStringArray, sortObjectArrayByStringKey, sortNumberArray, sortObjectArrayByNumberKey, sortKeysByOtherKey
} from '@mikezimm/npmfunctions/dist/Services/Arrays/sorting';

//Checks
import { doesObjectExistInArrayInt, doesObjectExistInArray, compareArrays, getKeySummary, getKeyChanges
} from '@mikezimm/npmfunctions/dist/Services/Arrays/checks';

//Services
import { stringifyKeyValue, getMaxPropOfKeyInObjectArray, getNextElementInArray } from '@mikezimm/npmfunctions/dist/Services/Arrays/services';

//Compare
import { compareFlatObjects, getListOfKeysToCompare, buildEmptyCompareResults } from '@mikezimm/npmfunctions/dist/Services/Arrays/compare';

//Grouping
import { groupArrayItemsByField, IRailAnalytics } from '@mikezimm/npmfunctions/dist/Services/Arrays/grouping';


//Manipulation
import { expandArray, spliceCopyArray, addItemToArrayIfItDoesNotExist, convertNumberArrayToRelativePercents,
  removeItemFromArrayOnce, removeItemFromArrayAll, updateNextOpenIndex
  } from '@mikezimm/npmfunctions/dist/Services/Arrays/manipulation';

 */
/***
 *    .d8888. d888888b d8888b. d888888b d8b   db  d888b  .d8888.
 *    88'  YP `~~88~~' 88  `8D   `88'   888o  88 88' Y8b 88'  YP
 *    `8bo.      88    88oobY'    88    88V8o 88 88      `8bo.
 *      `Y8b.    88    88`8b      88    88 V8o88 88  ooo   `Y8b.
 *    db   8D    88    88 `88.   .88.   88  V888 88. ~8~ db   8D
 *    `8888Y'    YP    88   YD Y888888P VP   V8P  Y888P  `8888Y'
 *
 *

import { cleanSPListURL, cleanURL, encodeDecodeString, } from '@mikezimm/npmfunctions/dist/Services/Strings/urlServices';

import { makeid, isGuidgetStringArrayFromString, cleanEmptyElementsFromString } from '@mikezimm/npmfunctions/dist/Services/Strings/stringServices';

import { camelToSentanceCase, camelize, randomizeCase, upperFirstLetter, lowerFirstLetter } from '@mikezimm/npmfunctions/dist/Services/Strings/stringCase';

import { buildMLineDiv, getArrayOfXMLElements } from '@mikezimm/npmfunctions/dist/Services/Strings/formatting';

*/
/***
 *    d8888b.  .d8b.  d8b   db d8888b.  .d88b.  .88b  d88.
 *    88  `8D d8' `8b 888o  88 88  `8D .8P  Y8. 88'YbdP`88
 *    88oobY' 88ooo88 88V8o 88 88   88 88    88 88  88  88
 *    88`8b   88~~~88 88 V8o88 88   88 88    88 88  88  88
 *    88 `88. 88   88 88  V888 88  .8D `8b  d8' 88  88  88
 *    88   YD YP   YP VP   V8P Y8888D'  `Y88P'  YP  YP  YP
 *
 *

import { getRandomInt, getRandomChance, getRandomFromArray, randomDate, generateVals, generateTitles }
    from '@mikezimm/npmfunctions/dist/Services/randomServices';

 */
/***
 *    db    db .d8888. d88888b d8888b.
 *    88    88 88'  YP 88'     88  `8D
 *    88    88 `8bo.   88ooooo 88oobY'
 *    88    88   `Y8b. 88~~~~~ 88`8b
 *    88b  d88 db   8D 88.     88 `88.
 *    ~Y8888P' `8888Y' Y88888P 88   YD
 *
 *

import { getPrincipalTypeString, ensureUserInfo, checkIfUserExistsInArray, getEmailFromLoginName, checkForLoginName
    ensureUserHere, ensureTheseUsers, getUserPermissions, getSiteAdmins,  } from '@mikezimm/npmfunctions/dist/Users/userServices';

import { IUser } from '@mikezimm/npmfunctions/dist/Users/IUserInterfaces';

 */
/***
 *     .o88b.  .d8b.  d8888b. d8888b.  .d88b.  d888888b
 *    d8P  Y8 d8' `8b 88  `8D 88  `8D .8P  Y8. `~~88~~'
 *    8P      88ooo88 88oobY' 88oobY' 88    88    88
 *    8b      88~~~88 88`8b   88`8b   88    88    88
 *    Y8b  d8 88   88 88 `88. 88 `88. `8b  d8'    88
 *     `Y88P' YP   YP 88   YD 88   YD  `Y88P'     YP
 *
 *

import { IFoamBorder , FoamBorders, FoamBorderSettings, FoamBordersRound, FoamBordersNone, FoamBordersStraight }
    from '@mikezimm/npmfunctions/dist/Carrot/IFoamTreeDefaults';

import { IFoamAnimation , FoamAnimations, FoamAnimationSettings, FoamAnimateGentle, FoamAnimateFadeIn, FoamAnimateFlyIn }
    from '@mikezimm/npmfunctions/dist/Carrot/IFoamTreeDefaults';

import { IFoamColor , FoamColors, FoamColorSettings, FoamColorLight, FoamColorDark, FoamColorWarm }
    from '@mikezimm/npmfunctions/dist/Carrot/IFoamTreeDefaults';

 */
/***
 *     .o88b. .d8888. .d8888.       .o88b. db   db  .d8b.  d8888b. d888888b .d8888.
 *    d8P  Y8 88'  YP 88'  YP      d8P  Y8 88   88 d8' `8b 88  `8D `~~88~~' 88'  YP
 *    8P      `8bo.   `8bo.        8P      88ooo88 88ooo88 88oobY'    88    `8bo.
 *    8b        `Y8b.   `Y8b.      8b      88~~~88 88~~~88 88`8b      88      `Y8b.
 *    Y8b  d8 db   8D db   8D      Y8b  d8 88   88 88   88 88 `88.    88    db   8D
 *     `Y88P' `8888Y' `8888Y'       `Y88P' YP   YP YP   YP 88   YD    YP    `8888Y'
 *
 *

import { ILabelColor, ICSSChartTypes, CSSChartTypes, ISeriesSort, ICSSChartSeries, IChartSeries, ICharNote, }
    from '@mikezimm/npmfunctions/dist/CSSCharts/ICSSCharts';

*/
/***
 *    db      d888888b .d8888. d888888b .d8888.
 *    88        `88'   88'  YP `~~88~~' 88'  YP
 *    88         88    `8bo.      88    `8bo.
 *    88         88      `Y8b.    88      `Y8b.
 *    88booo.   .88.   db   8D    88    db   8D
 *    Y88888P Y888888P `8888Y'    YP    `8888Y'
 *
 *

import { SystemLists, TempSysLists, TempContLists, entityMaps, EntityMapsNames }
    from '@mikezimm/npmfunctions/dist/Lists/Constants';
 
import { IPickedWebBasic, IPickedList, IPickedView, IZBasicItemInfo, }
    from '@mikezimm/npmfunctions/dist/Lists/IListInterfaces';
 
 */
/***
 *     d888b  d88888b d888888b      d88888b db    db d8b   db  .o88b. d888888b d888888b  .d88b.  d8b   db .d8888.
 *    88' Y8b 88'     `~~88~~'      88'     88    88 888o  88 d8P  Y8 `~~88~~'   `88'   .8P  Y8. 888o  88 88'  YP
 *    88      88ooooo    88         88ooo   88    88 88V8o 88 8P         88       88    88    88 88V8o 88 `8bo.
 *    88  ooo 88~~~~~    88         88~~~   88    88 88 V8o88 8b         88       88    88    88 88 V8o88   `Y8b.
 *    88. ~8~ 88.        88         88      88b  d88 88  V888 Y8b  d8    88      .88.   `8b  d8' 88  V888 db   8D
 *     Y888P  Y88888P    YP         YP      ~Y8888P' VP   V8P  `Y88P'    YP    Y888888P  `Y88P'  VP   V8P `8888Y'
 *
                                                                                                           
import { getKeysLike, getSelectColumns, getExpandColumns, updateBasicListColumns
    IPerformanceSettings, IZBasicList, createFetchList,
    } from '@mikezimm/npmfunctions/dist/Lists/getFunctions';

 */
/***
 *    d8888b. d888888b db    db  .d88b.  d888888b .d8888.
 *    88  `8D   `88'   88    88 .8P  Y8. `~~88~~' 88'  YP
 *    88oodD'    88    Y8    8P 88    88    88    `8bo.
 *    88~~~      88    `8b  d8' 88    88    88      `Y8b.
 *    88        .88.    `8bd8'  `8b  d8'    88    db   8D
 *    88      Y888888P    YP     `Y88P'     YP    `8888Y'
 *
 *

import { IMyPivCat, IPivot, IMyPivots, ILink } from '@mikezimm/npmfunctions/dist/Pivots/IzPivots';

 */
/***
 *     .d88b.  db    db d888888b  .o88b. db   dD       .o88b.  .d88b.  .88b  d88. .88b  d88.  .d8b.  d8b   db d8888b. .d8888.
 *    .8P  Y8. 88    88   `88'   d8P  Y8 88 ,8P'      d8P  Y8 .8P  Y8. 88'YbdP`88 88'YbdP`88 d8' `8b 888o  88 88  `8D 88'  YP
 *    88    88 88    88    88    8P      88,8P        8P      88    88 88  88  88 88  88  88 88ooo88 88V8o 88 88   88 `8bo.
 *    88    88 88    88    88    8b      88`8b        8b      88    88 88  88  88 88  88  88 88~~~88 88 V8o88 88   88   `Y8b.
 *    `8P  d8' 88b  d88   .88.   Y8b  d8 88 `88.      Y8b  d8 `8b  d8' 88  88  88 88  88  88 88   88 88  V888 88  .8D db   8D
 *     `Y88'Y8 ~Y8888P' Y888888P  `Y88P' YP   YD       `Y88P'  `Y88P'  YP  YP  YP YP  YP  YP YP   YP VP   V8P Y8888D' `8888Y'
 *
 *

import { QuickCommandsTMT, IQuickCommands, IQuickButton, }
    from '@mikezimm/npmfunctions/dist/QuickCommands/IQuickCommands';

 */
/***
 *    d8888b. d88888b d88888b d888888b d8b   db d88888b d8888b. .d8888.
 *    88  `8D 88'     88'       `88'   888o  88 88'     88  `8D 88'  YP
 *    88oobY' 88ooooo 88ooo      88    88V8o 88 88ooooo 88oobY' `8bo.
 *    88`8b   88~~~~~ 88~~~      88    88 V8o88 88~~~~~ 88`8b     `Y8b.
 *    88 `88. 88.     88        .88.   88  V888 88.     88 `88. db   8D
 *    88   YD Y88888P YP      Y888888P VP   V8P Y88888P 88   YD `8888Y'
 *
 *


import { IRefinerLayer, IRefiners, IItemRefiners, IRefinerStats, RefineRuleValues, ICSSChartTypes
    IRefinerRules, IRefinerStatType, IRefinerStat } from '@mikezimm/npmfunctions/dist/Refiners/IRefiners';

import { buildKeyText, refinerRuleItems } from '@mikezimm/npmfunctions/dist/Refiners/IRefiners';

 */
/***
 *    .88b  d88. db    db      d888888b d8b   db d888888b d88888b d8888b. d88888b  .d8b.   .o88b. d88888b .d8888.
 *    88'YbdP`88 `8b  d8'        `88'   888o  88 `~~88~~' 88'     88  `8D 88'     d8' `8b d8P  Y8 88'     88'  YP
 *    88  88  88  `8bd8'          88    88V8o 88    88    88ooooo 88oobY' 88ooo   88ooo88 8P      88ooooo `8bo.
 *    88  88  88    88            88    88 V8o88    88    88~~~~~ 88`8b   88~~~   88~~~88 8b      88~~~~~   `Y8b.
 *    88  88  88    88           .88.   88  V888    88    88.     88 `88. 88      88   88 Y8b  d8 88.     db   8D
 *    YP  YP  YP    YP         Y888888P VP   V8P    YP    Y88888P 88   YD YP      YP   YP  `Y88P' Y88888P `8888Y'
 *
 *

import { IMyProgress, IMyFonts, IMyIcons } from '@mikezimm/npmfunctions/dist/ReusableInterfaces/IMyInterfaces';

 */
/***
 *    d888888b db    db d8888b. d88888b      d888888b d8b   db d888888b d88888b d8888b. d88888b  .d8b.   .o88b. d88888b .d8888.
 *    `~~88~~' `8b  d8' 88  `8D 88'            `88'   888o  88 `~~88~~' 88'     88  `8D 88'     d8' `8b d8P  Y8 88'     88'  YP
 *       88     `8bd8'  88oodD' 88ooooo         88    88V8o 88    88    88ooooo 88oobY' 88ooo   88ooo88 8P      88ooooo `8bo.
 *       88       88    88~~~   88~~~~~         88    88 V8o88    88    88~~~~~ 88`8b   88~~~   88~~~88 8b      88~~~~~   `Y8b.
 *       88       88    88      88.            .88.   88  V888    88    88.     88 `88. 88      88   88 Y8b  d8 88.     db   8D
 *       YP       YP    88      Y88888P      Y888888P VP   V8P    YP    Y88888P 88   YD YP      YP   YP  `Y88P' Y88888P `8888Y'
 *
 *
 
import { ITypeStrings, getDetailValueType } from '@mikezimm/npmfunctions/dist/Services/typeServices';

 */
/**
 * TIME
 *

  import { IDeltaDaysArray, ITheTime } from './Interfaces';

  import { getTimeDelta, getDayTimeToMinutes, getTimeSpan, getBestTimeDelta, getAge, createDeltaDateArrays } from '@mikezimm/npmfunctions/dist/Services/Time/deltas';
  import { isStringValidDate, zuluRegex, yyyymmRegex, yyyymmddRegex, yyyymmddhhmmssRegex, mmddyyyyRegex, isoRegex  } from '@mikezimm/npmfunctions/dist/Services/Time/checks';
  import { holidays, msPerDay, msPerHr, msPerMin, msPerMo, msPerQ, msPerWk, msPerYr,  } from '@mikezimm/npmfunctions/dist/Services/Time/constants';
  import { weekday3 } from '@mikezimm/npmfunctions/dist/Services/Time/dayLabels';
  
  import { IDeltaDaysArray, ITheTime } from '@mikezimm/npmfunctions/dist/Services/Time/Interfaces';
  import { getQuarter, getYearMonthLabel, getLocalMonths,  } from '@mikezimm/npmfunctions/dist/Services/Time/getLabels';
  import { monthStr, monthStr3 } from '@mikezimm/npmfunctions/dist/Services/Time/monthLabels';
  
  import { getGreeting, getNicks } from '@mikezimm/npmfunctions/dist/Services/Time/personalize';
  import { makeSmallTimeObject,  } from '@mikezimm/npmfunctions/dist/Services/Time/smallTimeOjbect';
  import { makeTheTimeObject } from '@mikezimm/npmfunctions/dist/Services/Time/timeOjbect';
  import { getDayOfWeek, ISO8601_week_no, getYearWeekLabel, getOffSetDayOfWeek,  } from '@mikezimm/npmfunctions/dist/Services/Time/weeks';
  import { holidays, msPerDay, msPerHr, msPerMin, msPerMo, msPerQ, msPerWk, msPerYr, } from './constants';
  import { weekday3 } from './dayLabels';
  import { monthStr, monthStr3 } from './monthLabels';


 */ 
