@sellout/utils 0.0.58 → 0.0.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.dist/IPStack.js CHANGED
@@ -16,6 +16,7 @@ function gecodeIPAddress(ipAddress) {
16
16
  return __awaiter(this, void 0, void 0, function* () {
17
17
  // Return mock data for load testing
18
18
  if (env_1.LOAD_TEST_ENABLED) {
19
+ console.log('LOAD_TEST_ENABLED=true');
19
20
  return {
20
21
  city: 'Polson',
21
22
  region_code: 'MT',
@@ -1 +1 @@
1
- {"version":3,"file":"IPStack.js","sourceRoot":"","sources":["../src/IPStack.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAkD;AAClD,+BAGe;AAEf,SAAsB,eAAe,CAAC,SAAS;;QAC7C,oCAAoC;QACpC,IAAG,uBAAiB,EAAE;YACpB,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,OAAO;gBACZ,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,QAAQ;aACpB,CAAC;SACH;QAED,MAAM,GAAG,GAAG,0BAA0B,SAAS,eAAe,sBAAgB,EAAE,CAAC;QACjF,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;CAAA;AAjBD,0CAiBC"}
1
+ {"version":3,"file":"IPStack.js","sourceRoot":"","sources":["../src/IPStack.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAkD;AAClD,+BAGe;AAEf,SAAsB,eAAe,CAAC,SAAS;;QAC7C,oCAAoC;QACpC,IAAG,uBAAiB,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,OAAO;gBACZ,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,QAAQ;aACpB,CAAC;SACH;QAED,MAAM,GAAG,GAAG,0BAA0B,SAAS,eAAe,sBAAgB,EAAE,CAAC;QACjF,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;CAAA;AAlBD,0CAkBC"}
@@ -0,0 +1 @@
1
+ export declare function makeCache(items: any[], key: string, start: any): any;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeCache = void 0;
4
+ function makeCache(items, key, start) {
5
+ return items.reduce((cur, item) => {
6
+ cur[item[key]] = item;
7
+ return cur;
8
+ }, Object.assign({}, start));
9
+ }
10
+ exports.makeCache = makeCache;
11
+ //# sourceMappingURL=ReduxUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReduxUtil.js","sourceRoot":"","sources":["../src/ReduxUtil.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAC,KAAY,EAAE,GAAW,EAAE,KAAU;IAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,OAAO,GAAG,CAAC;IACZ,CAAC,oBAAM,KAAK,EAAE,CAAC;AACjB,CAAC;AALF,8BAKE"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import * as url from 'url';
3
+ export declare function parse(inputUrl: string): url.UrlWithParsedQuery;
4
+ export declare function setQueryString(paramObj: any, replaceState?: boolean, clearExisting?: boolean): string;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setQueryString = exports.parse = void 0;
4
+ const url = require("url");
5
+ function parse(inputUrl) {
6
+ return url.parse(inputUrl, true);
7
+ }
8
+ exports.parse = parse;
9
+ function setQueryString(paramObj, replaceState = false, clearExisting = false) {
10
+ const { query } = url.parse(window.location.href, true);
11
+ let newParams = Object.assign(Object.assign({}, query), paramObj);
12
+ if (clearExisting) {
13
+ newParams = Object.assign({}, paramObj);
14
+ }
15
+ let queryString = Object.keys(newParams)
16
+ .map((key) => {
17
+ return (newParams[key]) ? `${key}=${newParams[key]}` : null;
18
+ })
19
+ .filter(item => !!item)
20
+ .join('&');
21
+ if (queryString)
22
+ queryString = '?' + queryString;
23
+ const newUrl = `${window.location.protocol}//${window.location.host}${window.location.pathname}${queryString}`;
24
+ if (replaceState && window.history.replaceState) {
25
+ window.history.replaceState({ path: newUrl }, '', newUrl);
26
+ }
27
+ else if (window.history.pushState) {
28
+ window.history.pushState({ path: newUrl }, '', newUrl);
29
+ }
30
+ return newUrl;
31
+ }
32
+ exports.setQueryString = setQueryString;
33
+ //# sourceMappingURL=UrlUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlUtil.js","sourceRoot":"","sources":["../src/UrlUtil.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAE3B,SAAgB,KAAK,CAAC,QAAgB;IACpC,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC;AAFD,sBAEC;AAED,SAAgB,cAAc,CAAC,QAAa,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK;IACvF,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAExD,IAAI,SAAS,mCACR,KAAK,GACL,QAAQ,CACZ,CAAC;IAEF,IAAI,aAAa,EAAE;QACjB,SAAS,qBACJ,QAAQ,CACZ,CAAC;KACH;IAED,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SACrC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACtB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,IAAG,WAAW;QAAE,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC;IAEhD,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/G,IAAI,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;QAC/C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;KAC3D;SAAM,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;QACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;KACxD;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA/BD,wCA+BC"}
@@ -0,0 +1 @@
1
+ export declare function input(percentage: any): any;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.input = void 0;
4
+ const lastChar = string => string.toString().charAt(string.length - 1);
5
+ function input(percentage) {
6
+ percentage = percentage.toString().replace(/\s/g, '');
7
+ if (!percentage)
8
+ percentage = 0;
9
+ if (Number.isNaN(percentage))
10
+ return 0;
11
+ if (percentage.toString().length > 1 && percentage.toString().charAt(0) === '0') {
12
+ const value = parseFloat(percentage.substring(1));
13
+ if (Number.isNaN(value))
14
+ return 0;
15
+ return value;
16
+ }
17
+ if (lastChar(percentage) === '.') {
18
+ return percentage;
19
+ }
20
+ return parseFloat(percentage);
21
+ }
22
+ exports.input = input;
23
+ //# sourceMappingURL=percentage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"percentage.js","sourceRoot":"","sources":["../src/percentage.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEvE,SAAgB,KAAK,CAAC,UAAU;IAC9B,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtD,IAAI,CAAC,UAAU;QAAE,UAAU,GAAG,CAAC,CAAC;IAEhC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC/E,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE;QAChC,OAAO,UAAU,CAAC;KACnB;IAED,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAlBD,sBAkBC"}
package/.dist/price.d.ts CHANGED
@@ -1 +1,3 @@
1
- export declare const output: (price: number) => string;
1
+ export declare const input: (price: any) => any;
2
+ export declare const output: (price: any, withFixed?: boolean) => any;
3
+ export declare const format: (price: string) => string;
package/.dist/price.js CHANGED
@@ -1,9 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.output = void 0;
4
- exports.output = (price) => {
5
- price = price / 100;
6
- return price.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
7
- // return `$${price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`;
3
+ exports.format = exports.output = exports.input = void 0;
4
+ // I know this sucks, I'm sorry. You can re-write it, but
5
+ // make sure you test it thoroughly.
6
+ exports.input = (price) => {
7
+ price = price.replace(/[^0-9.]/g, '');
8
+ if (price.indexOf('.') > -1) {
9
+ let [first, second] = price.toString().split('.');
10
+ second = second.replace(/[^0-9]/g, '');
11
+ price = `${first}.${second}`;
12
+ }
13
+ if (price.toString().split('')[price.length - 1] === '.') {
14
+ return price;
15
+ }
16
+ if (price.toString().split('')[price.length - 1] === '0'
17
+ && price.toString().split('')[price.length - 2] === '.') {
18
+ price = parseInt(price);
19
+ }
20
+ if (Number.isNaN(price) || Number.isNaN(price))
21
+ return 0;
22
+ return price * 100;
23
+ };
24
+ exports.output = (price, withFixed = false) => {
25
+ if (price.toString().split('')[price.length - 1] === '.') {
26
+ return price;
27
+ }
28
+ if (withFixed) {
29
+ price /= 100;
30
+ return price.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
31
+ }
32
+ return price / 100;
33
+ };
34
+ exports.format = (price) => {
35
+ const value = parseFloat(price.replace(/,/g, ''))
36
+ .toFixed(2)
37
+ .toString()
38
+ .replace(/\B(?=(\d{3})+(?!\d))/g, ',');
39
+ return parseFloat(value).toFixed(2);
8
40
  };
9
41
  //# sourceMappingURL=price.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"price.js","sourceRoot":"","sources":["../src/price.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE;IAC9C,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;IACpB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAClE,uEAAuE;AACzE,CAAC,CAAC"}
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../src/price.ts"],"names":[],"mappings":";;;AAAA,yDAAyD;AACzD,oCAAoC;AACvB,QAAA,KAAK,GAAG,CAAC,KAAU,EAAE,EAAE;IAClC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEtC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QAC3B,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEvC,KAAK,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;KAC9B;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QACxD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;WAClD,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QAC1D,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;KACzB;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEzD,OAAO,KAAK,GAAG,GAAG,CAAC;AACrB,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG,CAAC,KAAU,EAAE,SAAS,GAAG,KAAK,EAAE,EAAE;IACtD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QACxD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,SAAS,EAAE;QACb,KAAK,IAAI,GAAG,CAAC;QACb,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;KACnE;IAED,OAAO,KAAK,GAAG,GAAG,CAAC;AACrB,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC9C,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,EAAE;SACV,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAEzC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC"}
package/.dist/time.d.ts CHANGED
@@ -15,3 +15,15 @@ export declare const date: (seconds?: number | undefined) => Date;
15
15
  export declare const fromDate: (millis: number | string) => number;
16
16
  export declare const format: (secondsSinceEpoch: any, format?: string, timezone?: string) => string;
17
17
  export declare const formatTimeOfDay: (secondsSinceEpoch: any, timezone?: string | undefined) => string;
18
+ export declare const formattedCountDown: (startTime: number, endTime: number) => string;
19
+ export declare const getStartOfHour: (seconds: number) => number;
20
+ export declare const getStartOfDay: (seconds: number) => number;
21
+ export declare const getStartOfWeek: (seconds: number) => number;
22
+ export declare const getStartOfMonth: (seconds: number) => number;
23
+ export declare const getStartOfYear: (seconds: number) => number;
24
+ export declare const getStartOfCurrentDay: () => number;
25
+ export declare const getStartOfCurrentMonth: () => number;
26
+ export declare const getStartOfCurrentYear: () => number;
27
+ export declare const getEndOfCurrentDay: () => number;
28
+ export declare const getEndOfCurrentMonth: () => number;
29
+ export declare const getEndOfCurrentYear: () => number;
package/.dist/time.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatTimeOfDay = exports.format = exports.fromDate = exports.date = exports.fromStartOfDay = exports.fromNow = exports.now = exports.MILLISECONDS = exports.DAY = exports.HOUR = exports.MINUTE = exports.SECOND = void 0;
3
+ exports.getEndOfCurrentYear = exports.getEndOfCurrentMonth = exports.getEndOfCurrentDay = exports.getStartOfCurrentYear = exports.getStartOfCurrentMonth = exports.getStartOfCurrentDay = exports.getStartOfYear = exports.getStartOfMonth = exports.getStartOfWeek = exports.getStartOfDay = exports.getStartOfHour = exports.formattedCountDown = exports.formatTimeOfDay = exports.format = exports.fromDate = exports.date = exports.fromStartOfDay = exports.fromNow = exports.now = exports.MILLISECONDS = exports.DAY = exports.HOUR = exports.MINUTE = exports.SECOND = void 0;
4
4
  const moment = require("moment-timezone");
5
5
  exports.SECOND = 1;
6
6
  exports.MINUTE = 60 * exports.SECOND;
@@ -45,4 +45,51 @@ exports.format = function (secondsSinceEpoch, format = 'M/DD/YYYY h:mma', timezo
45
45
  exports.formatTimeOfDay = function (secondsSinceEpoch, timezone) {
46
46
  return exports.format(secondsSinceEpoch, 'h:mma', timezone);
47
47
  };
48
+ exports.formattedCountDown = (startTime, endTime) => {
49
+ const totalSeconds = endTime - startTime;
50
+ const days = Math.floor(totalSeconds / 86400);
51
+ const hours = Math.floor((totalSeconds % 86400) / 3600);
52
+ const minutes = Math.floor(((totalSeconds % 86400) % 3600) / 60);
53
+ const seconds = Math.floor((((totalSeconds % 86400) % 3600) % 60));
54
+ if (days === 0)
55
+ return `${hours}h ${minutes}m ${seconds}s`;
56
+ if (hours === 0 && days === 0)
57
+ return `${minutes}m ${seconds}s`;
58
+ if (minutes === 0 && hours === 0 && days === 0)
59
+ return `${seconds}s`;
60
+ return `${days}d ${hours}h ${minutes}m ${seconds}s`;
61
+ };
62
+ exports.getStartOfHour = (seconds) => {
63
+ return moment(seconds * 1000).startOf("hour").unix();
64
+ };
65
+ exports.getStartOfDay = (seconds) => {
66
+ return moment(seconds * 1000).startOf("day").unix();
67
+ };
68
+ exports.getStartOfWeek = (seconds) => {
69
+ return moment(seconds * 1000).startOf("week").unix();
70
+ };
71
+ exports.getStartOfMonth = (seconds) => {
72
+ return moment(seconds * 1000).startOf("month").unix();
73
+ };
74
+ exports.getStartOfYear = (seconds) => {
75
+ return moment(seconds * 1000).startOf("year").unix();
76
+ };
77
+ exports.getStartOfCurrentDay = () => {
78
+ return moment().startOf("day").unix();
79
+ };
80
+ exports.getStartOfCurrentMonth = () => {
81
+ return moment().startOf("month").unix();
82
+ };
83
+ exports.getStartOfCurrentYear = () => {
84
+ return moment().startOf("year").unix();
85
+ };
86
+ exports.getEndOfCurrentDay = () => {
87
+ return moment().endOf("day").unix();
88
+ };
89
+ exports.getEndOfCurrentMonth = () => {
90
+ return moment().endOf("month").unix();
91
+ };
92
+ exports.getEndOfCurrentYear = () => {
93
+ return moment().endOf("year").unix();
94
+ };
48
95
  //# sourceMappingURL=time.js.map
package/.dist/time.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAE7B,QAAA,MAAM,GAAG,CAAC,CAAC;AACX,QAAA,MAAM,GAAG,EAAE,GAAG,cAAM,CAAC;AACrB,QAAA,IAAI,GAAG,EAAE,GAAG,cAAM,CAAC;AACnB,QAAA,GAAG,GAAG,EAAE,GAAG,YAAI,CAAC;AAEhB,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE;IACxB,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE;IACtB,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE;CACpB,CAAC;AAEF,SAAgB,GAAG;IACjB,OAAO,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAFD,kBAEC;AAAA,CAAC;AAEF,SAAgB,OAAO,CAAC,OAAO;IAC7B,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC;AACzB,CAAC;AAFD,0BAEC;AAED,SAAgB,cAAc,CAAC,OAAe;IAC3C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;AAC3C,CAAC;AAHD,wCAGC;AAEY,QAAA,IAAI,GAAG,UAAS,OAAgB;IAC3C,IAAG,CAAC,OAAO;QAAE,OAAO,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAA;AAEY,QAAA,QAAQ,GAAG,UAAS,MAAuB;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACvD,CAAC,CAAA;AAED,4BAA4B;AACf,QAAA,MAAM,GAAG,UAAS,iBAAiB,EAAE,MAAM,GAAG,iBAAiB,EAAE,WAAmB,gBAAgB;IAC/G,IAAG,CAAC,QAAQ;QAAE,QAAQ,GAAG,gBAAgB,CAAC;IAC1C,MAAM,MAAM,GAAG,YAAI,CAAC,iBAAiB,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC,CAAA;AAEY,QAAA,eAAe,GAAG,UAAU,iBAAiB,EAAE,QAAiB;IAC3E,OAAO,cAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAA"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellout/utils",
3
- "version": "0.0.58",
3
+ "version": "0.0.59",
4
4
  "description": "Sellout.io utils",
5
5
  "scripts": {
6
6
  "prepare": "npm run build",
@@ -14,8 +14,8 @@
14
14
  "author": "samheutmaker@gmail.com",
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@sellout/models": "^0.0.58",
18
- "@sellout/service": "^0.0.58",
17
+ "@sellout/models": "^0.0.59",
18
+ "@sellout/service": "^0.0.59",
19
19
  "json2csv": "^5.0.0",
20
20
  "moment-timezone": "^0.5.28",
21
21
  "request": "^2.88.2",
@@ -26,5 +26,5 @@
26
26
  "nodemon": "^2.0.2",
27
27
  "typescript": "^3.8.3"
28
28
  },
29
- "gitHead": "58e1bf5687fb317ee8488daefe132a73ec553d88"
29
+ "gitHead": "71d05737c822920226462d86fc34180d22d7c821"
30
30
  }
package/src/IPStack.ts CHANGED
@@ -7,6 +7,7 @@ import {
7
7
  export async function gecodeIPAddress(ipAddress) {
8
8
  // Return mock data for load testing
9
9
  if(LOAD_TEST_ENABLED) {
10
+ console.log('LOAD_TEST_ENABLED=true');
10
11
  return {
11
12
  city: 'Polson',
12
13
  region_code: 'MT',
@@ -0,0 +1,7 @@
1
+ export function makeCache(items: any[], key: string, start: any) {
2
+ return items.reduce((cur, item) => {
3
+ cur[item[key]] = item;
4
+ return cur;
5
+ }, {...start});
6
+ }
7
+
package/src/UrlUtil.ts ADDED
@@ -0,0 +1,38 @@
1
+ import * as url from 'url';
2
+
3
+ export function parse(inputUrl: string) {
4
+ return url.parse(inputUrl, true)
5
+ }
6
+
7
+ export function setQueryString(paramObj: any, replaceState = false, clearExisting = false) {
8
+ const { query } = url.parse(window.location.href, true);
9
+
10
+ let newParams = {
11
+ ...query,
12
+ ...paramObj,
13
+ };
14
+
15
+ if (clearExisting) {
16
+ newParams = {
17
+ ...paramObj,
18
+ };
19
+ }
20
+
21
+ let queryString = Object.keys(newParams)
22
+ .map((key) => {
23
+ return (newParams[key]) ? `${key}=${newParams[key]}` : null;
24
+ })
25
+ .filter(item => !!item)
26
+ .join('&');
27
+
28
+ if(queryString) queryString = '?' + queryString;
29
+
30
+ const newUrl = `${window.location.protocol}//${window.location.host}${window.location.pathname}${queryString}`;
31
+
32
+ if (replaceState && window.history.replaceState) {
33
+ window.history.replaceState({ path: newUrl }, '', newUrl);
34
+ } else if (window.history.pushState) {
35
+ window.history.pushState({ path: newUrl }, '', newUrl);
36
+ }
37
+ return newUrl;
38
+ }
@@ -0,0 +1,21 @@
1
+ const lastChar = string => string.toString().charAt(string.length - 1);
2
+
3
+ export function input(percentage) {
4
+ percentage = percentage.toString().replace(/\s/g, '');
5
+
6
+ if (!percentage) percentage = 0;
7
+
8
+ if (Number.isNaN(percentage)) return 0;
9
+
10
+ if (percentage.toString().length > 1 && percentage.toString().charAt(0) === '0') {
11
+ const value = parseFloat(percentage.substring(1));
12
+ if (Number.isNaN(value)) return 0;
13
+ return value;
14
+ }
15
+
16
+ if (lastChar(percentage) === '.') {
17
+ return percentage;
18
+ }
19
+
20
+ return parseFloat(percentage);
21
+ }
package/src/price.ts CHANGED
@@ -1,5 +1,48 @@
1
- export const output = (price: number): string => {
2
- price = price / 100;
3
- return price.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
4
- // return `$${price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`;
5
- };
1
+ // I know this sucks, I'm sorry. You can re-write it, but
2
+ // make sure you test it thoroughly.
3
+ export const input = (price: any) => {
4
+ price = price.replace(/[^0-9.]/g, '');
5
+
6
+ if (price.indexOf('.') > -1) {
7
+ let [first, second] = price.toString().split('.');
8
+
9
+ second = second.replace(/[^0-9]/g, '');
10
+
11
+ price = `${first}.${second}`;
12
+ }
13
+
14
+ if (price.toString().split('')[price.length - 1] === '.') {
15
+ return price;
16
+ }
17
+
18
+ if (price.toString().split('')[price.length - 1] === '0'
19
+ && price.toString().split('')[price.length - 2] === '.') {
20
+ price = parseInt(price);
21
+ }
22
+
23
+ if (Number.isNaN(price) || Number.isNaN(price)) return 0;
24
+
25
+ return price * 100;
26
+ };
27
+
28
+ export const output = (price: any, withFixed = false) => {
29
+ if (price.toString().split('')[price.length - 1] === '.') {
30
+ return price;
31
+ }
32
+
33
+ if (withFixed) {
34
+ price /= 100;
35
+ return price.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
36
+ }
37
+
38
+ return price / 100;
39
+ };
40
+
41
+ export const format = (price: string) => {
42
+ const value = parseFloat(price.replace(/,/g, ''))
43
+ .toFixed(2)
44
+ .toString()
45
+ .replace(/\B(?=(\d{3})+(?!\d))/g, ',');
46
+
47
+ return parseFloat(value).toFixed(2);
48
+ };
package/src/time.ts CHANGED
@@ -45,3 +45,61 @@ export const format = function(secondsSinceEpoch, format = 'M/DD/YYYY h:mma', ti
45
45
  export const formatTimeOfDay = function (secondsSinceEpoch, timezone?: string) {
46
46
  return format(secondsSinceEpoch, 'h:mma', timezone);
47
47
  }
48
+
49
+ export const formattedCountDown = (startTime: number, endTime: number): string => {
50
+ const totalSeconds = endTime - startTime;
51
+ const days = Math.floor(totalSeconds / 86400);
52
+ const hours = Math.floor((totalSeconds % 86400) / 3600);
53
+ const minutes = Math.floor(((totalSeconds % 86400) % 3600) / 60);
54
+ const seconds = Math.floor((((totalSeconds % 86400) % 3600) % 60));
55
+
56
+ if (days === 0) return `${hours}h ${minutes}m ${seconds}s`;
57
+ if (hours === 0 && days === 0) return `${minutes}m ${seconds}s`;
58
+ if (minutes === 0 && hours === 0 && days === 0) return `${seconds}s`;
59
+ return `${days}d ${hours}h ${minutes}m ${seconds}s`;
60
+ };
61
+
62
+ export const getStartOfHour = (seconds: number) => {
63
+ return moment(seconds * 1000).startOf("hour").unix();
64
+ }
65
+
66
+ export const getStartOfDay = (seconds: number) => {
67
+ return moment(seconds * 1000).startOf("day").unix();
68
+ }
69
+
70
+ export const getStartOfWeek = (seconds: number) => {
71
+ return moment(seconds * 1000).startOf("week").unix();
72
+ }
73
+
74
+ export const getStartOfMonth = (seconds: number) => {
75
+ return moment(seconds * 1000).startOf("month").unix();
76
+ }
77
+
78
+ export const getStartOfYear = (seconds: number) => {
79
+ return moment(seconds * 1000).startOf("year").unix();
80
+ }
81
+
82
+
83
+ export const getStartOfCurrentDay = () => {
84
+ return moment().startOf("day").unix();
85
+ }
86
+
87
+ export const getStartOfCurrentMonth = () => {
88
+ return moment().startOf("month").unix();
89
+ }
90
+
91
+ export const getStartOfCurrentYear = () => {
92
+ return moment().startOf("year").unix();
93
+ }
94
+
95
+ export const getEndOfCurrentDay = () => {
96
+ return moment().endOf("day").unix();
97
+ }
98
+
99
+ export const getEndOfCurrentMonth = () => {
100
+ return moment().endOf("month").unix();
101
+ }
102
+
103
+ export const getEndOfCurrentYear = () => {
104
+ return moment().endOf("year").unix();
105
+ }