tnp-helpers 13.1.15 → 13.1.17

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.
Files changed (41) hide show
  1. package/app.js +3 -3
  2. package/browser/esm2020/lib/angular.helper.mjs +88 -0
  3. package/browser/esm2020/lib/helpers-numbers.mjs +1 -1
  4. package/browser/esm2020/lib/helpers.mjs +4 -2
  5. package/browser/esm2020/lib/index.mjs +2 -1
  6. package/browser/fesm2015/tnp-helpers.mjs +91 -2
  7. package/browser/fesm2020/tnp-helpers.mjs +91 -2
  8. package/browser/lib/angular.helper.d.ts +37 -0
  9. package/browser/lib/helpers.d.ts +2 -0
  10. package/browser/lib/index.d.ts +1 -0
  11. package/client/esm2020/lib/angular.helper.mjs +88 -0
  12. package/client/esm2020/lib/helpers-numbers.mjs +1 -1
  13. package/client/esm2020/lib/helpers.mjs +4 -2
  14. package/client/esm2020/lib/index.mjs +2 -1
  15. package/client/fesm2015/tnp-helpers.mjs +91 -2
  16. package/client/fesm2020/tnp-helpers.mjs +91 -2
  17. package/client/lib/angular.helper.d.ts +37 -0
  18. package/client/lib/helpers.d.ts +2 -0
  19. package/client/lib/index.d.ts +1 -0
  20. package/lib/angular.helper.d.ts +21 -7
  21. package/lib/angular.helper.js +3 -47
  22. package/lib/base-component.js +3 -3
  23. package/lib/base-formly-component.js +3 -3
  24. package/lib/dual-component-ctrl.js +3 -3
  25. package/lib/helpers-cli-tool.backend.js +1 -1
  26. package/lib/helpers-file-folders.backend.js +6 -6
  27. package/lib/helpers.d.ts +2 -0
  28. package/lib/helpers.js +2 -0
  29. package/lib/index.d.ts +1 -0
  30. package/lib/index.js +1 -0
  31. package/package.json +3 -3
  32. package/tmp-environment.json +13 -13
  33. package/websql/esm2020/lib/angular.helper.mjs +88 -0
  34. package/websql/esm2020/lib/helpers-numbers.mjs +1 -1
  35. package/websql/esm2020/lib/helpers.mjs +4 -2
  36. package/websql/esm2020/lib/index.mjs +2 -1
  37. package/websql/fesm2015/tnp-helpers.mjs +91 -2
  38. package/websql/fesm2020/tnp-helpers.mjs +91 -2
  39. package/websql/lib/angular.helper.d.ts +37 -0
  40. package/websql/lib/helpers.d.ts +2 -0
  41. package/websql/lib/index.d.ts +1 -0
package/app.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dummy1677313558156 = void 0;
4
- function dummy1677313558156() { }
5
- exports.dummy1677313558156 = dummy1677313558156;
3
+ exports.dummy1678259465616 = void 0;
4
+ function dummy1678259465616() { }
5
+ exports.dummy1678259465616 = dummy1678259465616;
6
6
  //# sourceMappingURL=app.js.map
