rosie-ui 0.1.0 → 0.1.2

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/CHANGELOG.md CHANGED
@@ -2,10 +2,14 @@
2
2
 
3
3
  ## Next
4
4
 
5
- ## 0.1.0
6
- > 2024-01-07
7
-
8
-
5
+ ## 0.1.2
6
+ > 2024-01-13
7
+
8
+ - New Features
9
+ - #2 Add Observable object
10
+ - Add `TextField` component
11
+ - Improvements
12
+ - Change to use `axios` for AJAX instead of `fetch`
9
13
 
10
14
  ## 0.0.4
11
15
  > 2023-11-12
@@ -0,0 +1 @@
1
+ export * from './textfield.component';
@@ -1,2 +1,2 @@
1
- "use strict";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90cy9zcmMvY29tcG9uZW50cy9mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
1
+ export * from './textfield.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90cy9zcmMvY29tcG9uZW50cy9mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMifQ==
@@ -2,3 +2,4 @@ export * from './dialog.component';
2
2
  export * from './dropdown.component';
3
3
  export * from './date-picker.component';
4
4
  export * from './grid';
5
+ export * from './form';
@@ -2,4 +2,5 @@ export * from './dialog.component';
2
2
  export * from './dropdown.component';
3
3
  export * from './date-picker.component';
4
4
  export * from './grid';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLFFBQVEsQ0FBQyJ9
5
+ export * from './form';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFFBQVEsQ0FBQyJ9
@@ -1,3 +1,38 @@
1
+ /// <reference types="jquery" />
2
+ /// <reference types="bootstrap" />
3
+ /// <reference types="toastr" />
1
4
  export * from './types';
2
5
  export * from './cache';
3
6
  export * from './ajax';
7
+ export * from './observable';
8
+ export declare const Rosie: {
9
+ classNames(...expressions: any[]): string;
10
+ showModal(selector: string, onShow?: (() => void) | undefined, onHide?: (() => void) | undefined): void;
11
+ hideModal(selector: string, onHide?: (() => void) | undefined): void;
12
+ exportToCsv(fileName: string, data: any[], headers?: import("./types").Dictionary<string> | undefined, delimiter?: string, lineDelimiter?: string): void;
13
+ isString: (value: any) => boolean;
14
+ isNumber: (value: any) => boolean;
15
+ isBoolean: (value: any) => boolean;
16
+ isObject: (value: any) => boolean;
17
+ isArray: (value: any) => boolean;
18
+ isDate: (value: any) => boolean;
19
+ isEmpty: (value: any) => boolean;
20
+ isNotEmpty: (value: any) => boolean;
21
+ guid: (prefix?: string, suffix?: string) => string;
22
+ query: (selectors: any) => JQuery<any>;
23
+ beforeProcessing: () => JQuery<any>;
24
+ afterProcessing: () => JQuery<any>;
25
+ alertInfo: ToastrDisplayMethod;
26
+ alertSuccess: ToastrDisplayMethod;
27
+ alertWarning: ToastrDisplayMethod;
28
+ alertError: ToastrDisplayMethod;
29
+ SCROLLBAR_WIDTH: number;
30
+ Number: {
31
+ pattern: (specifier?: string) => (n: number | {
32
+ valueOf(): number;
33
+ }) => string;
34
+ format: (value?: number | {
35
+ valueOf(): number;
36
+ }, pattern?: string) => string;
37
+ };
38
+ };
@@ -1,4 +1,18 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  export * from './types';
2
13
  export * from './cache';
3
14
  export * from './ajax';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQyJ9
15
+ export * from './observable';
16
+ import * as _Rosie from './utils';
17
+ export var Rosie = __assign({}, _Rosie);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLEtBQUssZ0JBQVEsTUFBTSxDQUFFLENBQUMifQ==
@@ -1,40 +1,6 @@
1
- /// <reference types="jquery" />
2
- /// <reference types="bootstrap" />
3
- /// <reference types="toastr" />
4
1
  import './lang/string';
5
2
  import './lang/number';
6
3
  import './lang/date';
7
4
  import './lang/array';
8
5
  export * from './core';
9
6
  export * from './components';
