tnp-helpers 0.0.70 → 13.0.4
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 +2 -1
- package/browser/README.md +24 -0
- package/browser/esm2020/lib/base-component.mjs +48 -0
- package/browser/esm2020/lib/base-formly-component.mjs +124 -0
- package/browser/esm2020/lib/condition-wait.mjs +54 -0
- package/browser/esm2020/lib/constants.mjs +2 -0
- package/browser/esm2020/lib/dual-component-ctrl.mjs +116 -0
- package/browser/esm2020/lib/helpers-array-obj.mjs +81 -0
- package/browser/esm2020/lib/helpers-environment.mjs +21 -0
- package/browser/esm2020/lib/helpers-strings-regexes.mjs +49 -0
- package/browser/esm2020/lib/helpers-strings.mjs +61 -0
- package/browser/esm2020/lib/helpers.mjs +106 -0
- package/browser/esm2020/lib/index.mjs +11 -0
- package/browser/esm2020/lib/long-press.directive.mjs +106 -0
- package/browser/esm2020/lib/project.mjs +90 -0
- package/browser/esm2020/lib/resize-service.mjs +20 -0
- package/browser/esm2020/public-api.mjs +2 -0
- package/browser/esm2020/tnp-helpers.mjs +5 -0
- package/browser/fesm2015/tnp-helpers.mjs +869 -0
- package/browser/fesm2015/tnp-helpers.mjs.map +1 -0
- package/browser/fesm2020/tnp-helpers.mjs +860 -0
- package/browser/fesm2020/tnp-helpers.mjs.map +1 -0
- package/browser/{base-component.d.ts → lib/base-component.d.ts} +3 -0
- package/browser/{base-formly-component.d.ts → lib/base-formly-component.d.ts} +4 -3
- package/browser/{condition-wait.d.ts → lib/condition-wait.d.ts} +0 -0
- package/browser/{constants.d.ts → lib/constants.d.ts} +0 -0
- package/browser/{dual-component-ctrl.d.ts → lib/dual-component-ctrl.d.ts} +0 -0
- package/{helpers-array-obj.d.ts → browser/lib/helpers-array-obj.d.ts} +1 -0
- package/browser/{helpers-environment.d.ts → lib/helpers-environment.d.ts} +0 -0
- package/browser/{helpers-strings-regexes.d.ts → lib/helpers-strings-regexes.d.ts} +0 -0
- package/browser/{helpers-strings.d.ts → lib/helpers-strings.d.ts} +0 -0
- package/browser/{helpers.d.ts → lib/helpers.d.ts} +2 -4
- package/{client → browser/lib}/index.d.ts +1 -1
- package/{client → browser/lib}/long-press.directive.d.ts +3 -0
- package/browser/{project.d.ts → lib/project.d.ts} +0 -0
- package/{client → browser/lib}/resize-service.d.ts +3 -0
- package/browser/package.json +31 -0
- package/browser/public-api.d.ts +1 -0
- package/browser/tnp-helpers.d.ts +5 -0
- package/client/README.md +24 -0
- package/client/esm2020/lib/base-component.mjs +48 -0
- package/client/esm2020/lib/base-formly-component.mjs +124 -0
- package/client/esm2020/lib/condition-wait.mjs +54 -0
- package/client/esm2020/lib/constants.mjs +2 -0
- package/client/esm2020/lib/dual-component-ctrl.mjs +116 -0
- package/client/esm2020/lib/helpers-array-obj.mjs +81 -0
- package/client/esm2020/lib/helpers-environment.mjs +21 -0
- package/client/esm2020/lib/helpers-strings-regexes.mjs +49 -0
- package/client/esm2020/lib/helpers-strings.mjs +61 -0
- package/client/esm2020/lib/helpers.mjs +106 -0
- package/client/esm2020/lib/index.mjs +11 -0
- package/client/esm2020/lib/long-press.directive.mjs +106 -0
- package/client/esm2020/lib/project.mjs +90 -0
- package/client/esm2020/lib/resize-service.mjs +20 -0
- package/client/esm2020/public-api.mjs +2 -0
- package/client/esm2020/tnp-helpers.mjs +5 -0
- package/client/fesm2015/tnp-helpers.mjs +869 -0
- package/client/fesm2015/tnp-helpers.mjs.map +1 -0
- package/client/fesm2020/tnp-helpers.mjs +860 -0
- package/client/fesm2020/tnp-helpers.mjs.map +1 -0
- package/client/{base-component.d.ts → lib/base-component.d.ts} +3 -0
- package/{base-formly-component.d.ts → client/lib/base-formly-component.d.ts} +4 -3
- package/client/{condition-wait.d.ts → lib/condition-wait.d.ts} +0 -0
- package/client/{constants.d.ts → lib/constants.d.ts} +0 -0
- package/client/{dual-component-ctrl.d.ts → lib/dual-component-ctrl.d.ts} +0 -0
- package/client/{helpers-array-obj.d.ts → lib/helpers-array-obj.d.ts} +1 -0
- package/client/{helpers-environment.d.ts → lib/helpers-environment.d.ts} +0 -0
- package/client/{helpers-strings-regexes.d.ts → lib/helpers-strings-regexes.d.ts} +0 -0
- package/client/{helpers-strings.d.ts → lib/helpers-strings.d.ts} +0 -0
- package/client/{helpers.d.ts → lib/helpers.d.ts} +2 -4
- package/{browser → client/lib}/index.d.ts +1 -1
- package/{browser → client/lib}/long-press.directive.d.ts +3 -0
- package/client/{project.d.ts → lib/project.d.ts} +0 -0
- package/{resize-service.d.ts → client/lib/resize-service.d.ts} +3 -0
- package/client/package.json +25 -19
- package/client/public-api.d.ts +1 -0
- package/client/tnp-helpers.d.ts +5 -0
- package/index.d.ts +1 -11
- package/index.js +3 -21
- package/index.js.map +1 -1
- package/{base-component.d.ts → lib/base-component.d.ts} +0 -0
- package/{base-component.js → lib/base-component.js} +8 -7
- package/lib/base-component.js.map +1 -0
- package/{client → lib}/base-formly-component.d.ts +1 -3
- package/{base-formly-component.js → lib/base-formly-component.js} +46 -47
- package/lib/base-formly-component.js.map +1 -0
- package/{condition-wait.d.ts → lib/condition-wait.d.ts} +0 -0
- package/{condition-wait.js → lib/condition-wait.js} +10 -9
- package/lib/condition-wait.js.map +1 -0
- package/{constants.d.ts → lib/constants.d.ts} +0 -0
- package/{constants.js → lib/constants.js} +2 -1
- package/lib/constants.js.map +1 -0
- package/{dual-component-ctrl.d.ts → lib/dual-component-ctrl.d.ts} +0 -0
- package/{dual-component-ctrl.js → lib/dual-component-ctrl.js} +2 -1
- package/lib/dual-component-ctrl.js.map +1 -0
- package/{git-project.d.ts → lib/git-project.d.ts} +4 -3
- package/{git-project.js → lib/git-project.js} +20 -11
- package/lib/git-project.js.map +1 -0
- package/{browser → lib}/helpers-array-obj.d.ts +1 -0
- package/{helpers-array-obj.js → lib/helpers-array-obj.js} +8 -1
- package/lib/helpers-array-obj.js.map +1 -0
- package/{helpers-cli-tool.backend.d.ts → lib/helpers-cli-tool.backend.d.ts} +0 -0
- package/{helpers-cli-tool.backend.js → lib/helpers-cli-tool.backend.js} +5 -4
- package/lib/helpers-cli-tool.backend.js.map +1 -0
- package/{helpers-dependencies.backend.d.ts → lib/helpers-dependencies.backend.d.ts} +0 -0
- package/{helpers-dependencies.backend.js → lib/helpers-dependencies.backend.js} +6 -5
- package/lib/helpers-dependencies.backend.js.map +1 -0
- package/{helpers-environment.d.ts → lib/helpers-environment.d.ts} +0 -0
- package/{helpers-environment.js → lib/helpers-environment.js} +2 -1
- package/lib/helpers-environment.js.map +1 -0
- package/{helpers-file-folders.backend.d.ts → lib/helpers-file-folders.backend.d.ts} +1 -0
- package/{helpers-file-folders.backend.js → lib/helpers-file-folders.backend.js} +66 -47
- package/lib/helpers-file-folders.backend.js.map +1 -0
- package/{helpers-git.backend.d.ts → lib/helpers-git.backend.d.ts} +3 -1
- package/{helpers-git.backend.js → lib/helpers-git.backend.js} +90 -56
- package/lib/helpers-git.backend.js.map +1 -0
- package/{helpers-json5.backend.d.ts → lib/helpers-json5.backend.d.ts} +0 -0
- package/{helpers-json5.backend.js → lib/helpers-json5.backend.js} +3 -2
- package/lib/helpers-json5.backend.js.map +1 -0
- package/{helpers-morphi-framework.backend.d.ts → lib/helpers-morphi-framework.backend.d.ts} +0 -0
- package/{helpers-morphi-framework.backend.js → lib/helpers-morphi-framework.backend.js} +4 -3
- package/lib/helpers-morphi-framework.backend.js.map +1 -0
- package/{helpers-network.backend.d.ts → lib/helpers-network.backend.d.ts} +0 -0
- package/{helpers-network.backend.js → lib/helpers-network.backend.js} +2 -1
- package/lib/helpers-network.backend.js.map +1 -0
- package/{helpers-npm.backend.d.ts → lib/helpers-npm.backend.d.ts} +0 -0
- package/{helpers-npm.backend.js → lib/helpers-npm.backend.js} +2 -1
- package/lib/helpers-npm.backend.js.map +1 -0
- package/{helpers-path.backend.d.ts → lib/helpers-path.backend.d.ts} +0 -0
- package/{helpers-path.backend.js → lib/helpers-path.backend.js} +4 -3
- package/lib/helpers-path.backend.js.map +1 -0
- package/{helpers-process.backend.d.ts → lib/helpers-process.backend.d.ts} +2 -2
- package/{helpers-process.backend.js → lib/helpers-process.backend.js} +54 -53
- package/lib/helpers-process.backend.js.map +1 -0
- package/{helpers-strings-regexes.d.ts → lib/helpers-strings-regexes.d.ts} +0 -0
- package/{helpers-strings-regexes.js → lib/helpers-strings-regexes.js} +2 -1
- package/lib/helpers-strings-regexes.js.map +1 -0
- package/{helpers-strings.d.ts → lib/helpers-strings.d.ts} +0 -0
- package/{helpers-strings.js → lib/helpers-strings.js} +2 -1
- package/lib/helpers-strings.js.map +1 -0
- package/{helpers-system-terminal.backend.d.ts → lib/helpers-system-terminal.backend.d.ts} +1 -1
- package/{helpers-system-terminal.backend.js → lib/helpers-system-terminal.backend.js} +9 -8
- package/lib/helpers-system-terminal.backend.js.map +1 -0
- package/{helpers.d.ts → lib/helpers.d.ts} +6 -6
- package/{helpers.js → lib/helpers.js} +34 -30
- package/lib/helpers.js.map +1 -0
- package/{client/index.js → lib/index.d.ts} +3 -3
- package/lib/index.js +25 -0
- package/lib/index.js.map +1 -0
- package/{long-press.directive.d.ts → lib/long-press.directive.d.ts} +0 -0
- package/{long-press.directive.js → lib/long-press.directive.js} +40 -39
- package/lib/long-press.directive.js.map +1 -0
- package/{merge-helpers.backend.d.ts → lib/merge-helpers.backend.d.ts} +0 -0
- package/{merge-helpers.backend.js → lib/merge-helpers.backend.js} +7 -6
- package/lib/merge-helpers.backend.js.map +1 -0
- package/{project.d.ts → lib/project.d.ts} +0 -0
- package/{project.js → lib/project.js} +23 -21
- package/lib/project.js.map +1 -0
- package/{browser → lib}/resize-service.d.ts +0 -0
- package/{resize-service.js → lib/resize-service.js} +5 -4
- package/lib/resize-service.js.map +1 -0
- package/{ts-code-modifier → lib/ts-code}/index.d.ts +0 -0
- package/{ts-code-modifier → lib/ts-code}/index.js +3 -2
- package/lib/ts-code/index.js.map +1 -0
- package/lib/ts-code/ts-code-extractor.d.ts +14 -0
- package/lib/ts-code/ts-code-extractor.js +47 -0
- package/lib/ts-code/ts-code-extractor.js.map +1 -0
- package/{ts-code-modifier → lib/ts-code}/ts-code-modifier.backend.d.ts +0 -0
- package/{ts-code-modifier → lib/ts-code}/ts-code-modifier.backend.js +3 -2
- package/lib/ts-code/ts-code-modifier.backend.js.map +1 -0
- package/package.json +10 -18
- package/package.json_devDependencies.json +50 -50
- package/{package.json_tnp.json → package.json_tnp.json5} +12 -8
- package/tmp-environment.json +86 -123
- package/base-component.js.map +0 -1
- package/base-formly-component.js.map +0 -1
- package/browser/base-component.js +0 -48
- package/browser/base-component.js.map +0 -1
- package/browser/base-formly-component.js +0 -149
- package/browser/base-formly-component.js.map +0 -1
- package/browser/condition-wait.js +0 -57
- package/browser/condition-wait.js.map +0 -1
- package/browser/constants.js +0 -2
- package/browser/constants.js.map +0 -1
- package/browser/dual-component-ctrl.js +0 -118
- package/browser/dual-component-ctrl.js.map +0 -1
- package/browser/es5/base-component.js +0 -89
- package/browser/es5/base-formly-component.js +0 -158
- package/browser/es5/condition-wait.js +0 -135
- package/browser/es5/constants.js +0 -7
- package/browser/es5/dual-component-ctrl.js +0 -164
- package/browser/es5/git-project.js +0 -18
- package/browser/es5/helpers-array-obj.js +0 -129
- package/browser/es5/helpers-environment.js +0 -46
- package/browser/es5/helpers-messages.js +0 -105
- package/browser/es5/helpers-strings-regexes.js +0 -74
- package/browser/es5/helpers-strings.js +0 -96
- package/browser/es5/helpers.js +0 -217
- package/browser/es5/index.js +0 -86
- package/browser/es5/long-press.directive.js +0 -133
- package/browser/es5/project.js +0 -146
- package/browser/es5/resize-service.js +0 -45
- package/browser/git-project.d.ts +0 -2
- package/browser/git-project.js +0 -6
- package/browser/git-project.js.map +0 -1
- package/browser/helpers-array-obj.js +0 -75
- package/browser/helpers-array-obj.js.map +0 -1
- package/browser/helpers-environment.js +0 -21
- package/browser/helpers-environment.js.map +0 -1
- package/browser/helpers-messages.d.ts +0 -7
- package/browser/helpers-messages.js +0 -68
- package/browser/helpers-messages.js.map +0 -1
- package/browser/helpers-strings-regexes.js +0 -49
- package/browser/helpers-strings-regexes.js.map +0 -1
- package/browser/helpers-strings.js +0 -61
- package/browser/helpers-strings.js.map +0 -1
- package/browser/helpers.js +0 -113
- package/browser/helpers.js.map +0 -1
- package/browser/index.js +0 -11
- package/browser/index.js.map +0 -1
- package/browser/long-press.directive.js +0 -125
- package/browser/long-press.directive.js.map +0 -1
- package/browser/project.js +0 -90
- package/browser/project.js.map +0 -1
- package/browser/resize-service.js +0 -20
- package/browser/resize-service.js.map +0 -1
- package/client/base-component.js +0 -48
- package/client/base-component.js.map +0 -1
- package/client/base-formly-component.js +0 -149
- package/client/base-formly-component.js.map +0 -1
- package/client/condition-wait.js +0 -57
- package/client/condition-wait.js.map +0 -1
- package/client/constants.js +0 -2
- package/client/constants.js.map +0 -1
- package/client/dual-component-ctrl.js +0 -118
- package/client/dual-component-ctrl.js.map +0 -1
- package/client/es5/base-component.js +0 -89
- package/client/es5/base-formly-component.js +0 -158
- package/client/es5/condition-wait.js +0 -135
- package/client/es5/constants.js +0 -7
- package/client/es5/dual-component-ctrl.js +0 -164
- package/client/es5/git-project.js +0 -18
- package/client/es5/helpers-array-obj.js +0 -129
- package/client/es5/helpers-environment.js +0 -46
- package/client/es5/helpers-messages.js +0 -105
- package/client/es5/helpers-strings-regexes.js +0 -74
- package/client/es5/helpers-strings.js +0 -96
- package/client/es5/helpers.js +0 -217
- package/client/es5/index.js +0 -86
- package/client/es5/long-press.directive.js +0 -133
- package/client/es5/project.js +0 -146
- package/client/es5/resize-service.js +0 -45
- package/client/git-project.d.ts +0 -2
- package/client/git-project.js +0 -6
- package/client/git-project.js.map +0 -1
- package/client/helpers-array-obj.js +0 -75
- package/client/helpers-array-obj.js.map +0 -1
- package/client/helpers-environment.js +0 -21
- package/client/helpers-environment.js.map +0 -1
- package/client/helpers-messages.d.ts +0 -7
- package/client/helpers-messages.js +0 -68
- package/client/helpers-messages.js.map +0 -1
- package/client/helpers-strings-regexes.js +0 -49
- package/client/helpers-strings-regexes.js.map +0 -1
- package/client/helpers-strings.js +0 -61
- package/client/helpers-strings.js.map +0 -1
- package/client/helpers.js +0 -113
- package/client/helpers.js.map +0 -1
- package/client/index.js.map +0 -1
- package/client/long-press.directive.js +0 -125
- package/client/long-press.directive.js.map +0 -1
- package/client/project.js +0 -90
- package/client/project.js.map +0 -1
- package/client/resize-service.js +0 -20
- package/client/resize-service.js.map +0 -1
- package/condition-wait.js.map +0 -1
- package/constants.js.map +0 -1
- package/dual-component-ctrl.js.map +0 -1
- package/git-project.js.map +0 -1
- package/helpers-array-obj.js.map +0 -1
- package/helpers-cli-tool.backend.js.map +0 -1
- package/helpers-dependencies.backend.js.map +0 -1
- package/helpers-environment.js.map +0 -1
- package/helpers-file-folders.backend.js.map +0 -1
- package/helpers-git.backend.js.map +0 -1
- package/helpers-json5.backend.js.map +0 -1
- package/helpers-messages.d.ts +0 -7
- package/helpers-messages.js +0 -237
- package/helpers-messages.js.map +0 -1
- package/helpers-morphi-framework.backend.js.map +0 -1
- package/helpers-network.backend.js.map +0 -1
- package/helpers-npm.backend.js.map +0 -1
- package/helpers-path.backend.js.map +0 -1
- package/helpers-process.backend.js.map +0 -1
- package/helpers-strings-regexes.js.map +0 -1
- package/helpers-strings.js.map +0 -1
- package/helpers-system-terminal.backend.js.map +0 -1
- package/helpers.js.map +0 -1
- package/long-press.directive.js.map +0 -1
- package/merge-helpers.backend.js.map +0 -1
- package/project.js.map +0 -1
- package/resize-service.js.map +0 -1
- package/ts-code-modifier/index.js.map +0 -1
- package/ts-code-modifier/ts-code-modifier.backend.js.map +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { _ } from 'tnp-core/browser';
|
|
2
|
+
import { CLASS } from 'typescript-class-helpers/browser';
|
|
3
|
+
import { Log } from 'ng2-logger/browser';
|
|
4
|
+
const log = Log.create(`DualComponentController`);
|
|
5
|
+
export class DualComponentController {
|
|
6
|
+
constructor(cmp, isFormlyMode = false) {
|
|
7
|
+
this.cmp = cmp;
|
|
8
|
+
this.isFormlyMode = isFormlyMode;
|
|
9
|
+
}
|
|
10
|
+
getValTemplateOptions(propertyName) {
|
|
11
|
+
if (this.isFormlyMode) {
|
|
12
|
+
const res = this.cmp.field?.templateOptions[propertyName];
|
|
13
|
+
if (res === void 0 && this.cmp[propertyName]) {
|
|
14
|
+
return this.cmp[propertyName];
|
|
15
|
+
}
|
|
16
|
+
return res;
|
|
17
|
+
}
|
|
18
|
+
return this.cmp[propertyName];
|
|
19
|
+
}
|
|
20
|
+
getValContext(propertyName) {
|
|
21
|
+
if (this.isFormlyMode) {
|
|
22
|
+
const res = this.cmp?.field[propertyName];
|
|
23
|
+
if (res === void 0 && this.cmp[propertyName]) {
|
|
24
|
+
return this.cmp[propertyName];
|
|
25
|
+
}
|
|
26
|
+
return res;
|
|
27
|
+
}
|
|
28
|
+
return this.cmp[propertyName];
|
|
29
|
+
}
|
|
30
|
+
get disabled() {
|
|
31
|
+
return this.getValTemplateOptions('disabled');
|
|
32
|
+
}
|
|
33
|
+
get required() {
|
|
34
|
+
return this.getValTemplateOptions('required');
|
|
35
|
+
}
|
|
36
|
+
get type() {
|
|
37
|
+
if (!this.isFormlyMode) {
|
|
38
|
+
return CLASS.getNameFromObject(this.cmp);
|
|
39
|
+
}
|
|
40
|
+
return this.getValContext('type');
|
|
41
|
+
}
|
|
42
|
+
get label() {
|
|
43
|
+
return this.getValTemplateOptions('label');
|
|
44
|
+
}
|
|
45
|
+
get placeholder() {
|
|
46
|
+
return this.getValTemplateOptions('placeholder');
|
|
47
|
+
}
|
|
48
|
+
get defaultValue() {
|
|
49
|
+
return this.getValContext('defaultValue');
|
|
50
|
+
}
|
|
51
|
+
get formControl() {
|
|
52
|
+
return this.getValContext('formControl');
|
|
53
|
+
}
|
|
54
|
+
get key() {
|
|
55
|
+
return this.getValContext('key');
|
|
56
|
+
}
|
|
57
|
+
get path() {
|
|
58
|
+
return this.getValContext('path');
|
|
59
|
+
}
|
|
60
|
+
get model() {
|
|
61
|
+
if (this.isFormlyMode) {
|
|
62
|
+
return this.getValContext('model');
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
return this.__model;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
set model(v) {
|
|
69
|
+
if (this.isFormlyMode) {
|
|
70
|
+
log.w(`[DualComponentController] You can't set model in formly component mode`);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.__model = v;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
get mode() {
|
|
77
|
+
if (this.isFormlyMode) {
|
|
78
|
+
return this.getValContext('mode');
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return this.__mode;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
set mode(v) {
|
|
85
|
+
if (this.isFormlyMode) {
|
|
86
|
+
// this.cmp.field.mode =
|
|
87
|
+
// log.w(`[DualComponentController] You can't set mode in formly component mode`);
|
|
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
|
+
this.cmp.change.next(v);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (_.isString(this.path)) {
|
|
109
|
+
_.set(this.cmp.model, this.path, v);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
this.cmp.model = v;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbC1jb21wb25lbnQtY3RybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9kdWFsLWNvbXBvbmVudC1jdHJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLekQsT0FBTyxFQUFFLEdBQUcsRUFBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUVsRCxNQUFNLE9BQWdCLHVCQUF1QjtJQUUzQyxZQUFzQixHQUF3QixFQUFTLGVBQWUsS0FBSztRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFxQjtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFRO0lBRTNFLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxZQUFvQjtRQUNsRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQ3pELElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMvQjtZQUNELE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVTLGFBQWEsQ0FBQyxZQUFvQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxH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QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDcEI7SUFDSCxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgQmFzZUZvcm1seUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1mb3JtbHktY29tcG9uZW50JztcbmltcG9ydCB7IENMQVNTIH0gZnJvbSAndHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL2Jyb3dzZXInO1xuaW1wb3J0IHsgICBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgQWZ0ZXJWaWV3SW5pdCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgICBGb3JtQ29udHJvbCwgICBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgTG9nLCBMZXZlbCB9IGZyb20gJ25nMi1sb2dnZXIvYnJvd3Nlcic7XG5jb25zdCBsb2cgPSBMb2cuY3JlYXRlKGBEdWFsQ29tcG9uZW50Q29udHJvbGxlcmApO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHVhbENvbXBvbmVudENvbnRyb2xsZXI8VCA9IGFueT4ge1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjbXA6IEJhc2VGb3JtbHlDb21wb25lbnQsIHB1YmxpYyBpc0Zvcm1seU1vZGUgPSBmYWxzZSkge1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VmFsVGVtcGxhdGVPcHRpb25zKHByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG4gICAgICBjb25zdCByZXMgPSB0aGlzLmNtcC5maWVsZD8udGVtcGxhdGVPcHRpb25zW3Byb3BlcnR5TmFtZV1cbiAgICAgIGlmIChyZXMgPT09IHZvaWQgMCAmJiB0aGlzLmNtcFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNtcFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY21wW3Byb3BlcnR5TmFtZV1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRWYWxDb250ZXh0KHByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG4gICAgICBjb25zdCByZXMgPSB0aGlzLmNtcD8uZmllbGRbcHJvcGVydHlOYW1lXVxuICAgICAgaWYgKHJlcyA9PT0gdm9pZCAwICYmIHRoaXMuY21wW3Byb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY21wW3Byb3BlcnR5TmFtZV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jbXBbcHJvcGVydHlOYW1lXVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbFRlbXBsYXRlT3B0aW9ucygnZGlzYWJsZWQnKSBhcyBib29sZWFuO1xuICB9XG5cbiAgZ2V0IHJlcXVpcmVkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbFRlbXBsYXRlT3B0aW9ucygncmVxdWlyZWQnKSBhcyBib29sZWFuO1xuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgaWYgKCF0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgcmV0dXJuIENMQVNTLmdldE5hbWVGcm9tT2JqZWN0KHRoaXMuY21wKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRWYWxDb250ZXh0KCd0eXBlJykgYXMgYm9vbGVhbjtcbiAgfVxuXG4gIGdldCBsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxUZW1wbGF0ZU9wdGlvbnMoJ2xhYmVsJykgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbFRlbXBsYXRlT3B0aW9ucygncGxhY2Vob2xkZXInKSBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXQgZGVmYXVsdFZhbHVlKCk6IFQge1xuICAgIHJldHVybiB0aGlzLmdldFZhbENvbnRleHQoJ2RlZmF1bHRWYWx1ZScpIGFzIGFueTtcbiAgfVxuXG4gIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsQ29udGV4dCgnZm9ybUNvbnRyb2wnKSBhcyBhbnk7XG4gIH1cblxuICBnZXQga2V5KCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbENvbnRleHQoJ2tleScpIGFzIHN0cmluZztcbiAgfVxuXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbENvbnRleHQoJ3BhdGgnKSBhcyBzdHJpbmc7XG4gIH1cblxuICBfX21vZGVsOiBhbnk7XG4gIGdldCBtb2RlbCgpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsQ29udGV4dCgnbW9kZWwnKSBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9fbW9kZWw7XG4gICAgfVxuICB9XG5cbiAgc2V0IG1vZGVsKHYpIHtcbiAgICBpZiAodGhpcy5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIGxvZy53KGBbRHVhbENvbXBvbmVudENvbnRyb2xsZXJdIFlvdSBjYW4ndCBzZXQgbW9kZWwgaW4gZm9ybWx5IGNvbXBvbmVudCBtb2RlYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19tb2RlbCA9IHY7XG4gICAgfVxuICB9XG5cbiAgX19tb2RlOiBhbnk7XG4gIGdldCBtb2RlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRWYWxDb250ZXh0KCdtb2RlJykgYXMgc3RyaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fX21vZGU7XG4gICAgfVxuICB9XG5cbiAgc2V0IG1vZGUodikge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgLy8gdGhpcy5jbXAuZmllbGQubW9kZSA9XG4gICAgICAvLyBsb2cudyhgW0R1YWxDb21wb25lbnRDb250cm9sbGVyXSBZb3UgY2FuJ3Qgc2V0IG1vZGUgaW4gZm9ybWx5IGNvbXBvbmVudCBtb2RlYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19tb2RlID0gdjtcbiAgICB9XG4gIH1cblxuXG4gIGdldCB2YWx1ZSgpOiBUIHtcbiAgICBpZiAodGhpcy5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNtcC5maWVsZC5mb3JtQ29udHJvbC52YWx1ZTtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcodGhpcy5wYXRoKSkge1xuICAgICAgcmV0dXJuIF8uZ2V0KHRoaXMuY21wLm1vZGVsLCB0aGlzLnBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jbXAubW9kZWw7XG4gIH1cblxuICBzZXQgdmFsdWUodikge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgdGhpcy5jbXAuZmllbGQuZm9ybUNvbnRyb2wuc2V0VmFsdWUodik7XG4gICAgICB0aGlzLmNtcC5jaGFuZ2UubmV4dCh2KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcodGhpcy5wYXRoKSkge1xuICAgICAgXy5zZXQodGhpcy5jbXAubW9kZWwsIHRoaXMucGF0aCwgdik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY21wLm1vZGVsID0gdjtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { _ } from 'tnp-core/browser';
|
|
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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy1hcnJheS1vYmoudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbEMsTUFBTSxPQUFPLGVBQWU7SUFFMUIsSUFBSSxDQUFDLENBQW9CO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQixPQUFPLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtTQUNwQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRztRQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FDZjtRQUNELE9BQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxzQkFBc0IsQ0FBVSxHQUFVLEVBQUUsQ0FBTSxFQUFFLENBQU0sRUFBRSxJQUFjO1FBQ3hFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFD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Q0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakUsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25ELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ25HLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0ICogYXMgZnV6enkgZnJvbSAnZnV6enknO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgY2xhc3MgSGVscGVyc0FycmF5T2JqIHtcblxuICBmcm9tKHM6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChfLmlzQXJyYXkocykpIHtcbiAgICAgIHJldHVybiBzO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhzKSkge1xuICAgICAgcmV0dXJuIHMuc3BsaXQoJyAnKVxuICAgIH1cbiAgfVxuXG4gIHNlY29uZChhcnIpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyKSB8fCBhcnIubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgcmV0dXJuICBhcnJbMV07XG4gIH1cblxuICBhcnJheU1vdmVFbGVtZW50QmVmb3JlPFQgPSBhbnk+KGFycjogYW55W10sIGE6IGFueSwgYjogYW55LCBwcm9wPzoga2V5b2YgVCkge1xuICAgIGxldCBpbmRleEEgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGFbcHJvcF0pIDogYXJyLmluZGV4T2YoYSk7XG4gICAgXy5wdWxsQXQoYXJyLCBpbmRleEEpO1xuICAgIGxldCBpbmRleEIgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGJbcHJvcF0pIDogYXJyLmluZGV4T2YoYik7XG4gICAgaWYgKGluZGV4QiA9PT0gMCkge1xuICAgICAgYXJyLnVuc2hpZnQoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCIC0gMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cbiAgYXJyYXlNb3ZlRWxlbWVudEFmdGVyQjxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBhW3Byb3BdKSA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKSA6IGFyci5pbmRleE9mKGIpO1xuICAgIGlmIChpbmRleEIgPT09IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICBhcnIucHVzaChhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyLnNwbGljZShpbmRleEIgKyAxLCAwLCBhKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHVuaXFBcnJheTxUID0gYW55PihhcnJheTogYW55W10sIHVuaXF1ZVByb3BlcnR5PzogKGtleW9mIFQpKSB7XG4gICAgdmFyIHNlZW4gPSB7fTtcbiAgICByZXR1cm4gYXJyYXlcbiAgICAgIC5maWx0ZXIoZiA9PiAhIWYpXG4gICAgICAuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBzZWVuLmhhc093blByb3BlcnR5KHVuaXF1ZVByb3BlcnR5ID8gaXRlbVt1bmlxdWVQcm9wZXJ0eV0gOiBpdGVtKSA/IGZhbHNlXG4gICAgICAgICAgOiAoc2Vlblt1bmlxdWVQcm9wZXJ0eSA/IGl0ZW1bdW5pcXVlUHJvcGVydHldIDogaXRlbV0gPSB0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc29ydEtleXMob2JqKSB7XG4gICAgaWYgKF8uaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcChIZWxwZXJzLmFycmF5cy5zb3J0S2V5cyk7XG4gICAgfVxuICAgIGlmIChfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgIHJldHVybiBfLmZyb21QYWlycyhfLmtleXMob2JqKS5zb3J0KCkubWFwKGtleSA9PiBba2V5LCBIZWxwZXJzLmFycmF5cy5zb3J0S2V5cyhvYmpba2V5XSldKSk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1enp5IHNlYXJjaFxuICAgKi9cbiAgZnV6enk8VCA9IGFueT4ocXVlcnk6IHN0cmluZywgbGlzdDogVFtdLCB2YWx1ZUZuPzogKG1vZGVsRnJvbUxpc3Q6IFQpID0+IHN0cmluZykge1xuICAgIGNvbnN0IHJlc3VsdHNGdXp6eSA9IGZ1enp5LmZpbHRlcihcbiAgICAgIHF1ZXJ5LFxuICAgICAgbGlzdC5tYXAoayA9PiB2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspLFxuICAgIClcbiAgICBjb25zdCByZXN1bHRzRnV6enlLZWJhYiA9IGZ1enp5LmZpbHRlcihcbiAgICAgIF8ua2ViYWJDYXNlKHF1ZXJ5KSxcbiAgICAgIGxpc3QubWFwKGsgPT4gXy5rZWJhYkNhc2UoKHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogaykgYXMgYW55KSksXG4gICAgKVxuICAgIGNvbnN0IG1hdGNoZXMgPSByZXN1bHRzRnV6enkubWFwKChlbCkgPT4gZWwuc3RyaW5nKTtcbiAgICBjb25zdCBtYXRjaGVzS2ViYWIgPSByZXN1bHRzRnV6enlLZWJhYi5tYXAoKGVsKSA9PiBlbC5zdHJpbmcpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IChyZXN1bHRzRnV6enkubGVuZ3RoID09PSAwKSA/IFtdIDogbGlzdC5maWx0ZXIoayA9PiB7XG4gICAgICByZXR1cm4gbWF0Y2hlcy5pbmNsdWRlcygodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpO1xuICAgIH0pXG5cbiAgICBpZiAobWF0Y2hlcy5sZW5ndGggPT09IDAgJiYgbWF0Y2hlc0tlYmFiLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG0gPSBsaXN0LmZpbmQoayA9PiBfLmtlYmFiQ2FzZSgodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpID09PSBfLmZpcnN0KG1hdGNoZXNLZWJhYikpO1xuICAgICAgcmVzdWx0cy5wdXNoKG0pO1xuICAgICAgbWF0Y2hlcy5wdXNoKCh2YWx1ZUZuID8gdmFsdWVGbihtKSA6IG0pIGFzIGFueSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgbWF0Y2hlcywgcmVzdWx0cyB9O1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { _, } from 'tnp-core/browser';
|
|
2
|
+
export class HelpersEnvironment {
|
|
3
|
+
environmentName(filename, local_env_name) {
|
|
4
|
+
}
|
|
5
|
+
isValidGitRepuUrl(url) {
|
|
6
|
+
const regex = /^([A-Za-z0-9]+@|http(|s)\:\/\/)([A-Za-z0-9.]+(:\d+)?)(?::|\/)([\d\/\w.-]+?)(\.git)?$/;
|
|
7
|
+
const res = regex.test(url);
|
|
8
|
+
return res;
|
|
9
|
+
}
|
|
10
|
+
isValidIp(ip) {
|
|
11
|
+
if (!_.isString(ip)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
ip = ip.trim();
|
|
15
|
+
if (ip === 'localhost') {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
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);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBSSxDQUFDLEdBQUksTUFBTSxrQkFBa0IsQ0FBQztBQUd6QyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLGVBQWUsQ0FBQyxRQUFRLEVBQUUsY0FBYztJQUV4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBVztRQUMzQixNQUFNLEtBQUssR0FBRyxzRkFBc0YsQ0FBQztRQUNyRyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFVO1FBQ2xCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2YsSUFBSSxFQUFFLEtBQUssV0FBVyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLGtLQUFrSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNwTCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgICBfLCAgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuXG5leHBvcnQgY2xhc3MgSGVscGVyc0Vudmlyb25tZW50IHtcblxuICBlbnZpcm9ubWVudE5hbWUoZmlsZW5hbWUsIGxvY2FsX2Vudl9uYW1lKSB7XG5cbiAgfVxuXG4gIGlzVmFsaWRHaXRSZXB1VXJsKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnZXggPSAvXihbQS1aYS16MC05XStAfGh0dHAofHMpXFw6XFwvXFwvKShbQS1aYS16MC05Ll0rKDpcXGQrKT8pKD86OnxcXC8pKFtcXGRcXC9cXHcuLV0rPykoXFwuZ2l0KT8kLztcbiAgICBjb25zdCByZXMgPSByZWdleC50ZXN0KHVybCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGlzVmFsaWRJcChpcDogc3RyaW5nKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKGlwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpcCA9IGlwLnRyaW0oKTtcbiAgICBpZiAoaXAgPT09ICdsb2NhbGhvc3QnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC9eKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykkLy50ZXN0KGlwKVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { _ } from 'tnp-core/browser';
|
|
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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsb0JBQW9CLENBQUMsQ0FBUztRQUM1QixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFTLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBQ0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU87WUFDTDs7Ozs7Ozs7YUFRQztZQUNELElBQUksbUJBQW1CO2dCQUNyQixNQUFNLEtBQUssR0FBRyw0TEFBNEwsQ0FBQztnQkFDM00sT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0Q7Ozs7Ozs7Ozs7WUFVQTtZQUNBLElBQUksdUJBQXVCO2dCQUN6QixNQUFNLEtBQUssR0FBRyxrSUFBa0ksQ0FBQztnQkFDakosT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5leHBvcnQgY2xhc3MgSGVscGVyc1N0cmluZ3NSZWdleGVzIHtcblxuXG5cbiAgZXNjYXBlU3RyaW5nRm9yUmVnRXgoczogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHMucmVwbGFjZSgvWy1cXC9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyk7XG4gIH1cblxuICBtYXRjaEV4YWN0T25jZShzOiBzdHJpbmcsIHJlZ2V4OiBSZWdFeHApOiBzdHJpbmcge1xuICAgIGlmICghXy5pc1N0cmluZyhzKSB8fCAhXy5pc1JlZ0V4cChyZWdleCkpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHMubWF0Y2gocmVnZXgpO1xuICAgIGlmIChfLmlzTmlsKHJlc3VsdCkpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQubGVuZ3RoID49IDEgPyBfLmZpcnN0KHJlc3VsdCkgOiB2b2lkIDA7XG4gIH1cblxuICBnZXQgcmVnZXgoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8qKlxuICAgICAqIG1hdGhlc1xuICAgICAqIHh4eC54eHgueHh4Lnh4eFxuICAgICAqIHh4eC54eHgueHh4Lnh4eDpwb3J0XG4gICAgICogaHR0cDovL3h4eC54eHgueHh4Lnh4eDpwb3J0XG4gICAgICogaHR0cDovL3h4eC54eHgueHh4Lnh4eFxuICAgICAqIGh0dHBzOi8veHh4Lnh4eC54eHgueHh4OnBvcnRcbiAgICAgKiBodHRwczovL3h4eC54eHgueHh4Lnh4eCAgICpcbiAgICAgKi9cbiAgICAgIGdldCBmb3JTdHJpbmdXaXRoSXBIb3N0KCkge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oaHR0cChzKT9cXDpcXC9cXC8pPygyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pKFxcOlswLTldKyk/LztcbiAgICAgICAgcmV0dXJuIHJlZ2V4O1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICogbWF0aGVzXG4gICAgKiBodHRwOi8vZG9tYWluLmNvbTpwb3J0XG4gICAgKiBodHRwOi8vZG9tYWluLmNvbVxuICAgICogaHR0cDovL2RvbWFpbjpwb3J0XG4gICAgKiBodHRwOi8vZG9tYWluXG4gICAgKiBodHRwczovL2RvbWFpbi5jb206cG9ydFxuICAgICogaHR0cHM6Ly9kb21haW4uY29tXG4gICAgKiBodHRwczovL2RvbWFpbjpwb3J0XG4gICAgKiBodHRwczovL2RvbWFpblxuICAgICovXG4gICAgICBnZXQgZm9yU3RyaW5nV2l0aERvbWFpbkhvc3QoKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gLygoKGh0dHAocyk/XFw6XFwvXFwvKT9bYS16QS1aMC05XVthLXpBLVowLTktXXsxLDYxfVthLXpBLVowLTldKD86XFwuW2EtekEtWl17Mix9KSsoXFw6WzAtOV0rKT8pfCgoaHR0cChzKT9cXDpcXC9cXC8pW2EtekEtWjAtOS1dezEsNjF9KSkvO1xuICAgICAgICByZXR1cm4gcmVnZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { _ } from 'tnp-core/browser';
|
|
2
|
+
export class HelpersStrings {
|
|
3
|
+
/**
|
|
4
|
+
* Example:
|
|
5
|
+
*
|
|
6
|
+
* const result = interpolateString("I'm {age} years old!")
|
|
7
|
+
* .withParameters({ age: 29 });
|
|
8
|
+
*
|
|
9
|
+
* const result = interpolateString("The {a} says {n}, {n}, {n}!")
|
|
10
|
+
* .withParameters({ a: 'cow', n: 'moo' });
|
|
11
|
+
*
|
|
12
|
+
*
|
|
13
|
+
* @param value string to interpolate
|
|
14
|
+
* @param parameters object with parametes
|
|
15
|
+
*/
|
|
16
|
+
interpolateString(value) {
|
|
17
|
+
if (typeof value !== 'string') {
|
|
18
|
+
console.warn('[ss-logic][helper] Value for interpolation is not string: ', value);
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
withParameters(parameters) {
|
|
23
|
+
if (typeof parameters !== 'object') {
|
|
24
|
+
console.warn('[ss-logic][helper] Parameters are not a object: ', parameters);
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
return value.replace(/{([^{}]*)}/g, function (a, b) {
|
|
28
|
+
var r = parameters[b];
|
|
29
|
+
return typeof r === 'string' || typeof r === 'number' ? r : a;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
numValue(pixelsCss) {
|
|
35
|
+
// tslint:disable-next-line:radix
|
|
36
|
+
return parseInt(pixelsCss.replace('px', ''));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* examples:
|
|
40
|
+
* 'aa bb bb' => ['aa','bb','cc'],
|
|
41
|
+
* 'aa' => ['aa']
|
|
42
|
+
* ['aa'] => ['aa']
|
|
43
|
+
*/
|
|
44
|
+
splitIfNeed(stringOrArr) {
|
|
45
|
+
let res = [];
|
|
46
|
+
if (_.isArray(stringOrArr)) {
|
|
47
|
+
res = stringOrArr.map(s => {
|
|
48
|
+
return s.trim();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (_.isString(stringOrArr)) {
|
|
52
|
+
res = stringOrArr.split(/\s*[\s,]\s*/);
|
|
53
|
+
}
|
|
54
|
+
return res.filter(f => !!f && (f.trim() !== ''));
|
|
55
|
+
}
|
|
56
|
+
removeDoubleOrMoreEmptyLines(s) {
|
|
57
|
+
s = s?.split('\n').map(f => f.trimRight()).join('\n');
|
|
58
|
+
return s?.replace(/(\r\n|\r|\n){2,}/g, '$1\n');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckMsTUFBTSxPQUFPLGNBQWM7SUFFekI7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsaUJBQWlCLENBQVUsS0FBYTtRQUN0QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLDREQUE0RCxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xGLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPO1lBQ0wsY0FBYyxDQUFDLFVBQWE7Z0JBQzFCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFO29CQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtEQUFrRCxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUM3RSxPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ2hELElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEIsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEUsQ0FBUSxDQUFDLENBQUM7WUFDWixDQUFDO1NBQ0YsQ0FBQTtJQUVILENBQUM7SUFFRCxRQUFRLENBQUMsU0FBaUI7UUFDeEIsaUNBQWlDO1FBQ2pDLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLFdBQThCO1FBQ3hDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMxQixHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUE7U0FDSDtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQixHQUFHLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsQ0FBUztRQUNwQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzU3RyaW5ncyB7XG5cbiAgLyoqXG4gICAqIEV4YW1wbGU6XG4gICAqXG4gICAqIGNvbnN0IHJlc3VsdCA9IGludGVycG9sYXRlU3RyaW5nKFwiSSdtIHthZ2V9IHllYXJzIG9sZCFcIilcbiAgICogLndpdGhQYXJhbWV0ZXJzKHsgYWdlOiAyOSB9KTtcbiAgICpcbiAgICogY29uc3QgcmVzdWx0ID0gaW50ZXJwb2xhdGVTdHJpbmcoXCJUaGUge2F9IHNheXMge259LCB7bn0sIHtufSFcIilcbiAgICogLndpdGhQYXJhbWV0ZXJzKHsgYTogJ2NvdycsIG46ICdtb28nIH0pO1xuICAgKlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgc3RyaW5nIHRvIGludGVycG9sYXRlXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIG9iamVjdCB3aXRoIHBhcmFtZXRlc1xuICAgKi9cbiAgaW50ZXJwb2xhdGVTdHJpbmc8VCA9IGFueT4odmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tzcy1sb2dpY11baGVscGVyXSBWYWx1ZSBmb3IgaW50ZXJwb2xhdGlvbiBpcyBub3Qgc3RyaW5nOiAnLCB2YWx1ZSk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHdpdGhQYXJhbWV0ZXJzKHBhcmFtZXRlcnM6IFQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbWV0ZXJzICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGNvbnNvbGUud2FybignW3NzLWxvZ2ljXVtoZWxwZXJdIFBhcmFtZXRlcnMgYXJlIG5vdCBhIG9iamVjdDogJywgcGFyYW1ldGVycyk7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC97KFtee31dKil9L2csIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgdmFyIHIgPSBwYXJhbWV0ZXJzW2JdO1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHIgPT09ICdudW1iZXInID8gciA6IGE7XG4gICAgICAgIH0gYXMgYW55KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIG51bVZhbHVlKHBpeGVsc0Nzczogc3RyaW5nKSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnJhZGl4XG4gICAgcmV0dXJuIHBhcnNlSW50KHBpeGVsc0Nzcy5yZXBsYWNlKCdweCcsICcnKSk7XG4gIH1cblxuICAvKipcbiAgICogZXhhbXBsZXM6XG4gICAqICdhYSBiYiBiYicgPT4gWydhYScsJ2JiJywnY2MnXSxcbiAgICogJ2FhJyA9PiBbJ2FhJ11cbiAgICogWydhYSddID0+IFsnYWEnXVxuICAgKi9cbiAgc3BsaXRJZk5lZWQoc3RyaW5nT3JBcnI6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGxldCByZXMgPSBbXTtcbiAgICBpZiAoXy5pc0FycmF5KHN0cmluZ09yQXJyKSkge1xuICAgICAgcmVzID0gc3RyaW5nT3JBcnIubWFwKHMgPT4ge1xuICAgICAgICByZXR1cm4gcy50cmltKCk7XG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhzdHJpbmdPckFycikpIHtcbiAgICAgIHJlcyA9IHN0cmluZ09yQXJyLnNwbGl0KC9cXHMqW1xccyxdXFxzKi8pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLmZpbHRlcihmID0+ICEhZiAmJiAoZi50cmltKCkgIT09ICcnKSk7XG4gIH1cblxuICByZW1vdmVEb3VibGVPck1vcmVFbXB0eUxpbmVzKHM6IHN0cmluZykge1xuICAgIHMgPSBzPy5zcGxpdCgnXFxuJykubWFwKGYgPT4gZi50cmltUmlnaHQoKSkuam9pbignXFxuJyk7XG4gICAgcmV0dXJuIHM/LnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbil7Mix9L2csICckMVxcbicpO1xuICB9XG5cbn1cblxuIl19
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { _ } from 'tnp-core/browser';
|
|
2
|
+
import { HelpersArrayObj } from './helpers-array-obj';
|
|
3
|
+
import { HelpersStringsRegexes } from './helpers-strings-regexes';
|
|
4
|
+
import { HelpersEnvironment } from './helpers-environment';
|
|
5
|
+
import { HelpersStrings } from './helpers-strings';
|
|
6
|
+
import { conditionWait } from './condition-wait';
|
|
7
|
+
import { Helpers } from './index';
|
|
8
|
+
import { CLASS } from 'typescript-class-helpers/browser';
|
|
9
|
+
import { Morphi } from 'morphi/browser';
|
|
10
|
+
import { CoreHelpers } from 'tnp-core/browser';
|
|
11
|
+
export function applyMixins(derivedCtor, baseCtors) {
|
|
12
|
+
baseCtors.forEach(baseCtor => {
|
|
13
|
+
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
|
|
14
|
+
Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
export class HelpersTnp extends CoreHelpers {
|
|
20
|
+
constructor(arrays = new HelpersArrayObj(), strings = new HelpersStrings()) {
|
|
21
|
+
super();
|
|
22
|
+
this.arrays = arrays;
|
|
23
|
+
this.strings = strings;
|
|
24
|
+
this.conditionWait = conditionWait;
|
|
25
|
+
this.applyMixins = applyMixins;
|
|
26
|
+
}
|
|
27
|
+
static get Instance() {
|
|
28
|
+
if (!HelpersTnp._instance) {
|
|
29
|
+
HelpersTnp._instance = new HelpersTnp();
|
|
30
|
+
}
|
|
31
|
+
return HelpersTnp._instance;
|
|
32
|
+
}
|
|
33
|
+
CLIWRAP(f, name) {
|
|
34
|
+
CLASS.setName(f, name);
|
|
35
|
+
return f;
|
|
36
|
+
}
|
|
37
|
+
async isElevated() {
|
|
38
|
+
}
|
|
39
|
+
async mesureExectionInMs(description, functionToExecute, ...functionArguments) {
|
|
40
|
+
var start = new Date();
|
|
41
|
+
await Helpers.runSyncOrAsync(functionToExecute, ...functionArguments);
|
|
42
|
+
//@ts-ignore
|
|
43
|
+
var end = new Date() - start;
|
|
44
|
+
if (Morphi.IsBrowser) {
|
|
45
|
+
Helpers.info(`Execution time: ${end.toString()}ms for "${description}"`);
|
|
46
|
+
}
|
|
47
|
+
return end;
|
|
48
|
+
}
|
|
49
|
+
mesureExectionInMsSync(description, functionToExecute) {
|
|
50
|
+
var start = new Date();
|
|
51
|
+
functionToExecute();
|
|
52
|
+
//@ts-ignore
|
|
53
|
+
var end = new Date() - start;
|
|
54
|
+
if (Morphi.IsBrowser) {
|
|
55
|
+
Helpers.info(`Execution time: ${end.toString()}ms for "${description}"`);
|
|
56
|
+
}
|
|
57
|
+
return end;
|
|
58
|
+
}
|
|
59
|
+
waitForCondition(conditionFn, howOfftenCheckInMs = 1000) {
|
|
60
|
+
return new Promise(async (resolve, reject) => {
|
|
61
|
+
const result = await Helpers.runSyncOrAsync(conditionFn);
|
|
62
|
+
if (result) {
|
|
63
|
+
resolve(void 0);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
Helpers.waitForCondition(conditionFn, howOfftenCheckInMs).then(() => {
|
|
68
|
+
resolve(void 0);
|
|
69
|
+
});
|
|
70
|
+
}, howOfftenCheckInMs);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
getBrowserVerPath(moduleName) {
|
|
75
|
+
}
|
|
76
|
+
getMethodName(obj, method) {
|
|
77
|
+
var methodName = null;
|
|
78
|
+
Object.getOwnPropertyNames(obj).forEach(prop => {
|
|
79
|
+
if (obj[prop] === method) {
|
|
80
|
+
methodName = prop;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
if (methodName !== null) {
|
|
84
|
+
return methodName;
|
|
85
|
+
}
|
|
86
|
+
var proto = Object.getPrototypeOf(obj);
|
|
87
|
+
if (proto) {
|
|
88
|
+
return Helpers.getMethodName(proto, method);
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
fixWebpackEnv(env) {
|
|
93
|
+
_.forIn(env, (v, k) => {
|
|
94
|
+
const value = v;
|
|
95
|
+
if (value === 'true')
|
|
96
|
+
env[k] = true;
|
|
97
|
+
if (value === 'false')
|
|
98
|
+
env[k] = false;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
applyMixins(HelpersTnp, [
|
|
103
|
+
HelpersStringsRegexes,
|
|
104
|
+
HelpersEnvironment,
|
|
105
|
+
]);
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE1BQU0sVUFBVSxXQUFXLENBQUMsV0FBZ0IsRUFBRSxTQUFnQjtJQUM1RCxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzNCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoSCxDQUFDLENBQUMsQ0FB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SSxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxFQUFFO2dCQUN4QixVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUU7WUFDdkIsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFFRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sS0FBSyxHQUFXLENBQVEsQ0FBQztZQUMvQixJQUFJLEtBQUssS0FBSyxNQUFNO2dCQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDcEMsSUFBSSxLQUFLLEtBQUssT0FBTztnQkFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQU1GO0FBU0QsV0FBVyxDQUFDLFVBQVUsRUFBRTtJQUN0QixxQkFBcUI7SUFDckIsa0JBQWtCO0NBRW5CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzQXJyYXlPYmogfSBmcm9tICcuL2hlbHBlcnMtYXJyYXktb2JqJztcbmltcG9ydCB7IEhlbHBlcnNTdHJpbmdzUmVnZXhlcyB9IGZyb20gJy4vaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMnO1xuaW1wb3J0IHsgSGVscGVyc0Vudmlyb25tZW50IH0gZnJvbSAnLi9oZWxwZXJzLWVudmlyb25tZW50JztcbmltcG9ydCB7IEhlbHBlcnNTdHJpbmdzIH0gZnJvbSAnLi9oZWxwZXJzLXN0cmluZ3MnO1xuaW1wb3J0IHsgY29uZGl0aW9uV2FpdCB9IGZyb20gJy4vY29uZGl0aW9uLXdhaXQnO1xuXG5pbXBvcnQgeyBjb25maWcsIENvbmZpZ01vZGVscyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7IE1vcnBoaSB9IGZyb20gJ21vcnBoaS9icm93c2VyJztcbmltcG9ydCB7IENvcmVIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU1peGlucyhkZXJpdmVkQ3RvcjogYW55LCBiYXNlQ3RvcnM6IGFueVtdKSB7XG4gIGJhc2VDdG9ycy5mb3JFYWNoKGJhc2VDdG9yID0+IHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiYXNlQ3Rvci5wcm90b3R5cGUpLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVyaXZlZEN0b3IucHJvdG90eXBlLCBuYW1lLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2VDdG9yLnByb3RvdHlwZSwgbmFtZSkpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNsYXNzIEhlbHBlcnNUbnAgZXh0ZW5kcyBDb3JlSGVscGVycyB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBIZWxwZXJzVG5wICYgQ29yZUhlbHBlcnM7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEluc3RhbmNlKCkge1xuICAgIGlmICghSGVscGVyc1RucC5faW5zdGFuY2UpIHtcbiAgICAgIEhlbHBlcnNUbnAuX2luc3RhbmNlID0gbmV3IEhlbHBlcnNUbnAoKTtcbiAgICB9XG4gICAgcmV0dXJuIEhlbHBlcnNUbnAuX2luc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcblxuICAgIHB1YmxpYyBhcnJheXMgPSBuZXcgSGVscGVyc0FycmF5T2JqKCksXG4gICAgcHVibGljIHN0cmluZ3MgPSBuZXcgSGVscGVyc1N0cmluZ3MoKSxcblxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQ0xJV1JBUChmOiBGdW5jdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgQ0xBU1Muc2V0TmFtZShmLCBuYW1lKTtcbiAgICByZXR1cm4gZjtcbiAgfVxuXG5cblxuXG5cbiAgYXN5bmMgaXNFbGV2YXRlZCgpIHtcblxuICB9XG5cblxuXG5cblxuXG5cbiAgYXN5bmMgbWVzdXJlRXhlY3Rpb25Jbk1zKFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgZnVuY3Rpb25Ub0V4ZWN1dGU6IEZ1bmN0aW9uLFxuICAgIC4uLmZ1bmN0aW9uQXJndW1lbnRzOiBhbnlbXSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKVxuICAgIGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoZnVuY3Rpb25Ub0V4ZWN1dGUsIC4uLmZ1bmN0aW9uQXJndW1lbnRzKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB2YXIgZW5kID0gbmV3IERhdGUoKSAtIHN0YXJ0XG4gICAgaWYgKE1vcnBoaS5Jc0Jyb3dzZXIpIHtcbiAgICAgIEhlbHBlcnMuaW5mbyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cblxuICAgIHJldHVybiBlbmQ7XG4gIH1cblxuICBtZXN1cmVFeGVjdGlvbkluTXNTeW5jKFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgZnVuY3Rpb25Ub0V4ZWN1dGU6ICgpID0+IHZvaWQpOiBudW1iZXIge1xuICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKClcbiAgICBmdW5jdGlvblRvRXhlY3V0ZSgpO1xuICAgIC8vQHRzLWlnbm9yZVxuICAgIHZhciBlbmQgPSBuZXcgRGF0ZSgpIC0gc3RhcnRcbiAgICBpZiAoTW9ycGhpLklzQnJvd3Nlcikge1xuICAgICAgSGVscGVycy5pbmZvKGBFeGVjdXRpb24gdGltZTogJHtlbmQudG9TdHJpbmcoKX1tcyBmb3IgXCIke2Rlc2NyaXB0aW9ufVwiYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuXG4gIGNvbmRpdGlvbldhaXQgPSBjb25kaXRpb25XYWl0O1xuXG4gIHdhaXRGb3JDb25kaXRpb24oY29uZGl0aW9uRm46IChhbnkpID0+IGJvb2xlYW4sIGhvd09mZnRlbkNoZWNrSW5NcyA9IDEwMDApIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBIZWxwZXJzLnJ1blN5bmNPckFzeW5jKGNvbmRpdGlvbkZuKTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZSh2b2lkIDApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBIZWxwZXJzLndhaXRGb3JDb25kaXRpb24oY29uZGl0aW9uRm4sIGhvd09mZnRlbkNoZWNrSW5NcykudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHZvaWQgMCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfSwgaG93T2ZmdGVuQ2hlY2tJbk1zKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2V0QnJvd3NlclZlclBhdGgobW9kdWxlTmFtZT86IHN0cmluZykge1xuXG4gIH1cblxuICBnZXRNZXRob2ROYW1lKG9iaiwgbWV0aG9kKTogc3RyaW5nIHtcbiAgICB2YXIgbWV0aG9kTmFtZSA9IG51bGw7XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgaWYgKG9ialtwcm9wXSA9PT0gbWV0aG9kKSB7XG4gICAgICAgIG1ldGhvZE5hbWUgPSBwcm9wO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKG1ldGhvZE5hbWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBtZXRob2ROYW1lO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopO1xuICAgIGlmIChwcm90bykge1xuICAgICAgcmV0dXJuIEhlbHBlcnMuZ2V0TWV0aG9kTmFtZShwcm90bywgbWV0aG9kKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmaXhXZWJwYWNrRW52KGVudjogT2JqZWN0KSB7XG4gICAgXy5mb3JJbihlbnYsICh2LCBrKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdiBhcyBhbnk7XG4gICAgICBpZiAodmFsdWUgPT09ICd0cnVlJykgZW52W2tdID0gdHJ1ZTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJykgZW52W2tdID0gZmFsc2U7XG4gICAgfSlcbiAgfVxuXG5cblxuXG4gIHB1YmxpYyBhcHBseU1peGlucyA9IGFwcGx5TWl4aW5zO1xufVxuXG4vLyBAdHMtaWdub3JlXG5leHBvcnQgaW50ZXJmYWNlIEhlbHBlcnNUbnAgZXh0ZW5kc1xuICBIZWxwZXJzU3RyaW5nc1JlZ2V4ZXMsXG4gIEhlbHBlcnNFbnZpcm9ubWVudFxuXG57IH1cblxuYXBwbHlNaXhpbnMoSGVscGVyc1RucCwgW1xuICBIZWxwZXJzU3RyaW5nc1JlZ2V4ZXMsXG4gIEhlbHBlcnNFbnZpcm9ubWVudCxcblxuXSk7XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { HelpersTnp as Base } from './helpers';
|
|
2
|
+
export * from './constants';
|
|
3
|
+
// export * from './git-project';
|
|
4
|
+
export const Helpers = Base.Instance;
|
|
5
|
+
export * from './project';
|
|
6
|
+
export { BaseComponent, BaseComponentForRouter } from './base-component';
|
|
7
|
+
export { BaseFormlyComponent } from './base-formly-component';
|
|
8
|
+
export { DualComponentController } from './dual-component-ctrl';
|
|
9
|
+
export { ResizeService } from './resize-service';
|
|
10
|
+
export { LongPress } from './long-press.directive';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsSUFBSSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsY0FBYyxhQUFhLENBQUM7QUFHNUIsaUNBQWlDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0FBQ3JDLGNBQWMsV0FBVyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IEhlbHBlcnNUbnAgYXMgQmFzZSB9IGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuL2NvbmRpdGlvbi13YWl0JztcblxuLy8gZXhwb3J0ICogZnJvbSAnLi9naXQtcHJvamVjdCc7XG5leHBvcnQgY29uc3QgSGVscGVycyA9IEJhc2UuSW5zdGFuY2U7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QnO1xuXG5leHBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXNlQ29tcG9uZW50Rm9yUm91dGVyIH0gZnJvbSAnLi9iYXNlLWNvbXBvbmVudCc7XG5leHBvcnQgeyBCYXNlRm9ybWx5Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWZvcm1seS1jb21wb25lbnQnO1xuZXhwb3J0IHsgRHVhbENvbXBvbmVudENvbnRyb2xsZXIgfSBmcm9tICcuL2R1YWwtY29tcG9uZW50LWN0cmwnO1xuZXhwb3J0IHsgUmVzaXplU2VydmljZSB9IGZyb20gJy4vcmVzaXplLXNlcnZpY2UnO1xuZXhwb3J0IHsgTG9uZ1ByZXNzIH0gZnJvbSAnLi9sb25nLXByZXNzLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Directive, Input, Output, EventEmitter, HostBinding, HostListener } from '@angular/core';
|
|
2
|
+
import { _ } from 'tnp-core/browser';
|
|
3
|
+
import { Log, Level } from 'ng2-logger/browser';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const log = Log.create(`[tnp-helpers] long-press`, Level.__NOTHING);
|
|
6
|
+
export class LongPress {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.pressDuration = 1000;
|
|
9
|
+
this.onLongPress = new EventEmitter();
|
|
10
|
+
this.onLongPressing = new EventEmitter();
|
|
11
|
+
this.onLongPressEnd = new EventEmitter();
|
|
12
|
+
this.mouseX = 0;
|
|
13
|
+
this.mouseY = 0;
|
|
14
|
+
this.allowTrigger = false;
|
|
15
|
+
this.triggerEnd = _.debounce(() => {
|
|
16
|
+
this.endPress();
|
|
17
|
+
}, 500);
|
|
18
|
+
}
|
|
19
|
+
get press() { return this.pressing; }
|
|
20
|
+
get longPress() { return this.longPressing; }
|
|
21
|
+
onMouseDown(event) {
|
|
22
|
+
// don't do right/middle clicks
|
|
23
|
+
log.d(`MOUSE DOWN `);
|
|
24
|
+
if (event.which !== 1)
|
|
25
|
+
return;
|
|
26
|
+
this.allowTrigger = true;
|
|
27
|
+
this.mouseX = event.clientX;
|
|
28
|
+
this.mouseY = event.clientY;
|
|
29
|
+
this.pressing = true;
|
|
30
|
+
this.longPressing = false;
|
|
31
|
+
this.timeout = setTimeout(() => {
|
|
32
|
+
if (this.allowTrigger) {
|
|
33
|
+
this.longPressing = true;
|
|
34
|
+
log.d(`long pressing start pressDuration:${this.pressDuration} `);
|
|
35
|
+
this.onLongPress.emit(event);
|
|
36
|
+
this.loop(event);
|
|
37
|
+
}
|
|
38
|
+
}, this.pressDuration);
|
|
39
|
+
this.loop(event);
|
|
40
|
+
}
|
|
41
|
+
onMouseMove(event) {
|
|
42
|
+
if (this.pressing && !this.longPressing) {
|
|
43
|
+
const xThres = (event.clientX - this.mouseX) > 10;
|
|
44
|
+
const yThres = (event.clientY - this.mouseY) > 10;
|
|
45
|
+
if (xThres || yThres) {
|
|
46
|
+
this.endPress();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
loop(event) {
|
|
51
|
+
if (this.longPressing) {
|
|
52
|
+
this.timeout = setTimeout(() => {
|
|
53
|
+
log.d(`emil longpressing`);
|
|
54
|
+
this.triggerEnd();
|
|
55
|
+
this.onLongPressing.emit(event);
|
|
56
|
+
this.loop(event);
|
|
57
|
+
}, 50);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
endPress(emit = true) {
|
|
61
|
+
this.allowTrigger = false;
|
|
62
|
+
clearTimeout(this.timeout);
|
|
63
|
+
this.longPressing = false;
|
|
64
|
+
this.pressing = false;
|
|
65
|
+
if (emit) {
|
|
66
|
+
log.d(`EMIT END`);
|
|
67
|
+
this.onLongPressEnd.emit(true);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
log.d(`NOT EMIT END`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
onMouseUp() {
|
|
74
|
+
this.endPress(false);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
LongPress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: LongPress, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
78
|
+
LongPress.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: LongPress, selector: "[long-press]", inputs: { pressDuration: "pressDuration" }, outputs: { onLongPress: "onLongPress", onLongPressing: "onLongPressing", onLongPressEnd: "onLongPressEnd" }, host: { listeners: { "mousedown": "onMouseDown($event)", "mousemove": "onMouseMove($event)", "mouseup": "onMouseUp()" }, properties: { "class.press": "this.press", "class.longpress": "this.longPress" } }, ngImport: i0 });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: LongPress, decorators: [{
|
|
80
|
+
type: Directive,
|
|
81
|
+
args: [{ selector: '[long-press]' }]
|
|
82
|
+
}], propDecorators: { pressDuration: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], onLongPress: [{
|
|
85
|
+
type: Output
|
|
86
|
+
}], onLongPressing: [{
|
|
87
|
+
type: Output
|
|
88
|
+
}], onLongPressEnd: [{
|
|
89
|
+
type: Output
|
|
90
|
+
}], press: [{
|
|
91
|
+
type: HostBinding,
|
|
92
|
+
args: ['class.press']
|
|
93
|
+
}], longPress: [{
|
|
94
|
+
type: HostBinding,
|
|
95
|
+
args: ['class.longpress']
|
|
96
|
+
}], onMouseDown: [{
|
|
97
|
+
type: HostListener,
|
|
98
|
+
args: ['mousedown', ['$event']]
|
|
99
|
+
}], onMouseMove: [{
|
|
100
|
+
type: HostListener,
|
|
101
|
+
args: ['mousemove', ['$event']]
|
|
102
|
+
}], onMouseUp: [{
|
|
103
|
+
type: HostListener,
|
|
104
|
+
args: ['mouseup']
|
|
105
|
+
}] } });
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9uZy1wcmVzcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvbG9uZy1wcmVzcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFJLFNBQVMsRUFBSSxLQUFLLEVBQUksTUFBTSxFQUFJLFlBQVksRUFBSSxXQUFXLEVBQUksWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlHLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUNoRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLDBCQUEwQixFQUM3QyxLQUFLLENBQUMsU0FBUyxDQUNsQixDQUFBO0FBR0QsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFHVyxrQkFBYSxHQUFXLElBQUksQ0FBQztRQUU1QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt6RCxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFRM0IsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7S0FvRVI7SUE3RUMsSUFDSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVyQyxJQUNJLFNBQVMsS0FBSyxP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MkZBQVQsU0FBUztrQkFEckIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7OEJBRzVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBU0gsS0FBSztzQkFEUixXQUFXO3VCQUFDLGFBQWE7Z0JBSXRCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxpQkFBaUI7Z0JBUzlCLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkJyQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9DckMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgICBEaXJlY3RpdmUsICAgSW5wdXQsICAgT3V0cHV0LCAgIEV2ZW50RW1pdHRlciwgICBIb3N0QmluZGluZywgICBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBMb2csIExldmVsIH0gZnJvbSAnbmcyLWxvZ2dlci9icm93c2VyJztcbmNvbnN0IGxvZyA9IExvZy5jcmVhdGUoYFt0bnAtaGVscGVyc10gbG9uZy1wcmVzc2BcbiAgLCBMZXZlbC5fX05PVEhJTkdcbilcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2xvbmctcHJlc3NdJyB9KVxuZXhwb3J0IGNsYXNzIExvbmdQcmVzcyB7XG5cbiAgQElucHV0KCkgcHJlc3NEdXJhdGlvbjogbnVtYmVyID0gMTAwMDtcblxuICBAT3V0cHV0KCkgb25Mb25nUHJlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Mb25nUHJlc3Npbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Mb25nUHJlc3NFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgcHJlc3Npbmc6IGJvb2xlYW47XG4gIHByaXZhdGUgbG9uZ1ByZXNzaW5nOiBib29sZWFuO1xuICBwcml2YXRlIHRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBtb3VzZVg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgbW91c2VZOiBudW1iZXIgPSAwO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucHJlc3MnKVxuICBnZXQgcHJlc3MoKSB7IHJldHVybiB0aGlzLnByZXNzaW5nOyB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sb25ncHJlc3MnKVxuICBnZXQgbG9uZ1ByZXNzKCkgeyByZXR1cm4gdGhpcy5sb25nUHJlc3Npbmc7IH1cblxuICBhbGxvd1RyaWdnZXIgPSBmYWxzZTtcbiAgdHJpZ2dlckVuZCA9IF8uZGVib3VuY2UoKCkgPT4ge1xuICAgIHRoaXMuZW5kUHJlc3MoKTtcbiAgfSwgNTAwKVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VEb3duKGV2ZW50KSB7XG4gICAgLy8gZG9uJ3QgZG8gcmlnaHQvbWlkZGxlIGNsaWNrc1xuICAgIGxvZy5kKGBNT1VTRSBET1dOIGApO1xuXG4gICAgaWYgKGV2ZW50LndoaWNoICE9PSAxKSByZXR1cm47XG4gICAgdGhpcy5hbGxvd1RyaWdnZXIgPSB0cnVlO1xuXG4gICAgdGhpcy5tb3VzZVggPSBldmVudC5jbGllbnRYO1xuICAgIHRoaXMubW91c2VZID0gZXZlbnQuY2xpZW50WTtcblxuICAgIHRoaXMucHJlc3NpbmcgPSB0cnVlO1xuICAgIHRoaXMubG9uZ1ByZXNzaW5nID0gZmFsc2U7XG5cbiAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmFsbG93VHJpZ2dlcikge1xuICAgICAgICB0aGlzLmxvbmdQcmVzc2luZyA9IHRydWU7XG4gICAgICAgIGxvZy5kKGBsb25nIHByZXNzaW5nIHN0YXJ0ICBwcmVzc0R1cmF0aW9uOiR7dGhpcy5wcmVzc0R1cmF0aW9ufSBgKTtcbiAgICAgICAgdGhpcy5vbkxvbmdQcmVzcy5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5sb29wKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9LCB0aGlzLnByZXNzRHVyYXRpb24pO1xuXG4gICAgdGhpcy5sb29wKGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VNb3ZlKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMucHJlc3NpbmcgJiYgIXRoaXMubG9uZ1ByZXNzaW5nKSB7XG4gICAgICBjb25zdCB4VGhyZXMgPSAoZXZlbnQuY2xpZW50WCAtIHRoaXMubW91c2VYKSA+IDEwO1xuICAgICAgY29uc3QgeVRocmVzID0gKGV2ZW50LmNsaWVudFkgLSB0aGlzLm1vdXNlWSkgPiAxMDtcbiAgICAgIGlmICh4VGhyZXMgfHwgeVRocmVzKSB7XG4gICAgICAgIHRoaXMuZW5kUHJlc3MoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsb29wKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMubG9uZ1ByZXNzaW5nKSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgbG9nLmQoYGVtaWwgbG9uZ3ByZXNzaW5nYClcbiAgICAgICAgdGhpcy50cmlnZ2VyRW5kKCk7XG4gICAgICAgIHRoaXMub25Mb25nUHJlc3NpbmcuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMubG9vcChldmVudCk7XG4gICAgICB9LCA1MCk7XG4gICAgfVxuICB9XG5cbiAgZW5kUHJlc3MoZW1pdCA9IHRydWUpIHtcbiAgICB0aGlzLmFsbG93VHJpZ2dlciA9IGZhbHNlO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgIHRoaXMubG9uZ1ByZXNzaW5nID0gZmFsc2U7XG4gICAgdGhpcy5wcmVzc2luZyA9IGZhbHNlO1xuICAgIGlmIChlbWl0KSB7XG4gICAgICBsb2cuZChgRU1JVCBFTkRgKVxuICAgICAgdGhpcy5vbkxvbmdQcmVzc0VuZC5lbWl0KHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZChgTk9UIEVNSVQgRU5EYClcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJylcbiAgb25Nb3VzZVVwKCkge1xuICAgIHRoaXMuZW5kUHJlc3MoZmFsc2UpO1xuICB9XG5cbn1cbiJdfQ==
|