@joster-dev/chaos-control 0.1.0

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 (54) hide show
  1. package/README.md +86 -0
  2. package/esm2022/joster-dev-chaos-control.mjs +5 -0
  3. package/esm2022/lib/chaos-control.module.mjs +67 -0
  4. package/esm2022/lib/chaos-control.service.mjs +14 -0
  5. package/esm2022/lib/components/choice/choice.component.mjs +52 -0
  6. package/esm2022/lib/components/color/color.component.mjs +77 -0
  7. package/esm2022/lib/components/file/file.component.mjs +131 -0
  8. package/esm2022/lib/components/index.mjs +8 -0
  9. package/esm2022/lib/components/number/number.component.mjs +134 -0
  10. package/esm2022/lib/components/readonly/readonly.component.mjs +14 -0
  11. package/esm2022/lib/components/select/select.component.mjs +69 -0
  12. package/esm2022/lib/components/text/text.component.mjs +162 -0
  13. package/esm2022/lib/directives/border-radius.directive.mjs +41 -0
  14. package/esm2022/lib/directives/control.directive.mjs +46 -0
  15. package/esm2022/lib/directives/index.mjs +4 -0
  16. package/esm2022/lib/directives/item.directive.mjs +115 -0
  17. package/esm2022/lib/models/index.mjs +7 -0
  18. package/esm2022/lib/models/is-item.function.mjs +8 -0
  19. package/esm2022/lib/models/is-items.function.mjs +5 -0
  20. package/esm2022/lib/models/is-number.function.mjs +5 -0
  21. package/esm2022/lib/models/is-primitive.function.mjs +7 -0
  22. package/esm2022/lib/models/item.interface.mjs +2 -0
  23. package/esm2022/lib/models/primitive.type.mjs +2 -0
  24. package/esm2022/public-api.mjs +6 -0
  25. package/fesm2022/joster-dev-chaos-control.mjs +894 -0
  26. package/fesm2022/joster-dev-chaos-control.mjs.map +1 -0
  27. package/index.d.ts +5 -0
  28. package/lib/LICENSE +9 -0
  29. package/lib/chaos-control.module.d.ts +20 -0
  30. package/lib/chaos-control.service.d.ts +6 -0
  31. package/lib/components/choice/choice.component.d.ts +15 -0
  32. package/lib/components/color/color.component.d.ts +22 -0
  33. package/lib/components/file/file.component.d.ts +31 -0
  34. package/lib/components/index.d.ts +7 -0
  35. package/lib/components/number/number.component.d.ts +33 -0
  36. package/lib/components/readonly/readonly.component.d.ts +8 -0
  37. package/lib/components/select/select.component.d.ts +23 -0
  38. package/lib/components/text/text.component.d.ts +41 -0
  39. package/lib/directives/border-radius.directive.d.ts +12 -0
  40. package/lib/directives/control.directive.d.ts +18 -0
  41. package/lib/directives/index.d.ts +3 -0
  42. package/lib/directives/item.directive.d.ts +35 -0
  43. package/lib/models/index.d.ts +6 -0
  44. package/lib/models/is-item.function.d.ts +2 -0
  45. package/lib/models/is-items.function.d.ts +2 -0
  46. package/lib/models/is-number.function.d.ts +1 -0
  47. package/lib/models/is-primitive.function.d.ts +2 -0
  48. package/lib/models/item.interface.d.ts +6 -0
  49. package/lib/models/primitive.type.d.ts +1 -0
  50. package/package.json +57 -0
  51. package/public-api.d.ts +4 -0
  52. package/src/lib/atomic.scss +87 -0
  53. package/src/lib/styles.scss +83 -0
  54. package/src/lib/variables.scss +3 -0