10
- export declare const Rosie: {
11
- classNames(...expressions: any[]): string;
12
- showModal(selector: string, onShow?: (() => void) | undefined, onHide?: (() => void) | undefined): void;
13
- hideModal(selector: string, onHide?: (() => void) | undefined): void;
14
- exportToCsv(fileName: string, data: any[], headers?: import("./core").Dictionary<string> | undefined, delimiter?: string, lineDelimiter?: string): void;
15
- isString: (value: any) => boolean;
16
- isNumber: (value: any) => boolean;
17
- isBoolean: (value: any) => boolean;
18
- isObject: (value: any) => boolean;
19
- isArray: (value: any) => boolean;
20
- isDate: (value: any) => boolean;
21
- isEmpty: (value: any) => boolean;
22
- isNotEmpty: (value: any) => boolean;
23
- guid: (prefix?: string, suffix?: string) => string;
24
- query: (selectors: any) => JQuery<any>;
25
- beforeProcessing: () => JQuery<any>;
26
- afterProcessing: () => JQuery<any>;
27
- alertInfo: ToastrDisplayMethod;
28
- alertSuccess: ToastrDisplayMethod;
29
- alertWarning: ToastrDisplayMethod;
30
- alertError: ToastrDisplayMethod;
31
- SCROLLBAR_WIDTH: number;
32
- Number: {
33
- pattern: (specifier?: string) => (n: number | {
34
- valueOf(): number;
35
- }) => string;
36
- format: (value?: number | {
37
- valueOf(): number;
38
- }, pattern?: string) => string;
39
- };
40
- };
package/dist/js/index.js CHANGED
@@ -1,20 +1,7 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  import './lang/string';
13
2
  import './lang/number';
14
3
  import './lang/date';
15
4
  import './lang/array';
16
5
  export * from './core';
17
6
  export * from './components';
18
- import * as _Rosie from './core/utils';
19
- export var Rosie = __assign({}, _Rosie);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLGVBQWUsQ0FBQztBQUN2QixPQUFPLGVBQWUsQ0FBQztBQUN2QixPQUFPLGFBQWEsQ0FBQztBQUNyQixPQUFPLGNBQWMsQ0FBQztBQUV0QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxNQUFNLENBQUMsSUFBTSxLQUFLLGdCQUFRLE1BQU0sQ0FBRSxDQUFDIn0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxlQUFlLENBQUM7QUFDdkIsT0FBTyxlQUFlLENBQUM7QUFDdkIsT0FBTyxhQUFhLENBQUM7QUFDckIsT0FBTyxjQUFjLENBQUM7QUFFdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxjQUFjLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rosie-ui",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "JavaScript library that build on top of React 18.2 and Bootstrap 5, helping you build data-intensive, cross-platform web apps for desktops, tablets, and smartphones.",
5
5
  "author": "Lionel Nguyen <huynguyen8505@gmail.com> (https://github.com/huytrongnguyen)",
6
6
  "license": "MIT",
@@ -16,6 +16,7 @@
16
16
  },
