tnp-helpers 13.1.13 → 13.1.14
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/app.js +3 -3
- package/browser/README.md +24 -24
- package/browser/esm2020/lib/base-component.mjs +49 -49
- package/browser/esm2020/lib/base-formly-component.mjs +112 -112
- package/browser/esm2020/lib/condition-wait.mjs +45 -45
- package/browser/esm2020/lib/constants.mjs +7 -7
- package/browser/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/browser/esm2020/lib/firedev-models.mjs +3 -3
- package/browser/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/browser/esm2020/lib/helpers-environment.mjs +32 -32
- package/browser/esm2020/lib/helpers-numbers.mjs +8 -8
- package/browser/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/browser/esm2020/lib/helpers-strings.mjs +252 -252
- package/browser/esm2020/lib/helpers.mjs +279 -279
- package/browser/esm2020/lib/index.mjs +14 -14
- package/browser/esm2020/lib/long-press.directive.mjs +112 -112
- package/browser/esm2020/lib/project.mjs +429 -429
- package/browser/esm2020/lib/resize-service.mjs +21 -21
- package/browser/esm2020/public-api.mjs +1 -1
- package/browser/esm2020/tnp-helpers.mjs +4 -4
- package/browser/fesm2015/tnp-helpers.mjs +1542 -1542
- package/browser/fesm2020/tnp-helpers.mjs +1534 -1534
- package/browser/lib/base-component.d.ts +16 -16
- package/browser/lib/base-formly-component.d.ts +30 -30
- package/browser/lib/condition-wait.d.ts +7 -7
- package/browser/lib/constants.d.ts +5 -5
- package/browser/lib/dual-component-ctrl.d.ts +24 -24
- package/browser/lib/firedev-models.d.ts +12 -12
- package/browser/lib/helpers-array-obj.d.ts +14 -14
- package/browser/lib/helpers-environment.d.ts +4 -4
- package/browser/lib/helpers-numbers.d.ts +2 -2
- package/browser/lib/helpers-strings-regexes.d.ts +27 -27
- package/browser/lib/helpers-strings.d.ts +49 -49
- package/browser/lib/helpers.d.ts +27 -27
- package/browser/lib/index.d.ts +10 -10
- package/browser/lib/long-press.directive.d.ts +24 -24
- package/browser/lib/project.d.ts +94 -94
- package/browser/lib/resize-service.d.ts +8 -8
- package/browser/tnp-helpers.d.ts +4 -4
- package/client/README.md +24 -24
- package/client/esm2020/lib/base-component.mjs +49 -49
- package/client/esm2020/lib/base-formly-component.mjs +112 -112
- package/client/esm2020/lib/condition-wait.mjs +45 -45
- package/client/esm2020/lib/constants.mjs +7 -7
- package/client/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/client/esm2020/lib/firedev-models.mjs +3 -3
- package/client/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/client/esm2020/lib/helpers-environment.mjs +32 -32
- package/client/esm2020/lib/helpers-numbers.mjs +8 -8
- package/client/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/client/esm2020/lib/helpers-strings.mjs +252 -252
- package/client/esm2020/lib/helpers.mjs +279 -279
- package/client/esm2020/lib/index.mjs +14 -14
- package/client/esm2020/lib/long-press.directive.mjs +112 -112
- package/client/esm2020/lib/project.mjs +429 -429
- package/client/esm2020/lib/resize-service.mjs +21 -21
- package/client/esm2020/public-api.mjs +1 -1
- package/client/esm2020/tnp-helpers.mjs +4 -4
- package/client/fesm2015/tnp-helpers.mjs +1542 -1542
- package/client/fesm2020/tnp-helpers.mjs +1534 -1534
- package/client/lib/base-component.d.ts +16 -16
- package/client/lib/base-formly-component.d.ts +30 -30
- package/client/lib/condition-wait.d.ts +7 -7
- package/client/lib/constants.d.ts +5 -5
- package/client/lib/dual-component-ctrl.d.ts +24 -24
- package/client/lib/firedev-models.d.ts +12 -12
- package/client/lib/helpers-array-obj.d.ts +14 -14
- package/client/lib/helpers-environment.d.ts +4 -4
- package/client/lib/helpers-numbers.d.ts +2 -2
- package/client/lib/helpers-strings-regexes.d.ts +27 -27
- package/client/lib/helpers-strings.d.ts +49 -49
- package/client/lib/helpers.d.ts +27 -27
- package/client/lib/index.d.ts +10 -10
- package/client/lib/long-press.directive.d.ts +24 -24
- package/client/lib/project.d.ts +94 -94
- package/client/lib/resize-service.d.ts +8 -8
- package/client/tnp-helpers.d.ts +4 -4
- package/index.d.ts +1 -1
- package/lib/angular.helper.d.ts +22 -22
- package/lib/base-component.d.ts +13 -13
- package/lib/base-component.js +3 -3
- package/lib/base-formly-component.d.ts +27 -27
- package/lib/base-formly-component.js +3 -3
- package/lib/condition-wait.d.ts +8 -8
- package/lib/constants.d.ts +6 -6
- package/lib/dual-component-ctrl.d.ts +24 -24
- package/lib/dual-component-ctrl.js +3 -3
- package/lib/firedev-models.d.ts +13 -13
- package/lib/git-project.d.ts +46 -46
- package/lib/helpers-array-obj.d.ts +15 -15
- package/lib/helpers-cli-tool.backend.d.ts +55 -55
- package/lib/helpers-dependencies.backend.d.ts +11 -11
- package/lib/helpers-environment.d.ts +5 -5
- package/lib/helpers-file-folders.backend.d.ts +83 -83
- package/lib/helpers-git.backend.d.ts +43 -43
- package/lib/helpers-json5.backend.d.ts +16 -16
- package/lib/helpers-morphi-framework.backend.d.ts +4 -4
- package/lib/helpers-network.backend.d.ts +8 -8
- package/lib/helpers-npm.backend.d.ts +3 -3
- package/lib/helpers-numbers.d.ts +3 -3
- package/lib/helpers-path.backend.d.ts +7 -7
- package/lib/helpers-process.backend.d.ts +55 -53
- package/lib/helpers-process.backend.js +30 -0
- package/lib/helpers-strings-regexes.d.ts +28 -28
- package/lib/helpers-strings.d.ts +50 -50
- package/lib/helpers-system-terminal.backend.d.ts +5 -5
- package/lib/helpers-vscode.backend.d.ts +5 -5
- package/lib/helpers.d.ts +69 -69
- package/lib/index.d.ts +11 -11
- package/lib/long-press.directive.d.ts +22 -22
- package/lib/merge-helpers.backend.d.ts +23 -23
- package/lib/project.d.ts +97 -97
- package/lib/resize-service.d.ts +6 -6
- package/lib/ts-code/index.d.ts +1 -1
- package/lib/ts-code/ts-code-extractor.d.ts +14 -14
- package/lib/ts-code/ts-code-modifier.backend.d.ts +12 -12
- package/package.json +2 -2
- package/package.json_devDependencies.json +222 -222
- package/package.json_tnp.json5 +44 -44
- package/tmp-environment.json +7 -7
- package/websql/README.md +24 -24
- package/websql/esm2020/lib/base-component.mjs +49 -49
- package/websql/esm2020/lib/base-formly-component.mjs +112 -112
- package/websql/esm2020/lib/condition-wait.mjs +45 -45
- package/websql/esm2020/lib/constants.mjs +7 -7
- package/websql/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/websql/esm2020/lib/firedev-models.mjs +3 -3
- package/websql/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/websql/esm2020/lib/helpers-environment.mjs +32 -32
- package/websql/esm2020/lib/helpers-numbers.mjs +8 -8
- package/websql/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/websql/esm2020/lib/helpers-strings.mjs +252 -252
- package/websql/esm2020/lib/helpers.mjs +279 -279
- package/websql/esm2020/lib/index.mjs +14 -14
- package/websql/esm2020/lib/long-press.directive.mjs +112 -112
- package/websql/esm2020/lib/project.mjs +429 -429
- package/websql/esm2020/lib/resize-service.mjs +21 -21
- package/websql/esm2020/public-api.mjs +1 -1
- package/websql/esm2020/tnp-helpers.mjs +4 -4
- package/websql/fesm2015/tnp-helpers.mjs +1542 -1542
- package/websql/fesm2020/tnp-helpers.mjs +1534 -1534
- package/websql/lib/base-component.d.ts +16 -16
- package/websql/lib/base-formly-component.d.ts +30 -30
- package/websql/lib/condition-wait.d.ts +7 -7
- package/websql/lib/constants.d.ts +5 -5
- package/websql/lib/dual-component-ctrl.d.ts +24 -24
- package/websql/lib/firedev-models.d.ts +12 -12
- package/websql/lib/helpers-array-obj.d.ts +14 -14
- package/websql/lib/helpers-environment.d.ts +4 -4
- package/websql/lib/helpers-numbers.d.ts +2 -2
- package/websql/lib/helpers-strings-regexes.d.ts +27 -27
- package/websql/lib/helpers-strings.d.ts +49 -49
- package/websql/lib/helpers.d.ts +27 -27
- package/websql/lib/index.d.ts +10 -10
- package/websql/lib/long-press.directive.d.ts +24 -24
- package/websql/lib/project.d.ts +94 -94
- package/websql/lib/resize-service.d.ts +8 -8
- package/websql/tnp-helpers.d.ts +4 -4
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/websql';
|
|
2
|
-
import { CLASS } from 'typescript-class-helpers/websql';
|
|
3
|
-
/* */
|
|
4
|
-
/* */
|
|
5
|
-
import { Log } from 'ng2-logger/websql';
|
|
6
|
-
const log = Log.create(`DualComponentController`);
|
|
7
|
-
export class DualComponentController {
|
|
8
|
-
constructor(cmp, isFormlyMode = false) {
|
|
9
|
-
this.cmp = cmp;
|
|
10
|
-
this.isFormlyMode = isFormlyMode;
|
|
11
|
-
}
|
|
12
|
-
getValTemplateOptions(propertyName) {
|
|
13
|
-
if (this.isFormlyMode) {
|
|
14
|
-
const res = this.cmp.field?.templateOptions[propertyName];
|
|
15
|
-
if (res === void 0 && this.cmp[propertyName]) {
|
|
16
|
-
return this.cmp[propertyName];
|
|
17
|
-
}
|
|
18
|
-
return res;
|
|
19
|
-
}
|
|
20
|
-
return this.cmp[propertyName];
|
|
21
|
-
}
|
|
22
|
-
getValContext(propertyName) {
|
|
23
|
-
if (this.isFormlyMode) {
|
|
24
|
-
const res = this.cmp?.field[propertyName];
|
|
25
|
-
if (res === void 0 && this.cmp[propertyName]) {
|
|
26
|
-
return this.cmp[propertyName];
|
|
27
|
-
}
|
|
28
|
-
return res;
|
|
29
|
-
}
|
|
30
|
-
return this.cmp[propertyName];
|
|
31
|
-
}
|
|
32
|
-
get disabled() {
|
|
33
|
-
return this.getValTemplateOptions('disabled');
|
|
34
|
-
}
|
|
35
|
-
get required() {
|
|
36
|
-
return this.getValTemplateOptions('required');
|
|
37
|
-
}
|
|
38
|
-
get type() {
|
|
39
|
-
if (!this.isFormlyMode) {
|
|
40
|
-
return CLASS.getNameFromObject(this.cmp);
|
|
41
|
-
}
|
|
42
|
-
return this.getValContext('type');
|
|
43
|
-
}
|
|
44
|
-
get label() {
|
|
45
|
-
return this.getValTemplateOptions('label');
|
|
46
|
-
}
|
|
47
|
-
get placeholder() {
|
|
48
|
-
return this.getValTemplateOptions('placeholder');
|
|
49
|
-
}
|
|
50
|
-
get defaultValue() {
|
|
51
|
-
return this.getValContext('defaultValue');
|
|
52
|
-
}
|
|
53
|
-
get formControl() {
|
|
54
|
-
return this.getValContext('formControl');
|
|
55
|
-
}
|
|
56
|
-
get key() {
|
|
57
|
-
return this.getValContext('key');
|
|
58
|
-
}
|
|
59
|
-
get path() {
|
|
60
|
-
return this.getValContext('path');
|
|
61
|
-
}
|
|
62
|
-
get model() {
|
|
63
|
-
if (this.isFormlyMode) {
|
|
64
|
-
return this.getValContext('model');
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return this.__model;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
set model(v) {
|
|
71
|
-
if (this.isFormlyMode) {
|
|
72
|
-
log.w(`[DualComponentController] You can't set model in formly component mode`);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
this.__model = v;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
get mode() {
|
|
79
|
-
if (this.isFormlyMode) {
|
|
80
|
-
return this.getValContext('mode');
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
return this.__mode;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
set mode(v) {
|
|
87
|
-
if (this.isFormlyMode) {
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
this.__mode = v;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
get value() {
|
|
94
|
-
if (this.isFormlyMode) {
|
|
95
|
-
return this.cmp.field.formControl.value;
|
|
96
|
-
}
|
|
97
|
-
if (_.isString(this.path)) {
|
|
98
|
-
return _.get(this.cmp.model, this.path);
|
|
99
|
-
}
|
|
100
|
-
return this.cmp.model;
|
|
101
|
-
}
|
|
102
|
-
set value(v) {
|
|
103
|
-
if (this.isFormlyMode) {
|
|
104
|
-
this.cmp.field.formControl.setValue(v);
|
|
105
|
-
// @ts-ignore
|
|
106
|
-
this.cmp.change.next(v);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (_.isString(this.path)) {
|
|
110
|
-
_.set(this.cmp.model, this.path, v);
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
this.cmp.model = v;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
;
|
|
118
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/dual-component-ctrl.ts
|
|
1
|
+
import { _ } from 'tnp-core/websql';
|
|
2
|
+
import { CLASS } from 'typescript-class-helpers/websql';
|
|
3
|
+
/* */
|
|
4
|
+
/* */
|
|
5
|
+
import { Log } from 'ng2-logger/websql';
|
|
6
|
+
const log = Log.create(`DualComponentController`);
|
|
7
|
+
export class DualComponentController {
|
|
8
|
+
constructor(cmp, isFormlyMode = false) {
|
|
9
|
+
this.cmp = cmp;
|
|
10
|
+
this.isFormlyMode = isFormlyMode;
|
|
11
|
+
}
|
|
12
|
+
getValTemplateOptions(propertyName) {
|
|
13
|
+
if (this.isFormlyMode) {
|
|
14
|
+
const res = this.cmp.field?.templateOptions[propertyName];
|
|
15
|
+
if (res === void 0 && this.cmp[propertyName]) {
|
|
16
|
+
return this.cmp[propertyName];
|
|
17
|
+
}
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
return this.cmp[propertyName];
|
|
21
|
+
}
|
|
22
|
+
getValContext(propertyName) {
|
|
23
|
+
if (this.isFormlyMode) {
|
|
24
|
+
const res = this.cmp?.field[propertyName];
|
|
25
|
+
if (res === void 0 && this.cmp[propertyName]) {
|
|
26
|
+
return this.cmp[propertyName];
|
|
27
|
+
}
|
|
28
|
+
return res;
|
|
29
|
+
}
|
|
30
|
+
return this.cmp[propertyName];
|
|
31
|
+
}
|
|
32
|
+
get disabled() {
|
|
33
|
+
return this.getValTemplateOptions('disabled');
|
|
34
|
+
}
|
|
35
|
+
get required() {
|
|
36
|
+
return this.getValTemplateOptions('required');
|
|
37
|
+
}
|
|
38
|
+
get type() {
|
|
39
|
+
if (!this.isFormlyMode) {
|
|
40
|
+
return CLASS.getNameFromObject(this.cmp);
|
|
41
|
+
}
|
|
42
|
+
return this.getValContext('type');
|
|
43
|
+
}
|
|
44
|
+
get label() {
|
|
45
|
+
return this.getValTemplateOptions('label');
|
|
46
|
+
}
|
|
47
|
+
get placeholder() {
|
|
48
|
+
return this.getValTemplateOptions('placeholder');
|
|
49
|
+
}
|
|
50
|
+
get defaultValue() {
|
|
51
|
+
return this.getValContext('defaultValue');
|
|
52
|
+
}
|
|
53
|
+
get formControl() {
|
|
54
|
+
return this.getValContext('formControl');
|
|
55
|
+
}
|
|
56
|
+
get key() {
|
|
57
|
+
return this.getValContext('key');
|
|
58
|
+
}
|
|
59
|
+
get path() {
|
|
60
|
+
return this.getValContext('path');
|
|
61
|
+
}
|
|
62
|
+
get model() {
|
|
63
|
+
if (this.isFormlyMode) {
|
|
64
|
+
return this.getValContext('model');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return this.__model;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
set model(v) {
|
|
71
|
+
if (this.isFormlyMode) {
|
|
72
|
+
log.w(`[DualComponentController] You can't set model in formly component mode`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this.__model = v;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
get mode() {
|
|
79
|
+
if (this.isFormlyMode) {
|
|
80
|
+
return this.getValContext('mode');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
return this.__mode;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
set mode(v) {
|
|
87
|
+
if (this.isFormlyMode) {
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.__mode = v;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
get value() {
|
|
94
|
+
if (this.isFormlyMode) {
|
|
95
|
+
return this.cmp.field.formControl.value;
|
|
96
|
+
}
|
|
97
|
+
if (_.isString(this.path)) {
|
|
98
|
+
return _.get(this.cmp.model, this.path);
|
|
99
|
+
}
|
|
100
|
+
return this.cmp.model;
|
|
101
|
+
}
|
|
102
|
+
set value(v) {
|
|
103
|
+
if (this.isFormlyMode) {
|
|
104
|
+
this.cmp.field.formControl.setValue(v);
|
|
105
|
+
// @ts-ignore
|
|
106
|
+
this.cmp.change.next(v);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (_.isString(this.path)) {
|
|
110
|
+
_.set(this.cmp.model, this.path, v);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this.cmp.model = v;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
;
|
|
118
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/dual-component-ctrl.ts
|
|
119
119
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbC1jb21wb25lbnQtY3RybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvZHVhbC1jb21wb25lbnQtY3RybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBS3hELEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLEdBQUcsRUFBUyxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUVsRCxNQUFNLE9BQWdCLHVCQUF1QjtJQUUzQyxZQUFzQixHQUF3QixFQUFTLGVBQWUsS0FBSztRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFxQjtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFRO0lBRTNFLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxZQUFvQjtRQUNsRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQ3pELElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMvQjtZQUNELE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVTLGFBQWEsQ0FBQyxZQUFvQjtRQUMxQyxJQUFJLElBQUks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QUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLGFBQWE7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7Q0FHRjtBQUdBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUVBQW1FIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEJhc2VGb3JtbHlDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtZm9ybWx5LWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy93ZWJzcWwnO1xuaW1wb3J0IHsgICBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgQWZ0ZXJWaWV3SW5pdCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsvKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgICBGb3JtQ29udHJvbCwgICBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3JtcycvKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IExvZywgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL3dlYnNxbCc7XG5jb25zdCBsb2cgPSBMb2cuY3JlYXRlKGBEdWFsQ29tcG9uZW50Q29udHJvbGxlcmApO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHVhbENvbXBvbmVudENvbnRyb2xsZXI8VCA9IGFueT4ge1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjbXA6IEJhc2VGb3JtbHlDb21wb25lbnQsIHB1YmxpYyBpc0Zvcm1seU1vZGUgPSBmYWxzZSkge1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VmFsVGVtcGxhdGVPcHRpb25zKHByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG4gICAgICBjb25zdCByZXMgPSB0aGlzLmNtcC5maWVsZD8udGVtcGxhdGVPcHRpb25zW3Byb3BlcnR5TmFtZV1cbiAgICAgIGlmIChyZXMgPT09IHZvaWQgMCAmJiB0aGlzLmNtcFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNtcFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY21wW3Byb3BlcnR5TmFtZV1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRWYWxDb250ZXh0KHByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG4gICAgICBjb25zdCByZXMgPSB0aGlzLmNtcD8uZmllbGRbcHJvcGVydHlOYW1lXVxuICAgICAgaWYgKHJlcyA9PT0gdm9pZCAwICYmIHRoaXMuY21wW3Byb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY21wW3Byb3BlcnR5TmFtZV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jbXBbcHJvcGVydHlOYW1lXVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbFRlbXBsYXRlT3B0aW9ucygnZGlzYWJsZWQnKSBhcyBib29sZWFuO1xuICB9XG5cbiAgZ2V0IHJlcXVpcmVkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbFRlbXBsYXRlT3B0aW9ucygncmVxdWlyZWQnKSBhcyBib29sZWFuO1xuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgaWYgKCF0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgcmV0dXJuIENMQVNTLmdldE5hbWVGcm9tT2JqZWN0KHRoaXMuY21wKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRWYWxDb250ZXh0KCd0eXBlJykgYXMgYm9vbGVhbjtcbiAgfVxuXG4gIGdldCBsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxUZW1wbGF0ZU9wdGlvbnMoJ2xhYmVsJykgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbFRlbXBsYXRlT3B0aW9ucygncGxhY2Vob2xkZXInKSBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXQgZGVmYXVsdFZhbHVlKCk6IFQge1xuICAgIHJldHVybiB0aGlzLmdldFZhbENvbnRleHQoJ2RlZmF1bHRWYWx1ZScpIGFzIGFueTtcbiAgfVxuXG4gIGdldCBmb3JtQ29udHJvbCgpOiBhbnkgey8vIEZvcm1Db250cm9sIHsgLy8gVE9ETyBRVUlDS19GSVhcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxDb250ZXh0KCdmb3JtQ29udHJvbCcpIGFzIGFueTtcbiAgfVxuXG4gIGdldCBrZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsQ29udGV4dCgna2V5JykgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IHBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsQ29udGV4dCgncGF0aCcpIGFzIHN0cmluZztcbiAgfVxuXG4gIF9fbW9kZWw6IGFueTtcbiAgZ2V0IG1vZGVsKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRWYWxDb250ZXh0KCdtb2RlbCcpIGFzIHN0cmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX19tb2RlbDtcbiAgICB9XG4gIH1cblxuICBzZXQgbW9kZWwodikge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgbG9nLncoYFtEdWFsQ29tcG9uZW50Q29udHJvbGxlcl0gWW91IGNhbid0IHNldCBtb2RlbCBpbiBmb3JtbHkgY29tcG9uZW50IG1vZGVgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fX21vZGVsID0gdjtcbiAgICB9XG4gIH1cblxuICBfX21vZGU6IGFueTtcbiAgZ2V0IG1vZGUoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFZhbENvbnRleHQoJ21vZGUnKSBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9fbW9kZTtcbiAgICB9XG4gIH1cblxuICBzZXQgbW9kZSh2KSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG5cblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9fbW9kZSA9IHY7XG4gICAgfVxuICB9XG5cblxuICBnZXQgdmFsdWUoKTogVCB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5jbXAuZmllbGQuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHRoaXMucGF0aCkpIHtcbiAgICAgIHJldHVybiBfLmdldCh0aGlzLmNtcC5tb2RlbCwgdGhpcy5wYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY21wLm1vZGVsO1xuICB9XG5cbiAgc2V0IHZhbHVlKHYpIHtcbiAgICBpZiAodGhpcy5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIHRoaXMuY21wLmZpZWxkLmZvcm1Db250cm9sLnNldFZhbHVlKHYpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5jbXAuY2hhbmdlLm5leHQodik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHRoaXMucGF0aCkpIHtcbiAgICAgIF8uc2V0KHRoaXMuY21wLm1vZGVsLCB0aGlzLnBhdGgsIHYpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNtcC5tb2RlbCA9IHY7XG4gICAgfVxuICB9XG5cblxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvZHVhbC1jb21wb25lbnQtY3RybC50cyJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
;
|
|
2
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/firedev-models.ts
|
|
3
|
-
export {};
|
|
1
|
+
;
|
|
2
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/firedev-models.ts
|
|
3
|
+
export {};
|
|
4
4
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWRldi1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2ZpcmVkZXYtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOERBQThEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBGaXJlZGV2TW9kZWxzIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIFZTQ29kZVNldHRpbmdzIHtcbiAgICAnZmlsZXMuZXhjbHVkZSc6IHsgW2ZpbGVzOiBzdHJpbmddOiBib29sZWFuOyB9O1xuICAgICd3b3JrYmVuY2guY29sb3JUaGVtZSc6ICdEZWZhdWx0IExpZ2h0KycgfCAnS2ltYmllIERhcmsnLFxuICAgICd3b3JrYmVuY2guY29sb3JDdXN0b21pemF0aW9ucyc6IHtcbiAgICAgICdhY3Rpdml0eUJhci5iYWNrZ3JvdW5kJz86IHN0cmluZztcbiAgICAgICdhY3Rpdml0eUJhci5mb3JlZ3JvdW5kJz86IHN0cmluZztcbiAgICAgICdzdGF0dXNCYXIuYmFja2dyb3VuZCc/OiBzdHJpbmc7XG4gICAgfVxuICB9XG5cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2ZpcmVkZXYtbW9kZWxzLnRzIl19
|
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/websql';
|
|
2
|
-
import * as fuzzy from 'fuzzy';
|
|
3
|
-
import { Helpers } from './index';
|
|
4
|
-
export class HelpersArrayObj {
|
|
5
|
-
from(s) {
|
|
6
|
-
if (_.isArray(s)) {
|
|
7
|
-
return s;
|
|
8
|
-
}
|
|
9
|
-
if (_.isString(s)) {
|
|
10
|
-
return s.split(' ');
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
second(arr) {
|
|
14
|
-
if (!Array.isArray(arr) || arr.length < 2) {
|
|
15
|
-
return void 0;
|
|
16
|
-
}
|
|
17
|
-
return arr[1];
|
|
18
|
-
}
|
|
19
|
-
arrayMoveElementBefore(arr, a, b, prop) {
|
|
20
|
-
let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
|
|
21
|
-
_.pullAt(arr, indexA);
|
|
22
|
-
let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);
|
|
23
|
-
if (indexB === 0) {
|
|
24
|
-
arr.unshift(a);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
arr.splice(indexB - 1, 0, a);
|
|
28
|
-
}
|
|
29
|
-
return arr;
|
|
30
|
-
}
|
|
31
|
-
arrayMoveElementAfterB(arr, a, b, prop) {
|
|
32
|
-
let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
|
|
33
|
-
_.pullAt(arr, indexA);
|
|
34
|
-
let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);
|
|
35
|
-
if (indexB === arr.length - 1) {
|
|
36
|
-
arr.push(a);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
arr.splice(indexB + 1, 0, a);
|
|
40
|
-
}
|
|
41
|
-
return arr;
|
|
42
|
-
}
|
|
43
|
-
uniqArray(array, uniqueProperty) {
|
|
44
|
-
var seen = {};
|
|
45
|
-
return array
|
|
46
|
-
.filter(f => !!f)
|
|
47
|
-
.filter(function (item) {
|
|
48
|
-
return seen.hasOwnProperty(uniqueProperty ? item[uniqueProperty] : item) ? false
|
|
49
|
-
: (seen[uniqueProperty ? item[uniqueProperty] : item] = true);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
sortKeys(obj) {
|
|
53
|
-
if (_.isArray(obj)) {
|
|
54
|
-
return obj.map(Helpers.arrays.sortKeys);
|
|
55
|
-
}
|
|
56
|
-
if (_.isObject(obj)) {
|
|
57
|
-
return _.fromPairs(_.keys(obj).sort().map(key => [key, Helpers.arrays.sortKeys(obj[key])]));
|
|
58
|
-
}
|
|
59
|
-
return obj;
|
|
60
|
-
}
|
|
61
|
-
;
|
|
62
|
-
/**
|
|
63
|
-
* Fuzzy search
|
|
64
|
-
*/
|
|
65
|
-
fuzzy(query, list, valueFn) {
|
|
66
|
-
const resultsFuzzy = fuzzy.filter(query, list.map(k => valueFn ? valueFn(k) : k));
|
|
67
|
-
const resultsFuzzyKebab = fuzzy.filter(_.kebabCase(query), list.map(k => _.kebabCase((valueFn ? valueFn(k) : k))));
|
|
68
|
-
const matches = resultsFuzzy.map((el) => el.string);
|
|
69
|
-
const matchesKebab = resultsFuzzyKebab.map((el) => el.string);
|
|
70
|
-
const results = (resultsFuzzy.length === 0) ? [] : list.filter(k => {
|
|
71
|
-
return matches.includes((valueFn ? valueFn(k) : k));
|
|
72
|
-
});
|
|
73
|
-
if (matches.length === 0 && matchesKebab.length > 0) {
|
|
74
|
-
const m = list.find(k => _.kebabCase((valueFn ? valueFn(k) : k)) === _.first(matchesKebab));
|
|
75
|
-
results.push(m);
|
|
76
|
-
matches.push((valueFn ? valueFn(m) : m));
|
|
77
|
-
}
|
|
78
|
-
return { matches, results };
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
;
|
|
82
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-array-obj.ts
|
|
1
|
+
import { _ } from 'tnp-core/websql';
|
|
2
|
+
import * as fuzzy from 'fuzzy';
|
|
3
|
+
import { Helpers } from './index';
|
|
4
|
+
export class HelpersArrayObj {
|
|
5
|
+
from(s) {
|
|
6
|
+
if (_.isArray(s)) {
|
|
7
|
+
return s;
|
|
8
|
+
}
|
|
9
|
+
if (_.isString(s)) {
|
|
10
|
+
return s.split(' ');
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
second(arr) {
|
|
14
|
+
if (!Array.isArray(arr) || arr.length < 2) {
|
|
15
|
+
return void 0;
|
|
16
|
+
}
|
|
17
|
+
return arr[1];
|
|
18
|
+
}
|
|
19
|
+
arrayMoveElementBefore(arr, a, b, prop) {
|
|
20
|
+
let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
|
|
21
|
+
_.pullAt(arr, indexA);
|
|
22
|
+
let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);
|
|
23
|
+
if (indexB === 0) {
|
|
24
|
+
arr.unshift(a);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
arr.splice(indexB - 1, 0, a);
|
|
28
|
+
}
|
|
29
|
+
return arr;
|
|
30
|
+
}
|
|
31
|
+
arrayMoveElementAfterB(arr, a, b, prop) {
|
|
32
|
+
let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
|
|
33
|
+
_.pullAt(arr, indexA);
|
|
34
|
+
let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);
|
|
35
|
+
if (indexB === arr.length - 1) {
|
|
36
|
+
arr.push(a);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
arr.splice(indexB + 1, 0, a);
|
|
40
|
+
}
|
|
41
|
+
return arr;
|
|
42
|
+
}
|
|
43
|
+
uniqArray(array, uniqueProperty) {
|
|
44
|
+
var seen = {};
|
|
45
|
+
return array
|
|
46
|
+
.filter(f => !!f)
|
|
47
|
+
.filter(function (item) {
|
|
48
|
+
return seen.hasOwnProperty(uniqueProperty ? item[uniqueProperty] : item) ? false
|
|
49
|
+
: (seen[uniqueProperty ? item[uniqueProperty] : item] = true);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
sortKeys(obj) {
|
|
53
|
+
if (_.isArray(obj)) {
|
|
54
|
+
return obj.map(Helpers.arrays.sortKeys);
|
|
55
|
+
}
|
|
56
|
+
if (_.isObject(obj)) {
|
|
57
|
+
return _.fromPairs(_.keys(obj).sort().map(key => [key, Helpers.arrays.sortKeys(obj[key])]));
|
|
58
|
+
}
|
|
59
|
+
return obj;
|
|
60
|
+
}
|
|
61
|
+
;
|
|
62
|
+
/**
|
|
63
|
+
* Fuzzy search
|
|
64
|
+
*/
|
|
65
|
+
fuzzy(query, list, valueFn) {
|
|
66
|
+
const resultsFuzzy = fuzzy.filter(query, list.map(k => valueFn ? valueFn(k) : k));
|
|
67
|
+
const resultsFuzzyKebab = fuzzy.filter(_.kebabCase(query), list.map(k => _.kebabCase((valueFn ? valueFn(k) : k))));
|
|
68
|
+
const matches = resultsFuzzy.map((el) => el.string);
|
|
69
|
+
const matchesKebab = resultsFuzzyKebab.map((el) => el.string);
|
|
70
|
+
const results = (resultsFuzzy.length === 0) ? [] : list.filter(k => {
|
|
71
|
+
return matches.includes((valueFn ? valueFn(k) : k));
|
|
72
|
+
});
|
|
73
|
+
if (matches.length === 0 && matchesKebab.length > 0) {
|
|
74
|
+
const m = list.find(k => _.kebabCase((valueFn ? valueFn(k) : k)) === _.first(matchesKebab));
|
|
75
|
+
results.push(m);
|
|
76
|
+
matches.push((valueFn ? valueFn(m) : m));
|
|
77
|
+
}
|
|
78
|
+
return { matches, results };
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
;
|
|
82
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-array-obj.ts
|
|
83
83
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtYXJyYXktb2JqLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE1BQU0sT0FBTyxlQUFlO0lBRTFCLElBQUksQ0FBQyxDQUFvQjtRQUN2QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7U0FDcEI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QyxPQUFPLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxPQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsc0JBQXNCLENBQVUsR0FBVSxFQUFFLENBQU0sRUFBRSxDQUFNLEVBQUUsSUFBYztRQUN4RSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENB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RSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pFLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNuRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsQ0FBQztTQUNqRDtRQUVELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRUFBaUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCAqIGFzIGZ1enp5IGZyb20gJ2Z1enp5JztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IGNsYXNzIEhlbHBlcnNBcnJheU9iaiB7XG5cbiAgZnJvbShzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoXy5pc0FycmF5KHMpKSB7XG4gICAgICByZXR1cm4gcztcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcocykpIHtcbiAgICAgIHJldHVybiBzLnNwbGl0KCcgJylcbiAgICB9XG4gIH1cblxuICBzZWNvbmQoYXJyKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFycikgfHwgYXJyLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIHJldHVybiAgYXJyWzFdO1xuICB9XG5cbiAgYXJyYXlNb3ZlRWxlbWVudEJlZm9yZTxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBhW3Byb3BdKSA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKSA6IGFyci5pbmRleE9mKGIpO1xuICAgIGlmIChpbmRleEIgPT09IDApIHtcbiAgICAgIGFyci51bnNoaWZ0KGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcnIuc3BsaWNlKGluZGV4QiAtIDEsIDAsIGEpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyO1xuICB9XG4gIGFycmF5TW92ZUVsZW1lbnRBZnRlckI8VCA9IGFueT4oYXJyOiBhbnlbXSwgYTogYW55LCBiOiBhbnksIHByb3A/OiBrZXlvZiBUKSB7XG4gICAgbGV0IGluZGV4QSA9IHByb3AgPyBhcnIuZmluZEluZGV4KGVsZW0gPT4gZWxlbVtwcm9wXSA9PT0gYVtwcm9wXSkgOiBhcnIuaW5kZXhPZihhKTtcbiAgICBfLnB1bGxBdChhcnIsIGluZGV4QSk7XG4gICAgbGV0IGluZGV4QiA9IHByb3AgPyBhcnIuZmluZEluZGV4KGVsZW0gPT4gZWxlbVtwcm9wXSA9PT0gYltwcm9wXSkgOiBhcnIuaW5kZXhPZihiKTtcbiAgICBpZiAoaW5kZXhCID09PSBhcnIubGVuZ3RoIC0gMSkge1xuICAgICAgYXJyLnB1c2goYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCICsgMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICB1bmlxQXJyYXk8VCA9IGFueT4oYXJyYXk6IGFueVtdLCB1bmlxdWVQcm9wZXJ0eT86IChrZXlvZiBUKSkge1xuICAgIHZhciBzZWVuID0ge307XG4gICAgcmV0dXJuIGFycmF5XG4gICAgICAuZmlsdGVyKGYgPT4gISFmKVxuICAgICAgLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gc2Vlbi5oYXNPd25Qcm9wZXJ0eSh1bmlxdWVQcm9wZXJ0eSA/IGl0ZW1bdW5pcXVlUHJvcGVydHldIDogaXRlbSkgPyBmYWxzZVxuICAgICAgICAgIDogKHNlZW5bdW5pcXVlUHJvcGVydHkgPyBpdGVtW3VuaXF1ZVByb3BlcnR5XSA6IGl0ZW1dID0gdHJ1ZSk7XG4gICAgICB9KSBhcyBUW107XG4gIH1cblxuICBzb3J0S2V5cyhvYmopIHtcbiAgICBpZiAoXy5pc0FycmF5KG9iaikpIHtcbiAgICAgIHJldHVybiBvYmoubWFwKEhlbHBlcnMuYXJyYXlzLnNvcnRLZXlzKTtcbiAgICB9XG4gICAgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgcmV0dXJuIF8uZnJvbVBhaXJzKF8ua2V5cyhvYmopLnNvcnQoKS5tYXAoa2V5ID0+IFtrZXksIEhlbHBlcnMuYXJyYXlzLnNvcnRLZXlzKG9ialtrZXldKV0pKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfTtcblxuICAvKipcbiAgICogRnV6enkgc2VhcmNoXG4gICAqL1xuICBmdXp6eTxUID0gYW55PihxdWVyeTogc3RyaW5nLCBsaXN0OiBUW10sIHZhbHVlRm4/OiAobW9kZWxGcm9tTGlzdDogVCkgPT4gc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0c0Z1enp5ID0gZnV6enkuZmlsdGVyKFxuICAgICAgcXVlcnksXG4gICAgICBsaXN0Lm1hcChrID0+IHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogayksXG4gICAgKVxuICAgIGNvbnN0IHJlc3VsdHNGdXp6eUtlYmFiID0gZnV6enkuZmlsdGVyKFxuICAgICAgXy5rZWJhYkNhc2UocXVlcnkpLFxuICAgICAgbGlzdC5tYXAoayA9PiBfLmtlYmFiQ2FzZSgodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpKSxcbiAgICApXG4gICAgY29uc3QgbWF0Y2hlcyA9IHJlc3VsdHNGdXp6eS5tYXAoKGVsKSA9PiBlbC5zdHJpbmcpO1xuICAgIGNvbnN0IG1hdGNoZXNLZWJhYiA9IHJlc3VsdHNGdXp6eUtlYmFiLm1hcCgoZWwpID0+IGVsLnN0cmluZyk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gKHJlc3VsdHNGdXp6eS5sZW5ndGggPT09IDApID8gW10gOiBsaXN0LmZpbHRlcihrID0+IHtcbiAgICAgIHJldHVybiBtYXRjaGVzLmluY2x1ZGVzKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSk7XG4gICAgfSlcblxuICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PT0gMCAmJiBtYXRjaGVzS2ViYWIubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbSA9IGxpc3QuZmluZChrID0+IF8ua2ViYWJDYXNlKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSkgPT09IF8uZmlyc3QobWF0Y2hlc0tlYmFiKSk7XG4gICAgICByZXN1bHRzLnB1c2gobSk7XG4gICAgICBtYXRjaGVzLnB1c2goKHZhbHVlRm4gPyB2YWx1ZUZuKG0pIDogbSkgYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBtYXRjaGVzLCByZXN1bHRzIH07XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtYXJyYXktb2JqLnRzIl19
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { _, /* */ /* */ } from 'tnp-core/websql'; /* */
|
|
2
|
-
/* */
|
|
3
|
-
/* */
|
|
4
|
-
/* */
|
|
5
|
-
/* */
|
|
6
|
-
export class HelpersEnvironment {
|
|
7
|
-
environmentName(filename, local_env_name) {
|
|
8
|
-
/* */
|
|
9
|
-
/* */
|
|
10
|
-
/* */
|
|
11
|
-
/* */
|
|
12
|
-
/* */
|
|
13
|
-
/* */
|
|
14
|
-
}
|
|
15
|
-
isValidGitRepuUrl(url) {
|
|
16
|
-
const regex = /^([A-Za-z0-9]+@|http(|s)\:\/\/)([A-Za-z0-9.]+(:\d+)?)(?::|\/)([\d\/\w.-]+?)(\.git)?$/;
|
|
17
|
-
const res = regex.test(url);
|
|
18
|
-
return res;
|
|
19
|
-
}
|
|
20
|
-
isValidIp(ip) {
|
|
21
|
-
if (!_.isString(ip)) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
ip = ip.trim();
|
|
25
|
-
if (ip === 'localhost') {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ip);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
;
|
|
32
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-environment.ts
|
|
1
|
+
import { _, /* */ /* */ } from 'tnp-core/websql'; /* */
|
|
2
|
+
/* */
|
|
3
|
+
/* */
|
|
4
|
+
/* */
|
|
5
|
+
/* */
|
|
6
|
+
export class HelpersEnvironment {
|
|
7
|
+
environmentName(filename, local_env_name) {
|
|
8
|
+
/* */
|
|
9
|
+
/* */
|
|
10
|
+
/* */
|
|
11
|
+
/* */
|
|
12
|
+
/* */
|
|
13
|
+
/* */
|
|
14
|
+
}
|
|
15
|
+
isValidGitRepuUrl(url) {
|
|
16
|
+
const regex = /^([A-Za-z0-9]+@|http(|s)\:\/\/)([A-Za-z0-9.]+(:\d+)?)(?::|\/)([\d\/\w.-]+?)(\.git)?$/;
|
|
17
|
+
const res = regex.test(url);
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
isValidIp(ip) {
|
|
21
|
+
if (!_.isString(ip)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
ip = ip.trim();
|
|
25
|
+
if (ip === 'localhost') {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ip);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
;
|
|
32
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-environment.ts
|
|
33
33
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUssTUFBTSxpQkFBaUIsQ0FBQyxDQUFBLEtBQUs7QUFDM0QsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUdMLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsZUFBZSxDQUFDLFFBQVEsRUFBRSxjQUFjO1FBQzFDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLE1BQU0sS0FBSyxHQUFHLHNGQUFzRixDQUFDO1FBQ3JHLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQVU7UUFDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixJQUFJLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sa0tBQWtLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3BMLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUVBQW1FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgICBfLCAvKiAqLyAvKiAqLyAgICB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cblxuZXhwb3J0IGNsYXNzIEhlbHBlcnNFbnZpcm9ubWVudCB7XG5cbiAgZW52aXJvbm1lbnROYW1lKGZpbGVuYW1lLCBsb2NhbF9lbnZfbmFtZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG4gIGlzVmFsaWRHaXRSZXB1VXJsKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnZXggPSAvXihbQS1aYS16MC05XStAfGh0dHAofHMpXFw6XFwvXFwvKShbQS1aYS16MC05Ll0rKDpcXGQrKT8pKD86OnxcXC8pKFtcXGRcXC9cXHcuLV0rPykoXFwuZ2l0KT8kLztcbiAgICBjb25zdCByZXMgPSByZWdleC50ZXN0KHVybCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGlzVmFsaWRJcChpcDogc3RyaW5nKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKGlwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpcCA9IGlwLnRyaW0oKTtcbiAgICBpZiAoaXAgPT09ICdsb2NhbGhvc3QnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC9eKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykkLy50ZXN0KGlwKVxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9oZWxwZXJzLWVudmlyb25tZW50LnRzIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export class HelpersNumber {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.randomInteger = (max, min) => Math.round(Math.random() * (max - min)) + min;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
;
|
|
7
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class HelpersNumber {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.randomInteger = (max, min) => Math.round(Math.random() * (max - min)) + min;
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
;
|
|
7
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1udW1iZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLW51bWJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFDRSxrQkFBYSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFHOUUsQ0FBQztDQUFBO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjbGFzcyBIZWxwZXJzTnVtYmVyIHtcbiAgcmFuZG9tSW50ZWdlciA9IChtYXgsIG1pbikgPT4gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbikpICsgbWluO1xuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9oZWxwZXJzLW51bWJlcnMudHMiXX0=
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/websql';
|
|
2
|
-
export class HelpersStringsRegexes {
|
|
3
|
-
escapeStringForRegEx(s) {
|
|
4
|
-
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
5
|
-
}
|
|
6
|
-
matchExactOnce(s, regex) {
|
|
7
|
-
if (!_.isString(s) || !_.isRegExp(regex)) {
|
|
8
|
-
return void 0;
|
|
9
|
-
}
|
|
10
|
-
const result = s.match(regex);
|
|
11
|
-
if (_.isNil(result)) {
|
|
12
|
-
return void 0;
|
|
13
|
-
}
|
|
14
|
-
return result.length >= 1 ? _.first(result) : void 0;
|
|
15
|
-
}
|
|
16
|
-
get regex() {
|
|
17
|
-
return {
|
|
18
|
-
/**
|
|
19
|
-
* mathes
|
|
20
|
-
* xxx.xxx.xxx.xxx
|
|
21
|
-
* xxx.xxx.xxx.xxx:port
|
|
22
|
-
* http://xxx.xxx.xxx.xxx:port
|
|
23
|
-
* http://xxx.xxx.xxx.xxx
|
|
24
|
-
* https://xxx.xxx.xxx.xxx:port
|
|
25
|
-
* https://xxx.xxx.xxx.xxx *
|
|
26
|
-
*/
|
|
27
|
-
get forStringWithIpHost() {
|
|
28
|
-
const regex = /(http(s)?\:\/\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\:[0-9]+)?/;
|
|
29
|
-
return regex;
|
|
30
|
-
},
|
|
31
|
-
/**
|
|
32
|
-
* mathes
|
|
33
|
-
* http://domain.com:port
|
|
34
|
-
* http://domain.com
|
|
35
|
-
* http://domain:port
|
|
36
|
-
* http://domain
|
|
37
|
-
* https://domain.com:port
|
|
38
|
-
* https://domain.com
|
|
39
|
-
* https://domain:port
|
|
40
|
-
* https://domain
|
|
41
|
-
*/
|
|
42
|
-
get forStringWithDomainHost() {
|
|
43
|
-
const regex = /(((http(s)?\:\/\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+(\:[0-9]+)?)|((http(s)?\:\/\/)[a-zA-Z0-9-]{1,61}))/;
|
|
44
|
-
return regex;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
;
|
|
50
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-strings-regexes.ts
|
|
1
|
+
import { _ } from 'tnp-core/websql';
|
|
2
|
+
export class HelpersStringsRegexes {
|
|
3
|
+
escapeStringForRegEx(s) {
|
|
4
|
+
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
5
|
+
}
|
|
6
|
+
matchExactOnce(s, regex) {
|
|
7
|
+
if (!_.isString(s) || !_.isRegExp(regex)) {
|
|
8
|
+
return void 0;
|
|
9
|
+
}
|
|
10
|
+
const result = s.match(regex);
|
|
11
|
+
if (_.isNil(result)) {
|
|
12
|
+
return void 0;
|
|
13
|
+
}
|
|
14
|
+
return result.length >= 1 ? _.first(result) : void 0;
|
|
15
|
+
}
|
|
16
|
+
get regex() {
|
|
17
|
+
return {
|
|
18
|
+
/**
|
|
19
|
+
* mathes
|
|
20
|
+
* xxx.xxx.xxx.xxx
|
|
21
|
+
* xxx.xxx.xxx.xxx:port
|
|
22
|
+
* http://xxx.xxx.xxx.xxx:port
|
|
23
|
+
* http://xxx.xxx.xxx.xxx
|
|
24
|
+
* https://xxx.xxx.xxx.xxx:port
|
|
25
|
+
* https://xxx.xxx.xxx.xxx *
|
|
26
|
+
*/
|
|
27
|
+
get forStringWithIpHost() {
|
|
28
|
+
const regex = /(http(s)?\:\/\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\:[0-9]+)?/;
|
|
29
|
+
return regex;
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* mathes
|
|
33
|
+
* http://domain.com:port
|
|
34
|
+
* http://domain.com
|
|
35
|
+
* http://domain:port
|
|
36
|
+
* http://domain
|
|
37
|
+
* https://domain.com:port
|
|
38
|
+
* https://domain.com
|
|
39
|
+
* https://domain:port
|
|
40
|
+
* https://domain
|
|
41
|
+
*/
|
|
42
|
+
get forStringWithDomainHost() {
|
|
43
|
+
const regex = /(((http(s)?\:\/\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+(\:[0-9]+)?)|((http(s)?\:\/\/)[a-zA-Z0-9-]{1,61}))/;
|
|
44
|
+
return regex;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
;
|
|
50
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-strings-regexes.ts
|
|
51
51
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtc3RyaW5ncy1yZWdleGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxNQUFNLE9BQU8scUJBQXFCO0lBSWhDLG9CQUFvQixDQUFDLENBQVM7UUFDNUIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxjQUFjLENBQUMsQ0FBUyxFQUFFLEtBQWE7UUFDckMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FDZjtRQUNELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FDZjtRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPO1lBQ0w7Ozs7Ozs7O2FBUUM7WUFDRCxJQUFJLG1CQUFtQjtnQkFDckIsTUFBTSxLQUFLLEdBQUcsNExBQTRMLENBQUM7Z0JBQzNNLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNEOzs7Ozs7Ozs7O1lBVUE7WUFDQSxJQUFJLHVCQUF1QjtnQkFDekIsTUFBTSxLQUFLLEdBQUcsa0lBQWtJLENBQUM7Z0JBQ2pKLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVFQUF1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuZXhwb3J0IGNsYXNzIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyB7XG5cblxuXG4gIGVzY2FwZVN0cmluZ0ZvclJlZ0V4KHM6IHN0cmluZykge1xuICAgIHJldHVybiBzLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICB9XG5cbiAgbWF0Y2hFeGFjdE9uY2Uoczogc3RyaW5nLCByZWdleDogUmVnRXhwKTogc3RyaW5nIHtcbiAgICBpZiAoIV8uaXNTdHJpbmcocykgfHwgIV8uaXNSZWdFeHAocmVnZXgpKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBzLm1hdGNoKHJlZ2V4KTtcbiAgICBpZiAoXy5pc05pbChyZXN1bHQpKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA+PSAxID8gXy5maXJzdChyZXN1bHQpIDogdm9pZCAwO1xuICB9XG5cbiAgZ2V0IHJlZ2V4KCkge1xuICAgIHJldHVybiB7XG4gICAgICAvKipcbiAgICAgKiBtYXRoZXNcbiAgICAgKiB4eHgueHh4Lnh4eC54eHhcbiAgICAgKiB4eHgueHh4Lnh4eC54eHg6cG9ydFxuICAgICAqIGh0dHA6Ly94eHgueHh4Lnh4eC54eHg6cG9ydFxuICAgICAqIGh0dHA6Ly94eHgueHh4Lnh4eC54eHhcbiAgICAgKiBodHRwczovL3h4eC54eHgueHh4Lnh4eDpwb3J0XG4gICAgICogaHR0cHM6Ly94eHgueHh4Lnh4eC54eHggICAqXG4gICAgICovXG4gICAgICBnZXQgZm9yU3RyaW5nV2l0aElwSG9zdCgpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvKGh0dHAocyk/XFw6XFwvXFwvKT8oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KShcXDpbMC05XSspPy87XG4gICAgICAgIHJldHVybiByZWdleDtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAqIG1hdGhlc1xuICAgICogaHR0cDovL2RvbWFpbi5jb206cG9ydFxuICAgICogaHR0cDovL2RvbWFpbi5jb21cbiAgICAqIGh0dHA6Ly9kb21haW46cG9ydFxuICAgICogaHR0cDovL2RvbWFpblxuICAgICogaHR0cHM6Ly9kb21haW4uY29tOnBvcnRcbiAgICAqIGh0dHBzOi8vZG9tYWluLmNvbVxuICAgICogaHR0cHM6Ly9kb21haW46cG9ydFxuICAgICogaHR0cHM6Ly9kb21haW5cbiAgICAqL1xuICAgICAgZ2V0IGZvclN0cmluZ1dpdGhEb21haW5Ib3N0KCkge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oKChodHRwKHMpP1xcOlxcL1xcLyk/W2EtekEtWjAtOV1bYS16QS1aMC05LV17MSw2MX1bYS16QS1aMC05XSg/OlxcLlthLXpBLVpdezIsfSkrKFxcOlswLTldKyk/KXwoKGh0dHAocyk/XFw6XFwvXFwvKVthLXpBLVowLTktXXsxLDYxfSkpLztcbiAgICAgICAgcmV0dXJuIHJlZ2V4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtc3RyaW5ncy1yZWdleGVzLnRzIl19
|