@@ -0,0 +1,115 @@
1
+ import { Directive, Input, Self } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { debounceTime } from 'rxjs/operators';
4
+ import { isItems, isNumber, isPrimitive } from '../models';
5
+ import { ControlDirective } from './control.directive';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ export class ItemDirective extends ControlDirective {
9
+ get items() {
10
+ return this._items;
11
+ }
12
+ set items(value) {
13
+ if (!isItems(value))
14
+ throw new Error('[items] expects: { key: boolean | number | string, value: string }[]');
15
+ this._items = value;
16
+ this.validation.next();
17
+ }
18
+ get limit() {
19
+ return this._limit;
20
+ }
21
+ set limit(value) {
22
+ if (value == null)
23
+ value = 0;
24
+ if (!isNumber(value) || value < 0 || !Number.isInteger(value))
25
+ throw new Error('limit expects: positive integer');
26
+ this._limit = value;
27
+ this.validation.next();
28
+ }
29
+ get isMultiple() {
30
+ return this._isMultiple;
31
+ }
32
+ set isMultiple(value) {
33
+ if (value === '')
34
+ value = true;
35
+ if (value == null)
36
+ value = false;
37
+ if (typeof value !== 'boolean')
38
+ throw new Error('multiple expects: boolean');
39
+ this._isMultiple = value;
40
+ }
41
+ set model(value) {
42
+ this._model = value;
43
+ this.onChange(value.length === 0
44
+ ? null
45
+ : this.isMultiple
46
+ ? this._model
47
+ : this._model[0]);
48
+ }
49
+ constructor(ngControl) {
50
+ super();
51
+ this.ngControl = ngControl;
52
+ this._items = [];
53
+ this._limit = 0;
54
+ this._isMultiple = false;
55
+ this._model = [];
56
+ this.validation
57
+ .pipe(debounceTime(100))
58
+ .subscribe(() => this.validate());
59
+ ngControl.valueAccessor = this;
60
+ }
61
+ onChange(_value) { }
62
+ registerOnChange(fn) {
63
+ this.onChange = fn;
64
+ }
65
+ writeValue(value) {
66
+ if (value == null)
67
+ value = [];
68
+ if (!Array.isArray(value))
69
+ value = [value];
70
+ if (value.every(item => isPrimitive(item)))
71
+ this._model = value;
72
+ }
73
+ invalidValidator(items, isMultiple) {
74
+ return (control) => (isMultiple
75
+ ? Array.isArray(control.value) && control.value.every((key) => !items.map(item => item.key).includes(key))
76
+ : ![undefined, null].includes(control.value) && !items.map(item => item.key).includes(control.value))
77
+ ? { invalid: control.value }
78
+ : null;
79
+ }
80
+ limitValidator(limit) {
81
+ return (control) => control.value !== null && limit !== 0 && control.value.length > limit
82
+ ? { limit: { value: control.value } }
83
+ : null;
84
+ }
85
+ validate() {
86
+ const validators = [
87
+ this.invalidValidator(this._items, this._isMultiple),
88
+ ];
89
+ if (this._isMultiple)
90
+ validators.push(this.limitValidator(this._limit));
91
+ if (this.required === true)
92
+ validators.push(Validators.required);
93
+ if (this.ngControl.control === null)
94
+ throw new Error('expected control to be defined');
95
+ this.ngControl.control.setValidators(validators);
96
+ this.ngControl.control.updateValueAndValidity();
97
+ }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ItemDirective, deps: [{ token: i1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
99
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.5", type: ItemDirective, selector: "[joItem]", inputs: { items: "items", limit: "limit", isMultiple: "isMultiple" }, usesInheritance: true, ngImport: i0 }); }
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ItemDirective, decorators: [{
102
+ type: Directive,
103
+ args: [{
104
+ selector: '[joItem]'
105
+ }]
106
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
107
+ type: Self
108
+ }] }], propDecorators: { items: [{
109
+ type: Input
110
+ }], limit: [{
111
+ type: Input
112
+ }], isMultiple: [{
113
+ type: Input
114
+ }] } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGFvcy1jb250cm9sL3NyYy9saWIvZGlyZWN0aXZlcy9pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFtRixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFtQixNQUFNLFdBQVcsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxhQUFjLFNBQVEsZ0JBQWdCO0lBQ2pELElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBa0Y7UUFDMUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUdELElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLEtBQUssSUFBSSxJQUFJO1lBQ2YsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVaLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxD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LFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEQsQ0FBQzs4R0FwSFUsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUh6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO2lCQUNyQjs7MEJBMERJLElBQUk7eUNBdkRILEtBQUs7c0JBRFIsS0FBSztnQkFhRixLQUFLO3NCQURSLEtBQUs7Z0JBaUJGLFVBQVU7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBpc0l0ZW1zLCBpc051bWJlciwgaXNQcmltaXRpdmUsIEl0ZW0sIHByaW1pdGl2ZSB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG5pbXBvcnQgeyBDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9sLmRpcmVjdGl2ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tqb0l0ZW1dJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSXRlbURpcmVjdGl2ZSBleHRlbmRzIENvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KClcclxuICBnZXQgaXRlbXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XHJcbiAgfVxyXG4gIHNldCBpdGVtcyh2YWx1ZTogeyBrZXk6IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIFtrZXk6IHN0cmluZ106IHVua25vd24gfVtdKSB7XHJcbiAgICBpZiAoIWlzSXRlbXModmFsdWUpKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tpdGVtc10gZXhwZWN0czogeyBrZXk6IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdJyk7XHJcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uLm5leHQoKTtcclxuICB9XHJcbiAgX2l0ZW1zOiBJdGVtW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgbGltaXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGltaXQ7XHJcbiAgfVxyXG4gIHNldCBsaW1pdCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbClcclxuICAgICAgdmFsdWUgPSAwO1xyXG5cclxuICAgIGlmICghaXNOdW1iZXIodmFsdWUpIHx8IHZhbHVlIDwgMCB8fCAhTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignbGltaXQgZXhwZWN0czogcG9zaXRpdmUgaW50ZWdlcicpO1xyXG5cclxuICAgIHRoaXMuX2xpbWl0ID0gdmFsdWU7XHJcbiAgICB0aGlzLnZhbGlkYXRpb24ubmV4dCgpO1xyXG4gIH1cclxuICBfbGltaXQgPSAwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBpc011bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzTXVsdGlwbGU7XHJcbiAgfVxyXG4gIHNldCBpc011bHRpcGxlKHZhbHVlOiBib29sZWFuIHwgJycpIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gJycpXHJcbiAgICAgIHZhbHVlID0gdHJ1ZTtcclxuICAgIGlmICh2YWx1ZSA9PSBudWxsKVxyXG4gICAgICB2YWx1ZSA9IGZhbHNlO1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ211bHRpcGxlIGV4cGVjdHM6IGJvb2xlYW4nKVxyXG4gICAgdGhpcy5faXNNdWx0aXBsZSA9IHZhbHVlO1xyXG4gIH1cclxuICBfaXNNdWx0aXBsZSA9IGZhbHNlO1xyXG5cclxuICBzZXQgbW9kZWwodmFsdWU6IHByaW1pdGl2ZVtdKSB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZShcclxuICAgICAgdmFsdWUubGVuZ3RoID09PSAwXHJcbiAgICAgICAgPyBudWxsXHJcbiAgICAgICAgOiB0aGlzLmlzTXVsdGlwbGVcclxuICAgICAgICAgID8gdGhpcy5fbW9kZWxcclxuICAgICAgICAgIDogdGhpcy5fbW9kZWxbMF1cclxuICAgICk7XHJcbiAgfVxyXG4gIF9tb2RlbDogcHJpbWl0aXZlW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMudmFsaWRhdGlvblxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnZhbGlkYXRlKCkpO1xyXG4gICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoX3ZhbHVlOiBwcmltaXRpdmVbXSB8IHByaW1pdGl2ZSB8IG51bGwpIHsgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IHByaW1pdGl2ZVtdIHwgcHJpbWl0aXZlIHwgbnVsbCkge1xyXG4gICAgaWYgKHZhbHVlID09IG51bGwpXHJcbiAgICAgIHZhbHVlID0gW107XHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSlcclxuICAgICAgdmFsdWUgPSBbdmFsdWVdO1xyXG5cclxuICAgIGlmICh2YWx1ZS5ldmVyeShpdGVtID0+IGlzUHJpbWl0aXZlKGl0ZW0pKSlcclxuICAgICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW52YWxpZFZhbGlkYXRvcihpdGVtczogSXRlbVtdLCBpc011bHRpcGxlOiBib29sZWFuKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxyXG4gICAgICAoXHJcbiAgICAgICAgaXNNdWx0aXBsZVxyXG4gICAgICAgICAgPyBBcnJheS5pc0FycmF5KGNvbnRyb2wudmFsdWUpICYmIGNvbnRyb2wudmFsdWUuZXZlcnkoKGtleTogYW55KSA9PiAhaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5rZXkpLmluY2x1ZGVzKGtleSkpXHJcbiAgICAgICAgICA6ICFbdW5kZWZpbmVkLCBudWxsXS5pbmNsdWRlcyhjb250cm9sLnZhbHVlKSAmJiAhaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5rZXkpLmluY2x1ZGVzKGNvbnRyb2wudmFsdWUpXHJcbiAgICAgIClcclxuICAgICAgICA/IHsgaW52YWxpZDogY29udHJvbC52YWx1ZSB9XHJcbiAgICAgICAgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaW1pdFZhbGlkYXRvcihsaW1pdDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxyXG4gICAgICBjb250cm9sLnZhbHVlICE9PSBudWxsICYmIGxpbWl0ICE9PSAwICYmIGNvbnRyb2wudmFsdWUubGVuZ3RoID4gbGltaXRcclxuICAgICAgICA/IHsgbGltaXQ6IHsgdmFsdWU6IGNvbnRyb2wudmFsdWUgfSB9XHJcbiAgICAgICAgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZSgpIHtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXHJcbiAgICAgIHRoaXMuaW52YWxpZFZhbGlkYXRvcih0aGlzLl9pdGVtcywgdGhpcy5faXNNdWx0aXBsZSksXHJcbiAgICBdO1xyXG5cclxuICAgIGlmICh0aGlzLl9pc011bHRpcGxlKVxyXG4gICAgICB2YWxpZGF0b3JzLnB1c2godGhpcy5saW1pdFZhbGlkYXRvcih0aGlzLl9saW1pdCkpO1xyXG5cclxuICAgIGlmICh0aGlzLnJlcXVpcmVkID09PSB0cnVlKVxyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sLmNvbnRyb2wgPT09IG51bGwpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgY29udHJvbCB0byBiZSBkZWZpbmVkJyk7XHJcblxyXG4gICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './is-item.function';
2
+ export * from './is-items.function';
3
+ export * from './is-number.function';
4
+ export * from './is-primitive.function';
5
+ export * from './item.interface';
6
+ export * from './primitive.type';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGFvcy1jb250cm9sL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pcy1pdGVtLmZ1bmN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9pcy1pdGVtcy5mdW5jdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaXMtbnVtYmVyLmZ1bmN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9pcy1wcmltaXRpdmUuZnVuY3Rpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2l0ZW0uaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wcmltaXRpdmUudHlwZSc7XHJcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { isPrimitive } from './is-primitive.function';
2
+ export function isItem(item) {
3
+ return typeof (item) === 'object'
4
+ && item !== null
5
+ && isPrimitive(item.key)
6
+ && typeof item.value === 'string';
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaXRlbS5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYW9zLWNvbnRyb2wvc3JjL2xpYi9tb2RlbHMvaXMtaXRlbS5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHdEQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFVO0lBQy9CLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7V0FDNUIsSUFBSSxLQUFLLElBQUk7V0FDYixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztXQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ByaW1pdGl2ZSB9IGZyb20gJy4vaXMtcHJpbWl0aXZlLmZ1bmN0aW9uJztcclxuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4vaXRlbS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSXRlbShpdGVtOiBJdGVtKTogaXRlbSBpcyBJdGVtIHtcclxuICByZXR1cm4gdHlwZW9mIChpdGVtKSA9PT0gJ29iamVjdCdcclxuICAgICYmIGl0ZW0gIT09IG51bGxcclxuICAgICYmIGlzUHJpbWl0aXZlKGl0ZW0ua2V5KVxyXG4gICAgJiYgdHlwZW9mIGl0ZW0udmFsdWUgPT09ICdzdHJpbmcnO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import { isItem } from './is-item.function';
2
+ export function isItems(value) {
3
+ return Array.isArray(value) && value.every(item => isItem(item));
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaXRlbXMuZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGFvcy1jb250cm9sL3NyYy9saWIvbW9kZWxzL2lzLWl0ZW1zLmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc1QyxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQWE7SUFDbkMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNJdGVtIH0gZnJvbSAnLi9pcy1pdGVtLmZ1bmN0aW9uJztcclxuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4vaXRlbS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSXRlbXModmFsdWU6IEl0ZW1bXSk6IHZhbHVlIGlzIEl0ZW1bXSB7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmV2ZXJ5KGl0ZW0gPT4gaXNJdGVtKGl0ZW0pKTtcclxufVxyXG4iXX0=
@@ -0,0 +1,5 @@
1
+ export function isNumber(value) {
2
+ return typeof value === 'number'
3
+ && !isNaN(value);
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbnVtYmVyLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhb3MtY29udHJvbC9zcmMvbGliL21vZGVscy9pcy1udW1iZXIuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFjO0lBQ3JDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUTtXQUMzQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgbnVtYmVyIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJ1xyXG4gICAgJiYgIWlzTmFOKHZhbHVlKTtcclxufVxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { isNumber } from './is-number.function';
2
+ export function isPrimitive(value) {
3
+ return typeof value === 'boolean'
4
+ || isNumber(value)
5
+ || typeof value === 'string';
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcHJpbWl0aXZlLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhb3MtY29udHJvbC9zcmMvbGliL21vZGVscy9pcy1wcmltaXRpdmUuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2hELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBYztJQUN4QyxPQUFPLE9BQU8sS0FBSyxLQUFLLFNBQVM7V0FDNUIsUUFBUSxDQUFDLEtBQUssQ0FBQztXQUNmLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuL2lzLW51bWJlci5mdW5jdGlvbic7XHJcbmltcG9ydCB7IHByaW1pdGl2ZSB9IGZyb20gJy4vcHJpbWl0aXZlLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgcHJpbWl0aXZlIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbidcclxuICAgIHx8IGlzTnVtYmVyKHZhbHVlKVxyXG4gICAgfHwgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGFvcy1jb250cm9sL3NyYy9saWIvbW9kZWxzL2l0ZW0uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcmltaXRpdmUgfSBmcm9tICcuL3ByaW1pdGl2ZS50eXBlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbSB7XHJcbiAga2V5OiBwcmltaXRpdmU7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBbeDogc3RyaW5nXTogdW5rbm93bjtcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGFvcy1jb250cm9sL3NyYy9saWIvbW9kZWxzL3ByaW1pdGl2ZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBwcmltaXRpdmUgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ // Public API Surface of chaos-control
2
+ export * from './lib/chaos-control.module';
3
+ export * from './lib/components';
4
+ export * from './lib/models';
5
+ export * from './lib/chaos-control.service';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NoYW9zLWNvbnRyb2wvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBRXRDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUHVibGljIEFQSSBTdXJmYWNlIG9mIGNoYW9zLWNvbnRyb2xcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoYW9zLWNvbnRyb2wubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoYW9zLWNvbnRyb2wuc2VydmljZSc7XHJcbiJdfQ==