@@ -0,0 +1,88 @@
1
+ import { Subject } from "rxjs";
2
+ const componentContextSymbol = Symbol();
3
+ const componentsDestroy$Subjects = {};
4
+ export class SerializedSubject {
5
+ constructor(id) {
6
+ this.id = id;
7
+ }
8
+ }
9
+ export var NgHelpers;
10
+ (function (NgHelpers) {
11
+ function subjectId(destroySubject) {
12
+ const id = Math.random().toString(36).substring(2);
13
+ if (!destroySubject[componentContextSymbol]) {
14
+ destroySubject[componentContextSymbol] = new SerializedSubject(id);
15
+ componentsDestroy$Subjects[id] = destroySubject;
16
+ }
17
+ return destroySubject[componentContextSymbol];
18
+ }
19
+ /**
20
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
21
+ */
22
+ function serialize(destroy$) {
23
+ return subjectId(destroy$);
24
+ }
25
+ NgHelpers.serialize = serialize;
26
+ /**
27
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
28
+ */
29
+ function deserialize(destroy$) {
30
+ if (destroy$?.id) {
31
+ const realDestroySubject = componentsDestroy$Subjects[destroy$.id];
32
+ return realDestroySubject;
33
+ }
34
+ return new Subject();
35
+ }
36
+ NgHelpers.deserialize = deserialize;
37
+ function unsubscribe(destroy$) {
38
+ const destroySubject = subjectId(destroy$);
39
+ if (destroySubject?.id) {
40
+ delete componentsDestroy$Subjects[destroySubject.id];
41
+ delete destroySubject[componentContextSymbol];
42
+ }
43
+ }
44
+ NgHelpers.unsubscribe = unsubscribe;
45
+ /**
46
+ get properties from scss file
47
+
48
+
49
+ import styles from './tasks-ngrx-data.component.scss';
50
+
51
+ export class ExampleComponent {
52
+ sassFile = sassFile(styles);
53
+
54
+ async ngOnInit() {
55
+ this.tasksService.getAll();
56
+ console.log(this.sassFile.stringValue('--max-container-size'))
57
+ console.log(this.sassFile.numberValue('--max-container-size'))
58
+ }
59
+ }
60
+ */
61
+ function sassFile(styles) {
62
+ const lines = (styles.split('\n'));
63
+ return {
64
+ stringValue: (name) => {
65
+ for (let index = 0; index < lines.length; index++) {
66
+ const l = lines[index];
67
+ const [varName, value] = l.trim().split(':');
68
+ if (varName === name) {
69
+ return value.replace(';', '');
70
+ }
71
+ }
72
+ },
73
+ numberValue: (name) => {
74
+ for (let index = 0; index < lines.length; index++) {
75
+ const l = lines[index];
76
+ const [varName, value] = l.trim().split(':');
77
+ if (varName === name) {
78
+ return Number(value.replace('px', '').replace(';', ''));
79
+ }
80
+ }
81
+ }
82
+ };
83
+ }
84
+ NgHelpers.sassFile = sassFile;
85
+ })(NgHelpers || (NgHelpers = {}));
86
+ ;
87
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/angular.helper.ts
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYW5ndWxhci5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxNQUFNLHNCQUFzQixHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3hDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDUyxFQUFVO1FBQVYsT0FBRSxHQUFGLEVBQUUsQ0FBUTtJQUNmLENBQUM7Q0FDTjtBQUVELE1BQU0sS0FBVyxTQUFTLENBOEV6QjtBQTlFRCxXQUFpQixTQUFTO0lBRXhCLFNBQVMsU0FBUyxDQUFDLGNBQTRCO1FBQzdDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUMzQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQztTQUNqRDtRQUNELE9BQU8sY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBZ0IsU0FBUyxDQUFDLFFBQXNCO1FBQzlDLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFGZSxtQkFBUyxZQUV4QixDQUFBO0lBRUQ7O09BRUc7SUFDSCxTQUFnQixXQUFXLENBQUMsUUFBZ0M7UUFDMUQsSUFBSSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sa0JBQWtCLENBQUM7U0FDM0I7UUFDRCxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQU5lLHFCQUFXLGNBTTFCLENBQUE7SUFFRCxTQUFnQixXQUFXLENBQUMsUUFBc0I7UUFDaEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLElBQUksY0FBYyxFQUFFLEVBQUUsRUFBRTtZQUN0QixPQUFPLDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRCxPQUFPLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQU5lLHFCQUFXLGNBTTFCLENBQUE7SUFJRDs7Ozs7Ozs7Ozs7Ozs7O1NBZUs7SUFDTCxTQUFnQixRQUFRLENBQUMsTUFBYztRQUNyQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPO1lBQ0wsV0FBVyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7Z0JBQzVCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUNqRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO3dCQUNwQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUMvQjtpQkFDRjtZQUNILENBQUM7WUFDRCxXQUFXLEVBQUUsQ0FBQyxJQUFZLEVBQVUsRUFBRTtnQkFDcEMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ2pELE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdkIsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7d0JBQ3BCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDekQ7aUJBQ0Y7WUFDSCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUF0QmUsa0JBQVEsV0FzQnZCLENBQUE7QUFDSCxDQUFDLEVBOUVnQixTQUFTLEtBQVQsU0FBUyxRQThFekI7QUFJQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDhEQUE4RCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5cbmNvbnN0IGNvbXBvbmVudENvbnRleHRTeW1ib2wgPSBTeW1ib2woKTtcbmNvbnN0IGNvbXBvbmVudHNEZXN0cm95JFN1YmplY3RzID0ge307XG5cbmV4cG9ydCBjbGFzcyBTZXJpYWxpemVkU3ViamVjdDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZDogc3RyaW5nXG4gICkgeyB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgTmdIZWxwZXJzIHtcblxuICBmdW5jdGlvbiBzdWJqZWN0SWQoZGVzdHJveVN1YmplY3Q6IFN1YmplY3Q8YW55Pik6IFNlcmlhbGl6ZWRTdWJqZWN0PGFueT4ge1xuICAgIGNvbnN0IGlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuICAgIGlmICghZGVzdHJveVN1YmplY3RbY29tcG9uZW50Q29udGV4dFN5bWJvbF0pIHtcbiAgICAgIGRlc3Ryb3lTdWJqZWN0W2NvbXBvbmVudENvbnRleHRTeW1ib2xdID0gbmV3IFNlcmlhbGl6ZWRTdWJqZWN0KGlkKTtcbiAgICAgIGNvbXBvbmVudHNEZXN0cm95JFN1YmplY3RzW2lkXSA9IGRlc3Ryb3lTdWJqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gZGVzdHJveVN1YmplY3RbY29tcG9uZW50Q29udGV4dFN5bWJvbF07XG4gIH1cblxuICAvKipcbiAgICogaWYgeW91IGFyZSB1c2luZyB0aGlzLi4gcGxlYXNlIGNhbGwgSGVscGVycy5uZy51bnN1YnNjcmliZSh0aGlzLiRkZXN0cm95KSBpbiBuZ09uRGVzdHJveSgpO1xuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShkZXN0cm95JDogU3ViamVjdDxhbnk+KTogU2VyaWFsaXplZFN1YmplY3Q8YW55PiB7XG4gICAgcmV0dXJuIHN1YmplY3RJZChkZXN0cm95JCk7XG4gIH1cblxuICAvKipcbiAgICogaWYgeW91IGFyZSB1c2luZyB0aGlzLi4gcGxlYXNlIGNhbGwgSGVscGVycy5uZy51bnN1YnNjcmliZSh0aGlzLiRkZXN0cm95KSBpbiBuZ09uRGVzdHJveSgpO1xuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplKGRlc3Ryb3kkOiBTZXJpYWxpemVkU3ViamVjdDxhbnk+KTogU3ViamVjdDxhbnk+IHtcbiAgICBpZiAoZGVzdHJveSQ/LmlkKSB7XG4gICAgICBjb25zdCByZWFsRGVzdHJveVN1YmplY3QgPSBjb21wb25lbnRzRGVzdHJveSRTdWJqZWN0c1tkZXN0cm95JC5pZF07XG4gICAgICByZXR1cm4gcmVhbERlc3Ryb3lTdWJqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFN1YmplY3QoKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB1bnN1YnNjcmliZShkZXN0cm95JDogU3ViamVjdDxhbnk+KSB7XG4gICAgY29uc3QgZGVzdHJveVN1YmplY3QgPSBzdWJqZWN0SWQoZGVzdHJveSQpO1xuICAgIGlmIChkZXN0cm95U3ViamVjdD8uaWQpIHtcbiAgICAgIGRlbGV0ZSBjb21wb25lbnRzRGVzdHJveSRTdWJqZWN0c1tkZXN0cm95U3ViamVjdC5pZF07XG4gICAgICBkZWxldGUgZGVzdHJveVN1YmplY3RbY29tcG9uZW50Q29udGV4dFN5bWJvbF07XG4gICAgfVxuICB9XG5cblxuXG4gIC8qKlxuICBnZXQgcHJvcGVydGllcyBmcm9tIHNjc3MgZmlsZVxuXG5cbiAgaW1wb3J0IHN0eWxlcyBmcm9tICcuL3Rhc2tzLW5ncngtZGF0YS5jb21wb25lbnQuc2Nzcyc7XG5cbiAgZXhwb3J0IGNsYXNzIEV4YW1wbGVDb21wb25lbnQge1xuICAgIHNhc3NGaWxlID0gc2Fzc0ZpbGUoc3R5bGVzKTtcblxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy50YXNrc1NlcnZpY2UuZ2V0QWxsKCk7XG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnNhc3NGaWxlLnN0cmluZ1ZhbHVlKCctLW1heC1jb250YWluZXItc2l6ZScpKVxuICAgICAgY29uc29sZS5sb2codGhpcy5zYXNzRmlsZS5udW1iZXJWYWx1ZSgnLS1tYXgtY29udGFpbmVyLXNpemUnKSlcbiAgICB9XG4gIH1cbiAgICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHNhc3NGaWxlKHN0eWxlczogc3RyaW5nKSB7XG4gICAgY29uc3QgbGluZXMgPSAoc3R5bGVzLnNwbGl0KCdcXG4nKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0cmluZ1ZhbHVlOiAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaW5lcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBsID0gbGluZXNbaW5kZXhdO1xuICAgICAgICAgIGNvbnN0IFt2YXJOYW1lLCB2YWx1ZV0gPSBsLnRyaW0oKS5zcGxpdCgnOicpO1xuICAgICAgICAgIGlmICh2YXJOYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgnOycsICcnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBudW1iZXJWYWx1ZTogKG5hbWU6IHN0cmluZyk6IG51bWJlciA9PiB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaW5lcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBsID0gbGluZXNbaW5kZXhdO1xuICAgICAgICAgIGNvbnN0IFt2YXJOYW1lLCB2YWx1ZV0gPSBsLnRyaW0oKS5zcGxpdCgnOicpO1xuICAgICAgICAgIGlmICh2YXJOYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlLnJlcGxhY2UoJ3B4JywgJycpLnJlcGxhY2UoJzsnLCAnJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9hbmd1bGFyLmhlbHBlci50cyJdfQ==
@@ -5,4 +5,4 @@ export class HelpersNumber {
5
5
  }
6
6
  ;
7
7
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1udW1iZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtbnVtYmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUNFLGtCQUFhLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUc5RSxDQUFDO0NBQUE7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtEQUErRCIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNsYXNzIEhlbHBlcnNOdW1iZXIge1xuICByYW5kb21JbnRlZ2VyID0gKG1heCwgbWluKSA9PiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSkgKyBtaW47XG5cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtbnVtYmVycy50cyJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1udW1iZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtbnVtYmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUNFLGtCQUFhLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUc5RSxDQUFDO0NBQUE7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtEQUErRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBIZWxwZXJzTnVtYmVyIHtcbiAgcmFuZG9tSW50ZWdlciA9IChtYXgsIG1pbikgPT4gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbikpICsgbWluO1xuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9oZWxwZXJzLW51bWJlcnMudHMiXX0=
@@ -10,6 +10,7 @@ import { Morphi } from 'morphi/browser';
10
10
  import { CoreHelpers } from 'tnp-core/browser';