17
17
  "files": [
18
18
  "dist",
19
+ "scss",
19
20
  "LICENSE",
20
21
  "CHANGELOG.md",
21
22
  "README.md"
@@ -0,0 +1,7 @@
1
+ @mixin fullscreen() {
2
+ width: 100%;
3
+ height: 100%;
4
+ margin: 0;
5
+ padding: 0;
6
+ overflow-x: hidden;
7
+ }
@@ -0,0 +1,92 @@
1
+ // System
2
+
3
+ *:focus, *:active, *:read-only {
4
+ outline: none !important;
5
+ outline-width: 0 !important;
6
+ box-shadow: none !important;
7
+ -moz-box-shadow: none;
8
+ -webkit-box-shadow: none;
9
+ }
10
+
11
+ // Body
12
+
13
+ body, input, textarea, select, button {
14
+ -webkit-font-smoothing: subpixel-antialiased;
15
+ -moz-osx-font-smoothing: grayscale;
16
+ }
17
+
18
+ // Buttons
19
+ //
20
+ // For each of Bootstrap's buttons, define text, background, and border color.
21
+
22
+ .btn-outline-secondary {
23
+ border-color: $border-color !important;
24
+ color: $body-color;
25
+ }
26
+
27
+ .btn-primary, .btn-outline-primary:hover, .btn-check:checked + .btn-outline-primary {
28
+ color: $white !important;
29
+ }
30
+
31
+ // Breadcrumb
32
+
33
+ .breadcrumb {
34
+ display: flex;
35
+ flex: 0 0 $breadcrumb-height;
36
+ height: $breadcrumb-height;
37
+ align-items: center;
38
+ border-bottom: 1px solid $border-color;
39
+
40
+ .breadcrumb-item {
41
+ height: $breadcrumb-height;
42
+ margin-top: 5px;
43
+ padding-left: calc($breadcrumb-height * 3 / 4);
44
+ position: relative;
45
+
46
+ &:first-child {
47
+ padding-left: 0;
48
+ }
49
+ &:before {
50
+ content: '';
51
+ position: absolute;
52
+ margin-top: -10px;
53
+ margin-left: 1px;
54
+ left: 100%;
55
+ border-top: calc($breadcrumb-height / 2) solid transparent;
56
+ border-bottom: calc($breadcrumb-height / 2) solid transparent;
57
+ border-left: calc($breadcrumb-height / 2) solid $border-color;
58
+ }
59
+ &:after {
60
+ content: '';
61
+ position: absolute;
62
+ margin-top: -10px;
63
+ left: 100%;
64
+ border-top: calc($breadcrumb-height / 2) solid transparent;
65
+ border-bottom: calc($breadcrumb-height / 2) solid transparent;
66
+ border-left: calc($breadcrumb-height / 2) solid $white;
67
+ }
68
+ &.active {
69
+ font-weight: bold;
70
+ }
71
+ }
72
+
73
+ div.ms-auto {
74
+ margin-top: -15px;
75
+ }
76
+ }
77
+
78
+ .list-group-item {
79
+ background-color: transparent;
80
+ &.disabled { background-color: transparent !important; }
81
+ }
82
+
83
+ // Dropdowns
84
+ //
85
+ // Dropdown menu container and contents.
86
+
87
+ .dropdown-item:not(.active) {
88
+ &:hover {
89
+ color: $white;
90
+ background-color: $component-hover-bg;
91
+ }
92
+ }
@@ -0,0 +1,33 @@
1
+ .fullscreen { @include fullscreen(); }
2
+ .flex-1 { flex: 1; }
3
+
4
+ .mask {
5
+ position: absolute;
6
+ top: 0;
7
+ right: 0;
8
+ bottom: 0;
9
+ left: 0;
10
+ z-index: 1060;
11
+ transition: opacity .15s linear;
12
+ background-color: transparent;
13
+ display: none;
14
+ .mask-msg {
15
+ padding: 5px;
16
+ width: 100px;
17
+ position: absolute;
18
+ top: 0;
19
+ left: 50%;
20
+ margin-left: -40px;
21
+ border-left: 1px solid $border-color;
22
+ border-right: 1px solid $border-color;
23
+ border-bottom: 1px solid $border-color;
24
+ border-bottom-left-radius: 5px;
25
+ border-bottom-right-radius: 5px;
26
+ background-color: rgba(0, 0, 0, 0.03);
27
+ .mask-msg-text {
28
+ padding: 5px;
29
+ font: normal 11px $font-family-base;
30
+ color: $body-color !important;
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,57 @@
1
+ // Color system
2
+
3
+ $white: #fff;
4
+ $shade-00: #2d2f34;
5
+ $shade-05: #3f434a;
6
+ $shade-30: #c5c5c5;
7
+ $shade-50: #f1f2f4;
8
+ $shade-100: #fdfdfd;
9
+
10
+ $blue: #6aa5db;
11
+ $red: #e55353;
12
+ $yellow: #ffc000;
13
+ $green: #9cc96b;
14
+ $purple: #d1a5ff;
15
+ $pink: #e97b98;
16
+
17
+ $primary: $pink;
18
+ $secondary: $shade-30;
19
+ $success: $green;
20
+ $info: $blue;
21
+ $warning: $yellow;
22
+ $danger: $red;
23
+ $light: $shade-50;
24
+ $dark: $shade-00;
25
+
26
+ // Body
27
+ //
28
+ // Settings for the `<body>` element.
29
+
30
+ $body-color: $shade-05;
31
+ $body-bg: $shade-100;
32
+
33
+ // Components
34
+ //
35
+ // Define common padding and border radius sizes and more.
36
+
37
+ $border-color: rgba(0, 0, 0, 0.125);
38
+
39
+ // Typography
40
+ //
41
+ // Font, line-height, and color for body text, headings, and more.
42
+
43
+ $font-size-base: .875rem;
44
+ $font-weight-base: 300;
45
+
46
+ // Breadcrumb
47
+
48
+ $breadcrumb-padding-y: .25rem;
49
+ $breadcrumb-padding-x: .5rem;
50
+ $breadcrumb-margin-bottom: 0;
51
+ $breadcrumb-height: 40px;
52
+
53
+ // Components
54
+ //
55
+ // Define common padding and border radius sizes and more.
56
+
57
+ $component-hover-bg: #ed95ac;
@@ -0,0 +1,19 @@
1
+ .rosie-datepicker-portal {
2
+ font-size: 0.75rem;
3
+ .rosie-datepicker-cell {
4
+ width: 2.25rem;
5
+ height: 2.25rem;
6
+ }
7
+ }
8
+
9
+ .rosie-datepicker, .rosie-daterangepicker {
10
+ .input-group-text.rosie-daterangepicker-label {
11
+ border-radius: .25rem 0 0 .25rem;
12
+ }
13
+ .form-control-sm {
14
+ border-radius: 0;
15
+ }
16
+ .btn-sm.rosie-daterangepicker-action {
17
+ border-radius: 0 .25rem .25rem 0;
18
+ }
19
+ }
@@ -0,0 +1,29 @@
1
+ .rosie-grid {
2
+ border-top: 1px solid $border-color;
3
+ border-left: 1px solid $border-color;
4
+
5
+ &.rosie-grid-bordered {
6
+ .rosie-grid-row {
7
+ border-bottom: 1px solid $border-color;
8
+ .rosie-grid-cell {
9
+ border-right: 1px solid $border-color;
10
+ }
11
+ }
12
+ }
13
+
14
+ &.rosie-grid-striped {
15
+ .rosie-grid-body {
16
+ .rosie-grid-row:nth-of-type(even) { background-color: #fafafa; }
17
+ }
18
+ }
19
+
20
+ &.rosie-grid-hover {
21
+ .rosie-grid-body {
22
+ .rosie-grid-row:hover { background-color: #efefef !important; }
23
+ }
24
+ }
25
+
26
+ .rosie-grid-header {
27
+ .rosie-grid-row { border-bottom: 2px solid $border-color; }
28
+ }
29
+ }
@@ -0,0 +1,12 @@
1
+ @import 'variables';
2
+
3
+ @import '../node_modules/bootstrap/scss/bootstrap';
4
+ @import '../node_modules/@fortawesome/fontawesome-free/scss/fontawesome';
5
+ @import '../node_modules/@fortawesome/fontawesome-free/scss/solid';
6
+
7
+ @import 'mixin';
8
+ @import 'reset';
9
+ @import 'utilities';
10
+
11
+ @import 'components/date-picker';
12
+ @import 'components/grid';
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHMvc3JjL2NvbXBvbmVudHMvZ3JpZC9ncmlkLWhlYWRlci5jb21wb25lbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,4 +0,0 @@
1
- export * from './components/dialog.component';
2
- export * from './components/dropdown.component';
3
- export * from './components/date-picker.component';
4
- export * from './components/grid';
@@ -1,5 +0,0 @@
1
- export * from './components/dialog.component';
2
- export * from './components/dropdown.component';
3
- export * from './components/date-picker.component';
4
- export * from './components/grid';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3NyYy9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUJBQW1CLENBQUMifQ==
@@ -1,6 +0,0 @@
1
- interface Array<T> {
2
- take(n?: number): T[];
3
- takeRight(n?: number): T[];
4
- skip(n?: number): T[];
5
- mergeDictionary<TResult = any>(): TResult;
6
- }
@@ -1,24 +0,0 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- Array.prototype.take = function (n) {
12
- if (n === void 0) { n = 1; }
13
- return this.slice(0, Math.max(n, 0));
14
- };
15
- Array.prototype.takeRight = function (n) {
16
- if (n === void 0) { n = 1; }
17
- return this.slice(Math.max(this.length - n, 0), this.length);
18
- };
19
- Array.prototype.skip = function (n) {
20
- if (n === void 0) { n = 1; }
21
- return this.slice(n, this.length);
22
- };
23
- Array.prototype.mergeDictionary = function () { return Object.assign.apply(Object, __spreadArray([{}], this, false)); };
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90cy9zcmMvY29yZS9sYW5nL2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFnQ0EsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsVUFBdUIsQ0FBSztJQUFMLGtCQUFBLEVBQUEsS0FBSztJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFDLENBQUMsQ0FBQTtBQUM5RixLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxVQUF1QixDQUFLO0lBQUwsa0JBQUEsRUFBQSxLQUFLO0lBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQUMsQ0FBQyxDQUFBO0FBQzNILEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLFVBQXVCLENBQUs7SUFBTCxrQkFBQSxFQUFBLEtBQUs7SUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUFDLENBQUMsQ0FBQTtBQUszRixLQUFLLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRyxjQUF3QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLE9BQWIsTUFBTSxpQkFBUSxFQUFFLEdBQUssSUFBSSxTQUFZLENBQUMsQ0FBQyxDQUFDLENBQUEifQ==
@@ -1,21 +0,0 @@
1
- type TemporalUnit = 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond';
2
- interface DateConstructor {
3
- currentDate(): Date;
4
- difference(dateAfter: Date, dateBefore: Date, unit?: TemporalUnit): number;
5
- differenceInCalendarWeeks(dateAfter: Date, dateBefore: Date, weekStartsOn?: number): number;
6
- createTimeline(startDate: Date, endDate: Date, pattern: string): string[];
7
- }
8
- declare const MILLISECONDS_IN_SECOND = 1000, MILLISECONDS_IN_MINUTE: number, MILLISECONDS_IN_HOUR: number, MILLISECONDS_IN_DAY: number, MILLISECONDS_IN_WEEK: number;
9
- interface Date {
10
- equals(other: Date): boolean;
11
- isBefore(other: Date): boolean;
12
- isAfter(other: Date): boolean;
13
- format(pattern: string): string;
14
- startOfMonth(): Date;
15
- endOfMonth(): Date;
16
- lengthOfMonth(): number;
17
- startOfWeek(weekStartsOn?: number): Date;
18
- getWeeksInMonth(): number;
19
- plus(amountToAdd: number, unit?: TemporalUnit): Date;
20
- minus(amountToSubtract: number, unit?: TemporalUnit): Date;
21
- }
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Date.currentDate = function () {
3
- var value = new Date();
4
- return new Date(value.getFullYear(), value.getMonth(), value.getDate());
5
- };
6
- var MILLISECONDS_IN_SECOND = 1000, MILLISECONDS_IN_MINUTE = MILLISECONDS_IN_SECOND * 60, MILLISECONDS_IN_HOUR = MILLISECONDS_IN_MINUTE * 60, MILLISECONDS_IN_DAY = MILLISECONDS_IN_HOUR * 24, MILLISECONDS_IN_WEEK = MILLISECONDS_IN_DAY * 7;
7
- Date.difference = function (dateAfter, dateBefore, unit) {
8
- var _a, _b;
9
- if (unit === void 0) { unit = 'day'; }
10
- var diff = ((_a = dateAfter === null || dateAfter === void 0 ? void 0 : dateAfter.getTime()) !== null && _a !== void 0 ? _a : 0) - ((_b = dateBefore === null || dateBefore === void 0 ? void 0 : dateBefore.getTime()) !== null && _b !== void 0 ? _b : 0);
11
- switch (unit) {
12
- case 'week': return Math.floor(diff / MILLISECONDS_IN_WEEK);
13
- case 'day': return Math.floor(diff / MILLISECONDS_IN_DAY);
14
- case 'hour': return Math.floor(diff / MILLISECONDS_IN_HOUR);
15
- case 'minute': return Math.floor(diff / MILLISECONDS_IN_MINUTE);
16
- case 'second': return Math.floor(diff / MILLISECONDS_IN_SECOND);
17
- case 'millisecond': return diff;
18
- default: return diff;
19
- }
20
- };
21
- Date.differenceInCalendarWeeks = function (dateAfter, dateBefore, weekStartsOn) {
22
- var _a, _b;
23
- if (weekStartsOn === void 0) { weekStartsOn = 0; }
24
- var startOfWeekBefore = dateBefore.startOfWeek(weekStartsOn), startOfWeekAfter = dateAfter.startOfWeek(weekStartsOn), diff = ((_a = startOfWeekAfter === null || startOfWeekAfter === void 0 ? void 0 : startOfWeekAfter.getTime()) !== null && _a !== void 0 ? _a : 0) - ((_b = startOfWeekBefore === null || startOfWeekBefore === void 0 ? void 0 : startOfWeekBefore.getTime()) !== null && _b !== void 0 ? _b : 0);
25
- return Math.round(diff / MILLISECONDS_IN_WEEK);
26
- };
27
- Date.createTimeline = function (startDate, endDate, pattern) {
28
- var timeline = [];
29
- for (var cur = startDate; cur.isBefore(endDate) || cur.equals(endDate); cur = cur.plus(1)) {
30
- timeline.push(cur.format(pattern));
31
- }
32
- return timeline;
33
- };
34
- Date.prototype.equals = function (other) { return (this === null || this === void 0 ? void 0 : this.getTime()) === (other === null || other === void 0 ? void 0 : other.getTime()); };
35
- Date.prototype.isBefore = function (other) { return (this === null || this === void 0 ? void 0 : this.getTime()) < (other === null || other === void 0 ? void 0 : other.getTime()); };
36
- Date.prototype.isAfter = function (other) { return (this === null || this === void 0 ? void 0 : this.getTime()) > (other === null || other === void 0 ? void 0 : other.getTime()); };
37
- Date.prototype.format = function (pattern) {
38
- return pattern
39
- .replace('yyyy', "".concat(this.getFullYear()))
40
- .replace('MM', "".concat(this.getMonth() + 1).padStart(2, '0'))
41
- .replace('dd', "".concat(this.getDate()).padStart(2, '0'))
42
- .replace('HH', "".concat(this.getHours()).padStart(2, '0'))
43
- .replace('mm', "".concat(this.getMinutes()).padStart(2, '0'))
44
- .replace('ss', "".concat(this.getSeconds()).padStart(2, '0'));
45
- };
46
- Date.prototype.startOfMonth = function () { return new Date(this.getFullYear(), this.getMonth(), 1, 0, 0, 0, 0); };
47
- Date.prototype.endOfMonth = function () { return new Date(this.getFullYear(), this.getMonth() + 1, 0, 0, 0, 0, 0); };
48
- Date.prototype.lengthOfMonth = function () { return this.endOfMonth().getDate(); };
49
- Date.prototype.startOfWeek = function (weekStartsOn) {
50
- if (weekStartsOn === void 0) { weekStartsOn = 0; }
51
- var day = this.getDay(), diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn, date = this.minus(diff, 'day');
52
- date.setHours(0, 0, 0, 0);
53
- return date;
54
- };
55
- Date.prototype.getWeeksInMonth = function () {
56
- var startOfMonth = this.startOfMonth(), endOfMonth = this.endOfMonth(), weeks = Date.differenceInCalendarWeeks(endOfMonth, startOfMonth) + 1;
57
- return weeks;
58
- };
59
- Date.prototype.minus = function (amountToSubtract, unit) {
60
- if (unit === void 0) { unit = 'day'; }
61
- return this.plus(-amountToSubtract, unit);
62
- };
63
- Date.prototype.plus = function (amountToAdd, unit) {
64
- if (unit === void 0) { unit = 'day'; }
65
- switch (unit) {
66
- case 'year': return new Date(this.getFullYear() + amountToAdd, this.getMonth(), this.getDate(), 0, 0, 0, 0);
67
- case 'month': return new Date(this.getFullYear(), this.getMonth() + amountToAdd, this.getDate(), 0, 0, 0, 0);
68
- case 'day': return new Date(this.getFullYear(), this.getMonth(), this.getDate() + amountToAdd, 0, 0, 0, 0);
69
- case 'hour': return new Date(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours() + amountToAdd, 0, 0, 0);
70
- case 'minute': return new Date(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes() + amountToAdd, 0, 0);
71
- case 'second': return new Date(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds() + amountToAdd, 0);
72
- case 'millisecond': return new Date(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds() + amountToAdd);
73
- default: return this;
74
- }
75
- };
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzL3NyYy9jb3JlL2xhbmcvZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBU0EsSUFBSSxDQUFDLFdBQVcsR0FBRztJQUNqQixJQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUMxRSxDQUFDLENBQUE7QUFFRCxJQUFNLHNCQUFzQixHQUFHLElBQUksRUFDN0Isc0JBQXNCLEdBQUcsc0JBQXNCLEdBQUcsRUFBRSxFQUNwRCxvQkFBb0IsR0FBRyxzQkFBc0IsR0FBRyxFQUFFLEVBQ2xELG1CQUFtQixHQUFHLG9CQUFvQixHQUFHLEVBQUUsRUFDL0Msb0JBQW9CLEdBQUcsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBUyxTQUFlLEVBQUUsVUFBZ0IsRUFBRSxJQUFZOztJQUFaLHFCQUFBLEVBQUEsWUFBWTtJQUN4RSxJQUFNLElBQUksR0FBRyxDQUFDLE1BQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE9BQU8sRUFBRSxtQ0FBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQUEsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLE9BQU8sRUFBRSxtQ0FBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxRQUFRLElBQUksRUFBRTtRQUNaLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVELEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxDQUFD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QUU7UUFDWixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVHLEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0csS0FBSyxLQUFLLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFILEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUksS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1SixLQUFLLGFBQWEsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3RMLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO0tBQ3RCO0FBQ0gsQ0FBQyxDQUFBIn0=
@@ -1,6 +0,0 @@
1
- interface Number {
2
- round(fractionDigits?: number): number;
3
- ceil(): number;
4
- floor(): number;
5
- abs(): number;
6
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Number.prototype.round = function (fractionDigits) {
3
- return fractionDigits ? Math.round(this * 10 * fractionDigits + Number.EPSILON) / (10 * fractionDigits) : Math.round(this);
4
- };
5
- Number.prototype.ceil = function () { return Math.ceil(this); };
6
- Number.prototype.floor = function () { return Math.floor(this); };
7
- Number.prototype.abs = function () { return Math.abs(this); };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHMvc3JjL2NvcmUvbGFuZy9udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQW1CQSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxVQUF1QixjQUF1QjtJQUNyRSxPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0gsQ0FBQyxDQUFBO0FBQ0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsY0FBeUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLGNBQXlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM1RSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxjQUF5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEifQ==
@@ -1,9 +0,0 @@
1
- interface String {
2
- parseInt(): number;
3
- parseFloat(): number;
4
- parseDate(): Date;
5
- parseDateTime(): Date;
6
- encodeHtml(): string;
7
- decodeHtml(): string;
8
- decodeQS<T = any>(): T;
9
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- String.prototype.parseInt = function () { return parseInt(this, 10); };
3
- String.prototype.parseFloat = function () { return parseFloat(this); };
4
- String.prototype.parseDate = function () { var value = new Date(this); return new Date(value.getFullYear(), value.getMonth(), value.getDate()); };
5
- String.prototype.parseDateTime = function () { return new Date(this); };
6
- String.prototype.encodeHtml = function () { return encodeURIComponent(this); };
7
- String.prototype.decodeHtml = function () { return decodeURIComponent(this); };
8
- String.prototype.decodeQS = function () {
9
- return this.replace('?', '').split('&').reduce(function (queryParams, paramStr) {
10
- var param = paramStr.split('=');
11
- queryParams[param[0]] = param[1];
12
- return queryParams;
13
- }, {});
14
- };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHMvc3JjL2NvcmUvbGFuZy9zdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVBLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLGNBQXlCLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNqRixNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxjQUF5QixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNqRixNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxjQUF5QixJQUFNLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM5SixNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxjQUF5QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2xGLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLGNBQXlCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDekYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsY0FBeUIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN6RixNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRztJQUMxQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxXQUFXLEVBQUUsUUFBUTtRQUNuRSxJQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQyxFQUFFLEVBQVMsQ0FBTSxDQUFDO0FBQ3JCLENBQUMsQ0FBQSJ9
@@ -1,13 +0,0 @@
1
- export declare const isString: (value: any) => boolean;
2
- export declare const isNumber: (value: any) => boolean;
3
- export declare const isBoolean: (value: any) => boolean;
4
- export declare const isObject: (value: any) => boolean;
5
- export declare const isArray: (value: any) => boolean;
6
- export declare const isDate: (value: any) => boolean;
7
- export declare const isEmpty: (value: any) => boolean;
8
- export declare const isNotEmpty: (value: any) => boolean;
9
- export declare const guid: (prefix?: string, suffix?: string) => string;
10
- export declare function classNames(...expressions: any[]): string;
11
- export declare function showModal(selector: string, onShow?: () => void, onHide?: () => void): void;
12
- export declare function hideModal(selector: string, onHide?: () => void): void;
13
- export declare const SCROLLBAR_WIDTH: number;
@@ -1,70 +0,0 @@
1
- import { Modal } from 'bootstrap';
2
- export var isString = function (value) { return typeof value === 'string'; };
3
- export var isNumber = function (value) { return typeof value === 'number'; };
4
- export var isBoolean = function (value) { return typeof value === 'boolean'; };
5
- export var isObject = function (value) { return toString.call(value) === '[object Object]'; };
6
- export var isArray = function (value) { return toString.call(value) === '[object Array]'; };
7
- export var isDate = function (value) { return toString.call(value) === '[object Date]' && !isNaN(value); };
8
- export var isEmpty = function (value) { return value === undefined || value == null || value === '' || (isArray(value) && value.length === 0) || (isObject(value) && Object.keys(value).length === 0); };
9
- export var isNotEmpty = function (value) { return !isEmpty(value); };
10
- export var guid = function (prefix, suffix) {
11
- if (prefix === void 0) { prefix = ''; }
12
- if (suffix === void 0) { suffix = ''; }
13
- return "".concat(prefix).concat((Math.random() * (1 << 30)).toString(16).replace('.', '')).concat(suffix);
14
- };
15
- export function classNames() {
16
- var expressions = [];
17
- for (var _i = 0; _i < arguments.length; _i++) {
18
- expressions[_i] = arguments[_i];
19
- }
20
- return expressions
21
- .filter(function (exp) { return isNotEmpty(exp); })
22
- .map(function (exp) {
23
- if (isString(exp)) {
24
- return exp;
25
- }
26
- else if (isObject(exp)) {
27
- return Object.entries(exp)
28
- .filter(function (_a) {
29
- var _key = _a[0], value = _a[1];
30
- return value === true;
31
- })
32
- .map(function (_a) {
33
- var key = _a[0], _value = _a[1];
34
- return key;
35
- })
36
- .join(' ');
37
- }
38
- else {
39
- return '';
40
- }
41
- })
42
- .filter(function (className) { return isNotEmpty(className); })
43
- .join(' ');
44
- }
45
- export function showModal(selector, onShow, onHide) {
46
- var dialogEl = document.querySelector(selector);
47
- onShow && (dialogEl === null || dialogEl === void 0 ? void 0 : dialogEl.addEventListener('shown.bs.modal', onShow));
48
- onHide && (dialogEl === null || dialogEl === void 0 ? void 0 : dialogEl.addEventListener('hide.bs.modal', onHide));
49
- new Modal(selector).show();
50
- }
51
- export function hideModal(selector, onHide) {
52
- var _a;
53
- var dialogEl = document.querySelector(selector);
54
- onHide && (dialogEl === null || dialogEl === void 0 ? void 0 : dialogEl.addEventListener('hide.bs.modal', onHide));
55
- dialogEl && ((_a = Modal.getInstance(dialogEl)) === null || _a === void 0 ? void 0 : _a.hide());
56
- }
57
- export var SCROLLBAR_WIDTH = getScrollWidth();
58
- function getScrollWidth() {
59
- var _a;
60
- var outer = document.createElement('div');
61
- outer.style.visibility = 'hidden';
62
- outer.style.overflow = 'scroll';
63
- document.body.appendChild(outer);
64
- var inner = document.createElement('div');
65
- outer.appendChild(inner);
66
- var scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);
67
- (_a = outer.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(outer);
68
- return scrollbarWidth;
69
- }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR2xDLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEtBQVUsSUFBSyxPQUFBLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBekIsQ0FBeUIsQ0FBQztBQUNsRSxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFVLElBQUssT0FBQSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQXpCLENBQXlCLENBQUM7QUFDbEUsTUFBTSxDQUFDLElBQU0sU0FBUyxHQUFHLFVBQUMsS0FBVSxJQUFLLE9BQUEsT0FBTyxLQUFLLEtBQUssU0FBUyxFQUExQixDQUEwQixDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEtBQVUsSUFBSyxPQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssaUJBQWlCLEVBQTFDLENBQTBDLENBQUM7QUFDbkYsTUFBTSxDQUFDLElBQU0sT0FBTyxHQUFHLFVBQUMsS0FBVSxJQUFLLE9BQUEsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxnQkFBZ0IsRUFBekMsQ0FBeUMsQ0FBQztBQUNqRixNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxLQUFVLElBQUssT0FBQSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGVBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBekQsQ0FBeUQsQ0FBQztBQUNoRyxNQUFNLENBQUMsSUFBTSxPQUFPLEdBQUcsVUFBQyxLQUFVLElBQUssT0FBQSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FB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