11
11
  import { HelpersNumber } from './helpers-numbers';
12
12
  import { HelpersBrowaser } from './helpers-browser';
13
+ import { NgHelpers } from './angular.helper';
13
14
  export function applyMixins(derivedCtor, baseCtors) {
14
15
  baseCtors.forEach(baseCtor => {
15
16
  Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
@@ -33,12 +34,13 @@ export class HelpersTnp extends CoreHelpers {
33
34
  /* */
34
35
  /* */
35
36
  /* */
36
- arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), browser = HelpersBrowaser.instance) {
37
+ arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), browser = HelpersBrowaser.instance, ng = NgHelpers) {
37
38
  super();
38
39
  this.arrays = arrays;
39
40
  this.strings = strings;
40
41
  this.numbers = numbers;
41
42
  this.browser = browser;
43
+ this.ng = ng;
42
44
  this.conditionWait = conditionWait;
43
45
  /* */
44
46
  /* */
@@ -279,4 +281,4 @@ applyMixins(HelpersTnp, [
279
281
  ]);
280
282
  ;
281
283
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers.ts
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQXVCakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE1BQU0sVUFBVSxXQUFXLENBQUMsV0FBZ0IsRUFBRSxTQUFnQjtJQUM1RCxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzNCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJ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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgSGVscGVyc0FycmF5T2JqIH0gZnJvbSAnLi9oZWxwZXJzLWFycmF5LW9iaic7XG5pbXBvcnQgeyBIZWxwZXJzU3RyaW5nc1JlZ2V4ZXMgfSBmcm9tICcuL2hlbHBlcnMtc3RyaW5ncy1yZWdleGVzJztcbmltcG9ydCB7IEhlbHBlcnNFbnZpcm9ubWVudCB9IGZyb20gJy4vaGVscGVycy1lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBIZWxwZXJzU3RyaW5ncyB9IGZyb20gJy4vaGVscGVycy1zdHJpbmdzJztcbmltcG9ydCB7IGNvbmRpdGlvbldhaXQgfSBmcm9tICcuL2NvbmRpdGlvbi13YWl0Jztcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IGNvbmZpZywgQ29uZmlnTW9kZWxzIH0gZnJvbSAndG5wLWNvbmZpZy9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IENMQVNTIH0gZnJvbSAndHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL2Jyb3dzZXInO1xuaW1wb3J0IHsgTW9ycGhpIH0gZnJvbSAnbW9ycGhpL2Jyb3dzZXInO1xuaW1wb3J0IHsgQ29yZUhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnNOdW1iZXIgfSBmcm9tICcuL2hlbHBlcnMtbnVtYmVycyc7XG5cbmltcG9ydCB7IEhlbHBlcnNCcm93YXNlciB9IGZyb20gJy4vaGVscGVycy1icm93c2VyJztcblxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlNaXhpbnMoZGVyaXZlZEN0b3I6IGFueSwgYmFzZUN0b3JzOiBhbnlbXSkge1xuICBiYXNlQ3RvcnMuZm9yRWFjaChiYXNlQ3RvciA9PiB7XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYmFzZUN0b3IucHJvdG90eXBlKS5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGRlcml2ZWRDdG9yLnByb3RvdHlwZSwgbmFtZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiYXNlQ3Rvci5wcm90b3R5cGUsIG5hbWUpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjbGFzcyBIZWxwZXJzVG5wIGV4dGVuZHMgQ29yZUhlbHBlcnMge1xuXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogSGVscGVyc1RucCAmIENvcmVIZWxwZXJzO1xuICBwdWJsaWMgc3RhdGljIGdldCBJbnN0YW5jZSgpIHtcbiAgICBpZiAoIUhlbHBlcnNUbnAuX2luc3RhbmNlKSB7XG4gICAgICBIZWxwZXJzVG5wLl9pbnN0YW5jZSA9IG5ldyBIZWxwZXJzVG5wKCk7XG4gICAgfVxuICAgIHJldHVybiBIZWxwZXJzVG5wLl9pbnN0YW5jZTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICBwdWJsaWMgYXJyYXlzID0gbmV3IEhlbHBlcnNBcnJheU9iaigpLFxuICAgIHB1YmxpYyBzdHJpbmdzID0gbmV3IEhlbHBlcnNTdHJpbmdzKCksXG4gICAgcHVibGljIG51bWJlcnMgPSBuZXcgSGVscGVyc051bWJlcigpLFxuXG4gICAgcHVibGljIGJyb3dzZXIgPSBIZWxwZXJzQnJvd2FzZXIuaW5zdGFuY2UsXG5cblxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQ0xJV1JBUChmOiBGdW5jdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgQ0xBU1Muc2V0TmFtZShmLCBuYW1lKTtcbiAgICByZXR1cm4gZjtcbiAgfVxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgYXN5bmMgaXNFbGV2YXRlZCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG4gIGFzeW5jIG1lc3VyZUV4ZWN0aW9uSW5NcyhcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlOiBGdW5jdGlvbixcbiAgICAuLi5mdW5jdGlvbkFyZ3VtZW50czogYW55W10pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKClcbiAgICBhd2FpdCBIZWxwZXJzLnJ1blN5bmNPckFzeW5jKGZ1bmN0aW9uVG9FeGVjdXRlLCAuLi5mdW5jdGlvbkFyZ3VtZW50cyk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydFxuICAgIGlmIChNb3JwaGkuSXNCcm93c2VyKSB7XG4gICAgICBIZWxwZXJzLmluZm8oYEV4ZWN1dGlvbiB0aW1lOiAke2VuZC50b1N0cmluZygpfW1zIGZvciBcIiR7ZGVzY3JpcHRpb259XCJgKTtcbiAgICB9XG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuXG4gIG1lc3VyZUV4ZWN0aW9uSW5Nc1N5bmMoXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICBmdW5jdGlvblRvRXhlY3V0ZTogKCkgPT4gdm9pZCk6IG51bWJlciB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKVxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlKCk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydFxuICAgIGlmIChNb3JwaGkuSXNCcm93c2VyKSB7XG4gICAgICBIZWxwZXJzLmxvZyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cbi8qICovXG4vKiAqL1xuICBcbiAgICByZXR1cm4gZW5kO1xuICB9XG5cbiAgY29uZGl0aW9uV2FpdCA9IGNvbmRpdGlvbldhaXQ7XG5cbiAgd2FpdEZvckNvbmRpdGlvbihjb25kaXRpb25GbjogKGFueSkgPT4gYm9vbGVhbiwgaG93T2ZmdGVuQ2hlY2tJbk1zID0gMTAwMCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoY29uZGl0aW9uRm4pO1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXNvbHZlKHZvaWQgMClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIEhlbHBlcnMud2FpdEZvckNvbmRpdGlvbihjb25kaXRpb25GbiwgaG93T2ZmdGVuQ2hlY2tJbk1zKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUodm9pZCAwKTtcbiAgICAgICAgICB9KVxuICAgICAgICB9LCBob3dPZmZ0ZW5DaGVja0luTXMpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRCcm93c2VyVmVyUGF0aChtb2R1bGVOYW1lPzogc3RyaW5nLCB3ZWJzcWw6IGJvb2xlYW4gPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgZ2V0TWV0aG9kTmFtZShvYmosIG1ldGhvZCk6IHN0cmluZyB7XG4gICAgdmFyIG1ldGhvZE5hbWUgPSBudWxsO1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGlmIChvYmpbcHJvcF0gPT09IG1ldGhvZCkge1xuICAgICAgICBtZXRob2ROYW1lID0gcHJvcDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChtZXRob2ROYW1lICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbWV0aG9kTmFtZTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIHJldHVybiBIZWxwZXJzLmdldE1ldGhvZE5hbWUocHJvdG8sIG1ldGhvZCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZml4V2VicGFja0VudihlbnY6IE9iamVjdCkge1xuICAgIF8uZm9ySW4oZW52LCAodiwgaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IHYgYXMgYW55O1xuICAgICAgaWYgKHZhbHVlID09PSAndHJ1ZScpIGVudltrXSA9IHRydWU7XG4gICAgICBpZiAodmFsdWUgPT09ICdmYWxzZScpIGVudltrXSA9IGZhbHNlO1xuICAgIH0pXG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbi8qICovXG4vKiAqL1xuICBcbiAgcHVibGljIGFwcGx5TWl4aW5zID0gYXBwbHlNaXhpbnM7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBpbnRlcmZhY2UgSGVscGVyc1RucCBleHRlbmRzXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyxcbiAgSGVscGVyc0Vudmlyb25tZW50XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbnsgfVxuXG5hcHBseU1peGlucyhIZWxwZXJzVG5wLCBbXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyxcbiAgSGVscGVyc0Vudmlyb25tZW50LFxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbl0pO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMudHMiXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQXVCakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc3QyxNQUFNLFVBQVUsV0FBVyxDQUFDLFdBQWdCLEVBQUUsU0FBZ0I7SUFDNUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMzQixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1RCxN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QUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7Q0FFSixDQUFDLENBQUM7QUFFRixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnNBcnJheU9iaiB9IGZyb20gJy4vaGVscGVycy1hcnJheS1vYmonO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3NSZWdleGVzIH0gZnJvbSAnLi9oZWxwZXJzLXN0cmluZ3MtcmVnZXhlcyc7XG5pbXBvcnQgeyBIZWxwZXJzRW52aXJvbm1lbnQgfSBmcm9tICcuL2hlbHBlcnMtZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3MgfSBmcm9tICcuL2hlbHBlcnMtc3RyaW5ncyc7XG5pbXBvcnQgeyBjb25kaXRpb25XYWl0IH0gZnJvbSAnLi9jb25kaXRpb24td2FpdCc7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBjb25maWcsIENvbmZpZ01vZGVscyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7IE1vcnBoaSB9IGZyb20gJ21vcnBoaS9icm93c2VyJztcbmltcG9ydCB7IENvcmVIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzTnVtYmVyIH0gZnJvbSAnLi9oZWxwZXJzLW51bWJlcnMnO1xuXG5pbXBvcnQgeyBIZWxwZXJzQnJvd2FzZXIgfSBmcm9tICcuL2hlbHBlcnMtYnJvd3Nlcic7XG5cbmltcG9ydCB7IE5nSGVscGVycyB9IGZyb20gJy4vYW5ndWxhci5oZWxwZXInO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU1peGlucyhkZXJpdmVkQ3RvcjogYW55LCBiYXNlQ3RvcnM6IGFueVtdKSB7XG4gIGJhc2VDdG9ycy5mb3JFYWNoKGJhc2VDdG9yID0+IHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiYXNlQ3Rvci5wcm90b3R5cGUpLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVyaXZlZEN0b3IucHJvdG90eXBlLCBuYW1lLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2VDdG9yLnByb3RvdHlwZSwgbmFtZSkpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNsYXNzIEhlbHBlcnNUbnAgZXh0ZW5kcyBDb3JlSGVscGVycyB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBIZWxwZXJzVG5wICYgQ29yZUhlbHBlcnM7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEluc3RhbmNlKCkge1xuICAgIGlmICghSGVscGVyc1RucC5faW5zdGFuY2UpIHtcbiAgICAgIEhlbHBlcnNUbnAuX2luc3RhbmNlID0gbmV3IEhlbHBlcnNUbnAoKTtcbiAgICB9XG4gICAgcmV0dXJuIEhlbHBlcnNUbnAuX2luc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgIHB1YmxpYyBhcnJheXMgPSBuZXcgSGVscGVyc0FycmF5T2JqKCksXG4gICAgcHVibGljIHN0cmluZ3MgPSBuZXcgSGVscGVyc1N0cmluZ3MoKSxcbiAgICBwdWJsaWMgbnVtYmVycyA9IG5ldyBIZWxwZXJzTnVtYmVyKCksXG5cbiAgICBwdWJsaWMgYnJvd3NlciA9IEhlbHBlcnNCcm93YXNlci5pbnN0YW5jZSxcbiAgICBwdWJsaWMgbmcgPSBOZ0hlbHBlcnNcblxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQ0xJV1JBUChmOiBGdW5jdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgQ0xBU1Muc2V0TmFtZShmLCBuYW1lKTtcbiAgICByZXR1cm4gZjtcbiAgfVxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgYXN5bmMgaXNFbGV2YXRlZCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG4gIGFzeW5jIG1lc3VyZUV4ZWN0aW9uSW5NcyhcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlOiBGdW5jdGlvbixcbiAgICAuLi5mdW5jdGlvbkFyZ3VtZW50czogYW55W10pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKClcbiAgICBhd2FpdCBIZWxwZXJzLnJ1blN5bmNPckFzeW5jKGZ1bmN0aW9uVG9FeGVjdXRlLCAuLi5mdW5jdGlvbkFyZ3VtZW50cyk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydFxuICAgIGlmIChNb3JwaGkuSXNCcm93c2VyKSB7XG4gICAgICBIZWxwZXJzLmluZm8oYEV4ZWN1dGlvbiB0aW1lOiAke2VuZC50b1N0cmluZygpfW1zIGZvciBcIiR7ZGVzY3JpcHRpb259XCJgKTtcbiAgICB9XG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuXG4gIG1lc3VyZUV4ZWN0aW9uSW5Nc1N5bmMoXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICBmdW5jdGlvblRvRXhlY3V0ZTogKCkgPT4gdm9pZCk6IG51bWJlciB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKVxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlKCk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydFxuICAgIGlmIChNb3JwaGkuSXNCcm93c2VyKSB7XG4gICAgICBIZWxwZXJzLmxvZyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cbi8qICovXG4vKiAqL1xuICBcbiAgICByZXR1cm4gZW5kO1xuICB9XG5cbiAgY29uZGl0aW9uV2FpdCA9IGNvbmRpdGlvbldhaXQ7XG5cbiAgd2FpdEZvckNvbmRpdGlvbihjb25kaXRpb25GbjogKGFueSkgPT4gYm9vbGVhbiwgaG93T2ZmdGVuQ2hlY2tJbk1zID0gMTAwMCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoY29uZGl0aW9uRm4pO1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXNvbHZlKHZvaWQgMClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIEhlbHBlcnMud2FpdEZvckNvbmRpdGlvbihjb25kaXRpb25GbiwgaG93T2ZmdGVuQ2hlY2tJbk1zKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUodm9pZCAwKTtcbiAgICAgICAgICB9KVxuICAgICAgICB9LCBob3dPZmZ0ZW5DaGVja0luTXMpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRCcm93c2VyVmVyUGF0aChtb2R1bGVOYW1lPzogc3RyaW5nLCB3ZWJzcWw6IGJvb2xlYW4gPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgZ2V0TWV0aG9kTmFtZShvYmosIG1ldGhvZCk6IHN0cmluZyB7XG4gICAgdmFyIG1ldGhvZE5hbWUgPSBudWxsO1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGlmIChvYmpbcHJvcF0gPT09IG1ldGhvZCkge1xuICAgICAgICBtZXRob2ROYW1lID0gcHJvcDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChtZXRob2ROYW1lICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbWV0aG9kTmFtZTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIHJldHVybiBIZWxwZXJzLmdldE1ldGhvZE5hbWUocHJvdG8sIG1ldGhvZCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZml4V2VicGFja0VudihlbnY6IE9iamVjdCkge1xuICAgIF8uZm9ySW4oZW52LCAodiwgaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IHYgYXMgYW55O1xuICAgICAgaWYgKHZhbHVlID09PSAndHJ1ZScpIGVudltrXSA9IHRydWU7XG4gICAgICBpZiAodmFsdWUgPT09ICdmYWxzZScpIGVudltrXSA9IGZhbHNlO1xuICAgIH0pXG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbi8qICovXG4vKiAqL1xuICBcbiAgcHVibGljIGFwcGx5TWl4aW5zID0gYXBwbHlNaXhpbnM7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBpbnRlcmZhY2UgSGVscGVyc1RucCBleHRlbmRzXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyxcbiAgSGVscGVyc0Vudmlyb25tZW50XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbnsgfVxuXG5hcHBseU1peGlucyhIZWxwZXJzVG5wLCBbXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyxcbiAgSGVscGVyc0Vudmlyb25tZW50LFxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbl0pO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMudHMiXX0=
@@ -5,6 +5,7 @@ export * from './constants';
5
5
  export const Helpers = Base.Instance;
6
6
  export * from './project';
7
7
  export * from './firedev-models';
8
+ export { SerializedSubject } from './angular.helper';
8
9
  export { BaseComponent, BaseComponentForRouter } from './base-component';
9
10
  export { BaseFormlyComponent } from './base-formly-component';
10
11
  export { DualComponentController } from './dual-component-ctrl';
@@ -12,4 +13,4 @@ export { ResizeService } from './resize-service';
12
13
  export { LongPress } from './long-press.directive';
13
14
  ;
14
15
  ({}); // @--end-of-file-for-module=tnp-helpers lib/index.ts
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsSUFBSSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsY0FBYyxhQUFhLENBQUM7QUFFNUIsS0FBSztBQUNMLEtBQUs7QUFHTCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNyQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGtCQUFrQixDQUFDO0FBR2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2xELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGVscGVyc1RucCBhcyBCYXNlIH0gZnJvbSAnLi9oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCB7IENvbmRpdGlvbiB9IGZyb20gJy4vY29uZGl0aW9uLXdhaXQnO1xuLyogKi9cbi8qICovXG4gIFxuXG5leHBvcnQgY29uc3QgSGVscGVycyA9IEJhc2UuSW5zdGFuY2U7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlZGV2LW1vZGVscyc7XG5cblxuZXhwb3J0IHsgQmFzZUNvbXBvbmVudCwgQmFzZUNvbXBvbmVudEZvclJvdXRlciB9IGZyb20gJy4vYmFzZS1jb21wb25lbnQnO1xuZXhwb3J0IHsgQmFzZUZvcm1seUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1mb3JtbHktY29tcG9uZW50JztcbmV4cG9ydCB7IER1YWxDb21wb25lbnRDb250cm9sbGVyIH0gZnJvbSAnLi9kdWFsLWNvbXBvbmVudC1jdHJsJztcbmV4cG9ydCB7IFJlc2l6ZVNlcnZpY2UgfSBmcm9tICcuL3Jlc2l6ZS1zZXJ2aWNlJztcbmV4cG9ydCB7IExvbmdQcmVzcyB9IGZyb20gJy4vbG9uZy1wcmVzcy5kaXJlY3RpdmUnO1xuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvaW5kZXgudHMiXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsSUFBSSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsY0FBYyxhQUFhLENBQUM7QUFFNUIsS0FBSztBQUNMLEtBQUs7QUFHTCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNyQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGtCQUFrQixDQUFDO0FBR2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2xELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGVscGVyc1RucCBhcyBCYXNlIH0gZnJvbSAnLi9oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCB7IENvbmRpdGlvbiB9IGZyb20gJy4vY29uZGl0aW9uLXdhaXQnO1xuLyogKi9cbi8qICovXG4gIFxuXG5leHBvcnQgY29uc3QgSGVscGVycyA9IEJhc2UuSW5zdGFuY2U7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlZGV2LW1vZGVscyc7XG5cblxuZXhwb3J0IHsgU2VyaWFsaXplZFN1YmplY3QgfSBmcm9tICcuL2FuZ3VsYXIuaGVscGVyJztcbmV4cG9ydCB7IEJhc2VDb21wb25lbnQsIEJhc2VDb21wb25lbnRGb3JSb3V0ZXIgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcbmV4cG9ydCB7IEJhc2VGb3JtbHlDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtZm9ybWx5LWNvbXBvbmVudCc7XG5leHBvcnQgeyBEdWFsQ29tcG9uZW50Q29udHJvbGxlciB9IGZyb20gJy4vZHVhbC1jb21wb25lbnQtY3RybCc7XG5leHBvcnQgeyBSZXNpemVTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemUtc2VydmljZSc7XG5leHBvcnQgeyBMb25nUHJlc3MgfSBmcm9tICcuL2xvbmctcHJlc3MuZGlyZWN0aXZlJztcblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2luZGV4LnRzIl19
@@ -3,6 +3,7 @@ import { _, CoreHelpers } from 'tnp-core/browser';
3
3
  import * as fuzzy from 'fuzzy';
4
4
  import { CLASS } from 'typescript-class-helpers/browser';
5
5
  import { Morphi } from 'morphi/browser';
6
+ import { Subject } from 'rxjs';
6
7
  import * as i0 from '@angular/core';
7
8
  import { Component, Input, EventEmitter, Output, Injectable, Directive, HostBinding, HostListener } from '@angular/core';
8
9
  import { NavigationEnd } from '@angular/router';
@@ -526,6 +527,93 @@ HelpersBrowaser.callbacks = [];
526
527
  ;
527
528
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-browser.ts
528
529
 
530
+ const componentContextSymbol = Symbol();
531
+ const componentsDestroy$Subjects = {};
532
+ class SerializedSubject {
533
+ constructor(id) {
534
+ this.id = id;
535
+ }
536
+ }
537
+ var NgHelpers;
538
+ (function (NgHelpers) {
539
+ function subjectId(destroySubject) {
540
+ const id = Math.random().toString(36).substring(2);
541
+ if (!destroySubject[componentContextSymbol]) {
542
+ destroySubject[componentContextSymbol] = new SerializedSubject(id);
543
+ componentsDestroy$Subjects[id] = destroySubject;
544
+ }
545
+ return destroySubject[componentContextSymbol];
546
+ }
547
+ /**
548
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
549
+ */
550
+ function serialize(destroy$) {
551
+ return subjectId(destroy$);
552
+ }
553
+ NgHelpers.serialize = serialize;
554
+ /**
555
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
556
+ */
557
+ function deserialize(destroy$) {
558
+ if (destroy$ === null || destroy$ === void 0 ? void 0 : destroy$.id) {
559
+ const realDestroySubject = componentsDestroy$Subjects[destroy$.id];
560
+ return realDestroySubject;
561
+ }
562
+ return new Subject();
563
+ }
564
+ NgHelpers.deserialize = deserialize;
565
+ function unsubscribe(destroy$) {
566
+ const destroySubject = subjectId(destroy$);
567
+ if (destroySubject === null || destroySubject === void 0 ? void 0 : destroySubject.id) {
568
+ delete componentsDestroy$Subjects[destroySubject.id];
569
+ delete destroySubject[componentContextSymbol];
570
+ }
571
+ }
572
+ NgHelpers.unsubscribe = unsubscribe;
573
+ /**
574
+ get properties from scss file
575
+
576
+
577
+ import styles from './tasks-ngrx-data.component.scss';
578
+
579
+ export class ExampleComponent {
580
+ sassFile = sassFile(styles);
581
+
582
+ async ngOnInit() {
583
+ this.tasksService.getAll();
584
+ console.log(this.sassFile.stringValue('--max-container-size'))
585
+ console.log(this.sassFile.numberValue('--max-container-size'))
586
+ }
587
+ }
588
+ */
589
+ function sassFile(styles) {
590
+ const lines = (styles.split('\n'));
591
+ return {
592
+ stringValue: (name) => {
593
+ for (let index = 0; index < lines.length; index++) {
594
+ const l = lines[index];
595
+ const [varName, value] = l.trim().split(':');
596
+ if (varName === name) {
597
+ return value.replace(';', '');
598
+ }
599
+ }
600
+ },
601
+ numberValue: (name) => {
602
+ for (let index = 0; index < lines.length; index++) {
603
+ const l = lines[index];
604
+ const [varName, value] = l.trim().split(':');
605
+ if (varName === name) {
606
+ return Number(value.replace('px', '').replace(';', ''));
607
+ }
608
+ }
609
+ }
610
+ };
611
+ }
612
+ NgHelpers.sassFile = sassFile;
613
+ })(NgHelpers || (NgHelpers = {}));
614
+ ;
615
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/angular.helper.ts
616
+
529
617
  function applyMixins(derivedCtor, baseCtors) {
530
618
  baseCtors.forEach(baseCtor => {
531
619
  Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
@@ -549,12 +637,13 @@ class HelpersTnp extends CoreHelpers {
549
637
  /* */
550
638
  /* */
551
639
  /* */
552
- arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), browser = HelpersBrowaser.instance) {
640
+ arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), browser = HelpersBrowaser.instance, ng = NgHelpers) {
553
641
  super();
554
642
  this.arrays = arrays;
555
643
  this.strings = strings;
556
644
  this.numbers = numbers;
557
645
  this.browser = browser;
646
+ this.ng = ng;
558
647
  this.conditionWait = conditionWait;
559
648
  /* */
560
649
  /* */
@@ -1636,5 +1725,5 @@ const Helpers = HelpersTnp.Instance;
1636
1725
  * Generated bundle index. Do not edit.
1637
1726
  */
1638
1727
 
1639
- export { BaseComponent, BaseComponentForRouter, BaseFormlyComponent, BaselineSiteJoinprefix, DualComponentController, Helpers, LongPress, PREFIXES, Project, ResizeService };
1728
+ export { BaseComponent, BaseComponentForRouter, BaseFormlyComponent, BaselineSiteJoinprefix, DualComponentController, Helpers, LongPress, PREFIXES, Project, ResizeService, SerializedSubject };
1640
1729
  //# sourceMappingURL=tnp-helpers.mjs.map
@@ -2,6 +2,7 @@ import { _, CoreHelpers } from 'tnp-core/browser';
2
2
  import * as fuzzy from 'fuzzy';
3
3
  import { CLASS } from 'typescript-class-helpers/browser';
4
4
  import { Morphi } from 'morphi/browser';
5
+ import { Subject } from 'rxjs';
5
6
  import * as i0 from '@angular/core';
6
7
  import { Component, Input, EventEmitter, Output, Injectable, Directive, HostBinding, HostListener } from '@angular/core';
7
8
  import { NavigationEnd } from '@angular/router';
@@ -521,6 +522,93 @@ HelpersBrowaser.callbacks = [];
521
522
  ;
522
523
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-browser.ts
523
524
 
525
+ const componentContextSymbol = Symbol();
526
+ const componentsDestroy$Subjects = {};
527
+ class SerializedSubject {
528
+ constructor(id) {
529
+ this.id = id;
530
+ }
531
+ }
532
+ var NgHelpers;
533
+ (function (NgHelpers) {
534
+ function subjectId(destroySubject) {
535
+ const id = Math.random().toString(36).substring(2);
536
+ if (!destroySubject[componentContextSymbol]) {
537
+ destroySubject[componentContextSymbol] = new SerializedSubject(id);
538
+ componentsDestroy$Subjects[id] = destroySubject;
539
+ }
540
+ return destroySubject[componentContextSymbol];
541
+ }
542
+ /**
543
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
544
+ */
545
+ function serialize(destroy$) {
546
+ return subjectId(destroy$);
547
+ }
548
+ NgHelpers.serialize = serialize;
549
+ /**
550
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
551
+ */
552
+ function deserialize(destroy$) {
553
+ if (destroy$?.id) {
554
+ const realDestroySubject = componentsDestroy$Subjects[destroy$.id];
555
+ return realDestroySubject;
556
+ }
557
+ return new Subject();
558
+ }
559
+ NgHelpers.deserialize = deserialize;
560
+ function unsubscribe(destroy$) {
561
+ const destroySubject = subjectId(destroy$);
562
+ if (destroySubject?.id) {
563
+ delete componentsDestroy$Subjects[destroySubject.id];
564
+ delete destroySubject[componentContextSymbol];
565
+ }
566
+ }
567
+ NgHelpers.unsubscribe = unsubscribe;
568
+ /**
569
+ get properties from scss file
570
+
571
+
572
+ import styles from './tasks-ngrx-data.component.scss';
573
+
574
+ export class ExampleComponent {
575
+ sassFile = sassFile(styles);
576
+
577
+ async ngOnInit() {
578
+ this.tasksService.getAll();
579
+ console.log(this.sassFile.stringValue('--max-container-size'))
580
+ console.log(this.sassFile.numberValue('--max-container-size'))
581
+ }
582
+ }
583
+ */
584
+ function sassFile(styles) {
585
+ const lines = (styles.split('\n'));
586
+ return {
587
+ stringValue: (name) => {
588
+ for (let index = 0; index < lines.length; index++) {
589
+ const l = lines[index];
590
+ const [varName, value] = l.trim().split(':');
591
+ if (varName === name) {
592
+ return value.replace(';', '');
593
+ }
594
+ }
595
+ },
596
+ numberValue: (name) => {
597
+ for (let index = 0; index < lines.length; index++) {
598
+ const l = lines[index];
599
+ const [varName, value] = l.trim().split(':');
600
+ if (varName === name) {
601
+ return Number(value.replace('px', '').replace(';', ''));
602
+ }
603
+ }
604
+ }
605
+ };
606
+ }
607
+ NgHelpers.sassFile = sassFile;
608
+ })(NgHelpers || (NgHelpers = {}));
609
+ ;
610
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/angular.helper.ts
611
+
524
612
  function applyMixins(derivedCtor, baseCtors) {
525
613
  baseCtors.forEach(baseCtor => {
526
614
  Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
@@ -544,12 +632,13 @@ class HelpersTnp extends CoreHelpers {
544
632
  /* */
545
633
  /* */
546
634
  /* */
547
- arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), browser = HelpersBrowaser.instance) {
635
+ arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), browser = HelpersBrowaser.instance, ng = NgHelpers) {
548
636
  super();
549
637
  this.arrays = arrays;
550
638
  this.strings = strings;
551
639
  this.numbers = numbers;
552
640
  this.browser = browser;
641
+ this.ng = ng;
553
642
  this.conditionWait = conditionWait;
554
643
  /* */
555
644
  /* */
@@ -1625,5 +1714,5 @@ const Helpers = HelpersTnp.Instance;
1625
1714
  * Generated bundle index. Do not edit.
1626
1715
  */
1627
1716
 
1628
- export { BaseComponent, BaseComponentForRouter, BaseFormlyComponent, BaselineSiteJoinprefix, DualComponentController, Helpers, LongPress, PREFIXES, Project, ResizeService };
1717
+ export { BaseComponent, BaseComponentForRouter, BaseFormlyComponent, BaselineSiteJoinprefix, DualComponentController, Helpers, LongPress, PREFIXES, Project, ResizeService, SerializedSubject };
1629
1718
  //# sourceMappingURL=tnp-helpers.mjs.map
@@ -0,0 +1,37 @@
1
+ // @ts-nocheck
2
+ import { Subject } from "rxjs";
3
+ export declare class SerializedSubject<T> {
4
+ id: string;
5
+ constructor(id: string);
6
+ }
7
+ export declare namespace NgHelpers {
8
+ /**
9
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
10
+ */
11
+ function serialize(destroy$: Subject<any>): SerializedSubject<any>;
12
+ /**
13
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
14
+ */
15
+ function deserialize(destroy$: SerializedSubject<any>): Subject<any>;
16
+ function unsubscribe(destroy$: Subject<any>): void;
17
+ /**
18
+ get properties from scss file
19
+
20
+
21
+ import styles from './tasks-ngrx-data.component.scss';
22
+
23
+ export class ExampleComponent {
24
+ sassFile = sassFile(styles);
25
+
26
+ async ngOnInit() {
27
+ this.tasksService.getAll();
28
+ console.log(this.sassFile.stringValue('--max-container-size'))
29
+ console.log(this.sassFile.numberValue('--max-container-size'))
30
+ }
31
+ }
32
+ */
33
+ function sassFile(styles: string): {
34
+ stringValue: (name: string) => string;
35
+ numberValue: (name: string) => number;
36
+ };
37
+ }
@@ -7,12 +7,14 @@ import { conditionWait } from './condition-wait';
7
7
  import { CoreHelpers } from 'tnp-core/browser';
8
8
  import { HelpersNumber } from './helpers-numbers';
9
9
  import { HelpersBrowaser } from './helpers-browser';
10
+ import { NgHelpers } from './angular.helper';
10
11
  export declare function applyMixins(derivedCtor: any, baseCtors: any[]): void;
11
12
  export declare class HelpersTnp extends CoreHelpers {
12
13
  arrays: HelpersArrayObj;
13
14
  strings: HelpersStrings;
14
15
  numbers: HelpersNumber;
15
16
  browser: HelpersBrowaser;
17
+ ng: typeof NgHelpers;
16
18
  private static _instance;
17
19
  static get Instance(): HelpersTnp & CoreHelpers;
18
20
  private constructor();
@@ -5,6 +5,7 @@ export { Condition } from './condition-wait';
5
5
  export declare const Helpers: Base & import("tnp-core/browser").CoreHelpers;
6
6
  export * from './project';
7
7
  export * from './firedev-models';
8
+ export { SerializedSubject } from './angular.helper';
8
9
  export { BaseComponent, BaseComponentForRouter } from './base-component';
9
10
  export { BaseFormlyComponent } from './base-formly-component';
10
11
  export { DualComponentController } from './dual-component-ctrl';
@@ -0,0 +1,88 @@
1
+ import { Subject } from "rxjs";
2
+ const componentContextSymbol = Symbol();
3
+ const componentsDestroy$Subjects = {};
4
+ export class SerializedSubject {
5
+ constructor(id) {
6
+ this.id = id;
7
+ }
8
+ }
9
+ export var NgHelpers;
10
+ (function (NgHelpers) {
11
+ function subjectId(destroySubject) {
12
+ const id = Math.random().toString(36).substring(2);
13
+ if (!destroySubject[componentContextSymbol]) {
14
+ destroySubject[componentContextSymbol] = new SerializedSubject(id);
15
+ componentsDestroy$Subjects[id] = destroySubject;
16
+ }
17
+ return destroySubject[componentContextSymbol];
18
+ }
19
+ /**
20
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
21
+ */
22
+ function serialize(destroy$) {
23
+ return subjectId(destroy$);
24
+ }
25
+ NgHelpers.serialize = serialize;
26
+ /**
27
+ * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
28
+ */
29
+ function deserialize(destroy$) {
30
+ if (destroy$?.id) {
31
+ const realDestroySubject = componentsDestroy$Subjects[destroy$.id];
32
+ return realDestroySubject;
33
+ }
34
+ return new Subject();
35
+ }
36
+ NgHelpers.deserialize = deserialize;
37
+ function unsubscribe(destroy$) {
38
+ const destroySubject = subjectId(destroy$);
39
+ if (destroySubject?.id) {
40
+ delete componentsDestroy$Subjects[destroySubject.id];
41
+ delete destroySubject[componentContextSymbol];
42
+ }
43
+ }
44
+ NgHelpers.unsubscribe = unsubscribe;
45
+ /**
46
+ get properties from scss file
47
+
48
+
49
+ import styles from './tasks-ngrx-data.component.scss';
50
+
51
+ export class ExampleComponent {
52
+ sassFile = sassFile(styles);
53
+
54
+ async ngOnInit() {
55
+ this.tasksService.getAll();
56
+ console.log(this.sassFile.stringValue('--max-container-size'))
57
+ console.log(this.sassFile.numberValue('--max-container-size'))
58
+ }
59
+ }
60
+ */
61
+ function sassFile(styles) {
62
+ const lines = (styles.split('\n'));
63
+ return {
64
+ stringValue: (name) => {
65
+ for (let index = 0; index < lines.length; index++) {
66
+ const l = lines[index];
67
+ const [varName, value] = l.trim().split(':');
68
+ if (varName === name) {
69
+ return value.replace(';', '');
70
+ }
71
+ }
72
+ },
73
+ numberValue: (name) => {
74
+ for (let index = 0; index < lines.length; index++) {
75
+ const l = lines[index];
76
+ const [varName, value] = l.trim().split(':');
77
+ if (varName === name) {
78
+ return Number(value.replace('px', '').replace(';', ''));
79
+ }
80
+ }
81
+ }
82
+ };
83
+ }
84
+ NgHelpers.sassFile = sassFile;
85
+ })(NgHelpers || (NgHelpers = {}));
86
+ ;
87
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/angular.helper.ts
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYW5ndWxhci5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxNQUFNLHNCQUFzQixHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3hDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDUyxFQUFVO1FBQVYsT0FBRSxHQUFGLEVBQUUsQ0FBUTtJQUNmLENBQUM7Q0FDTjtBQUVELE1BQU0sS0FBVyxTQUFTLENBOEV6QjtBQTlFRCxXQUFpQixTQUFTO0lBRXhCLFNBQVMsU0FBUyxDQUFDLGNBQTRCO1FBQzdDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUMzQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQztTQUNqRDtRQUNELE9BQU8sY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBZ0IsU0FBUyxDQUFDLFFBQXNCO1FBQzlDLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFGZSxtQkFBUyxZQUV4QixDQUFBO0lBRUQ7O09BRUc7SUFDSCxTQUFnQixXQUFXLENBQUMsUUFBZ0M7UUFDMUQsSUFBSSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sa0JBQWtCLENBQUM7U0FDM0I7UUFDRCxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQU5lLHFCQUFXLGNBTTFCLENBQUE7SUFFRCxTQUFnQixXQUFXLENBQUMsUUFBc0I7UUFDaEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLElBQUksY0FBYyxFQUFFLEVBQUUsRUFBRTtZQUN0QixPQUFPLDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRCxPQUFPLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQU5lLHFCQUFXLGNBTTFCLENBQUE7SUFJRDs7Ozs7Ozs7Ozs7Ozs7O1NBZUs7SUFDTCxTQUFnQixRQUFRLENBQUMsTUFBYztRQUNyQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPO1lBQ0wsV0FBVyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7Z0JBQzVCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUNqRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO3dCQUNwQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUMvQjtpQkFDRjtZQUNILENBQUM7WUFDRCxXQUFXLEVBQUUsQ0FBQyxJQUFZLEVBQVUsRUFBRTtnQkFDcEMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ2pELE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdkIsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7d0JBQ3BCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDekQ7aUJBQ0Y7WUFDSCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUF0QmUsa0JBQVEsV0FzQnZCLENBQUE7QUFDSCxDQUFDLEVBOUVnQixTQUFTLEtBQVQsU0FBUyxRQThFekI7QUFJQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDhEQUE4RCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5cbmNvbnN0IGNvbXBvbmVudENvbnRleHRTeW1ib2wgPSBTeW1ib2woKTtcbmNvbnN0IGNvbXBvbmVudHNEZXN0cm95JFN1YmplY3RzID0ge307XG5cbmV4cG9ydCBjbGFzcyBTZXJpYWxpemVkU3ViamVjdDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZDogc3RyaW5nXG4gICkgeyB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgTmdIZWxwZXJzIHtcblxuICBmdW5jdGlvbiBzdWJqZWN0SWQoZGVzdHJveVN1YmplY3Q6IFN1YmplY3Q8YW55Pik6IFNlcmlhbGl6ZWRTdWJqZWN0PGFueT4ge1xuICAgIGNvbnN0IGlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuICAgIGlmICghZGVzdHJveVN1YmplY3RbY29tcG9uZW50Q29udGV4dFN5bWJvbF0pIHtcbiAgICAgIGRlc3Ryb3lTdWJqZWN0W2NvbXBvbmVudENvbnRleHRTeW1ib2xdID0gbmV3IFNlcmlhbGl6ZWRTdWJqZWN0KGlkKTtcbiAgICAgIGNvbXBvbmVudHNEZXN0cm95JFN1YmplY3RzW2lkXSA9IGRlc3Ryb3lTdWJqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gZGVzdHJveVN1YmplY3RbY29tcG9uZW50Q29udGV4dFN5bWJvbF07XG4gIH1cblxuICAvKipcbiAgICogaWYgeW91IGFyZSB1c2luZyB0aGlzLi4gcGxlYXNlIGNhbGwgSGVscGVycy5uZy51bnN1YnNjcmliZSh0aGlzLiRkZXN0cm95KSBpbiBuZ09uRGVzdHJveSgpO1xuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShkZXN0cm95JDogU3ViamVjdDxhbnk+KTogU2VyaWFsaXplZFN1YmplY3Q8YW55PiB7XG4gICAgcmV0dXJuIHN1YmplY3RJZChkZXN0cm95JCk7XG4gIH1cblxuICAvKipcbiAgICogaWYgeW91IGFyZSB1c2luZyB0aGlzLi4gcGxlYXNlIGNhbGwgSGVscGVycy5uZy51bnN1YnNjcmliZSh0aGlzLiRkZXN0cm95KSBpbiBuZ09uRGVzdHJveSgpO1xuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplKGRlc3Ryb3kkOiBTZXJpYWxpemVkU3ViamVjdDxhbnk+KTogU3ViamVjdDxhbnk+IHtcbiAgICBpZiAoZGVzdHJveSQ/LmlkKSB7XG4gICAgICBjb25zdCByZWFsRGVzdHJveVN1YmplY3QgPSBjb21wb25lbnRzRGVzdHJveSRTdWJqZWN0c1tkZXN0cm95JC5pZF07XG4gICAgICByZXR1cm4gcmVhbERlc3Ryb3lTdWJqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFN1YmplY3QoKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB1bnN1YnNjcmliZShkZXN0cm95JDogU3ViamVjdDxhbnk+KSB7XG4gICAgY29uc3QgZGVzdHJveVN1YmplY3QgPSBzdWJqZWN0SWQoZGVzdHJveSQpO1xuICAgIGlmIChkZXN0cm95U3ViamVjdD8uaWQpIHtcbiAgICAgIGRlbGV0ZSBjb21wb25lbnRzRGVzdHJveSRTdWJqZWN0c1tkZXN0cm95U3ViamVjdC5pZF07XG4gICAgICBkZWxldGUgZGVzdHJveVN1YmplY3RbY29tcG9uZW50Q29udGV4dFN5bWJvbF07XG4gICAgfVxuICB9XG5cblxuXG4gIC8qKlxuICBnZXQgcHJvcGVydGllcyBmcm9tIHNjc3MgZmlsZVxuXG5cbiAgaW1wb3J0IHN0eWxlcyBmcm9tICcuL3Rhc2tzLW5ncngtZGF0YS5jb21wb25lbnQuc2Nzcyc7XG5cbiAgZXhwb3J0IGNsYXNzIEV4YW1wbGVDb21wb25lbnQge1xuICAgIHNhc3NGaWxlID0gc2Fzc0ZpbGUoc3R5bGVzKTtcblxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy50YXNrc1NlcnZpY2UuZ2V0QWxsKCk7XG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnNhc3NGaWxlLnN0cmluZ1ZhbHVlKCctLW1heC1jb250YWluZXItc2l6ZScpKVxuICAgICAgY29uc29sZS5sb2codGhpcy5zYXNzRmlsZS5udW1iZXJWYWx1ZSgnLS1tYXgtY29udGFpbmVyLXNpemUnKSlcbiAgICB9XG4gIH1cbiAgICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHNhc3NGaWxlKHN0eWxlczogc3RyaW5nKSB7XG4gICAgY29uc3QgbGluZXMgPSAoc3R5bGVzLnNwbGl0KCdcXG4nKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0cmluZ1ZhbHVlOiAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaW5lcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBsID0gbGluZXNbaW5kZXhdO1xuICAgICAgICAgIGNvbnN0IFt2YXJOYW1lLCB2YWx1ZV0gPSBsLnRyaW0oKS5zcGxpdCgnOicpO1xuICAgICAgICAgIGlmICh2YXJOYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgnOycsICcnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBudW1iZXJWYWx1ZTogKG5hbWU6IHN0cmluZyk6IG51bWJlciA9PiB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaW5lcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBsID0gbGluZXNbaW5kZXhdO1xuICAgICAgICAgIGNvbnN0IFt2YXJOYW1lLCB2YWx1ZV0gPSBsLnRyaW0oKS5zcGxpdCgnOicpO1xuICAgICAgICAgIGlmICh2YXJOYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlLnJlcGxhY2UoJ3B4JywgJycpLnJlcGxhY2UoJzsnLCAnJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9hbmd1bGFyLmhlbHBlci50cyJdfQ==