@luftborn/custom-elements 1.4.0 → 1.4.1

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 (196) hide show
  1. package/README.md +2 -2
  2. package/assets/style.css +277 -277
  3. package/azure-pipeline.yml +54 -0
  4. package/demo/index.html +585 -585
  5. package/demo/index.js +6109 -0
  6. package/demo/index.min.js +6110 -0
  7. package/demo/index.min.js.map +1 -0
  8. package/demo/index.ts +11 -11
  9. package/demo/old/index.html +586 -586
  10. package/demo/old/index.js +10849 -10849
  11. package/demo/old/index.min.js +10850 -10850
  12. package/demo/old/index.ts +10 -10
  13. package/dist/custom-form.d.ts +20 -20
  14. package/dist/custom-form.js +147 -147
  15. package/dist/elements/Address/AddressElement.d.ts +28 -28
  16. package/dist/elements/Address/AddressElement.js +206 -206
  17. package/dist/elements/BankField/BankFieldElement.d.ts +22 -22
  18. package/dist/elements/BankField/BankFieldElement.js +127 -127
  19. package/dist/elements/CPRElement/CPRElement.d.ts +14 -14
  20. package/dist/elements/CPRElement/CPRElement.js +82 -82
  21. package/dist/elements/CVRElement/CVRElement.d.ts +14 -14
  22. package/dist/elements/CVRElement/CVRElement.js +82 -82
  23. package/dist/elements/CheckBoxElement/CheckBoxElement.d.ts +14 -14
  24. package/dist/elements/CheckBoxElement/CheckBoxElement.js +96 -96
  25. package/dist/elements/CustomRegularExpression/CustomRegularExpressionElement.d.ts +12 -12
  26. package/dist/elements/CustomRegularExpression/CustomRegularExpressionElement.js +82 -82
  27. package/dist/elements/DateField/DateFieldElement.d.ts +12 -12
  28. package/dist/elements/DateField/DateFieldElement.js +85 -85
  29. package/dist/elements/DropDownList/DropDownListElement.d.ts +14 -14
  30. package/dist/elements/DropDownList/DropDownListElement.js +93 -93
  31. package/dist/elements/Elements.d.ts +18 -18
  32. package/dist/elements/Elements.js +37 -37
  33. package/dist/elements/EmailField/EmailFieldElement.d.ts +13 -13
  34. package/dist/elements/EmailField/EmailFieldElement.js +83 -83
  35. package/dist/elements/FileField/FileFieldElement.d.ts +15 -15
  36. package/dist/elements/FileField/FileFieldElement.js +103 -103
  37. package/dist/elements/IdentificationElement/IdentificationElement.d.ts +18 -18
  38. package/dist/elements/IdentificationElement/IdentificationElement.js +94 -94
  39. package/dist/elements/InternationaPhoneNumber/InternationaPhoneNumberElement.d.ts +16 -16
  40. package/dist/elements/InternationaPhoneNumber/InternationaPhoneNumberElement.js +114 -114
  41. package/dist/elements/NumericField/NumericFieldElement.d.ts +12 -12
  42. package/dist/elements/NumericField/NumericFieldElement.js +91 -91
  43. package/dist/elements/RadioButtonGroup/RadioButtonGroupElement.d.ts +14 -14
  44. package/dist/elements/RadioButtonGroup/RadioButtonGroupElement.js +99 -99
  45. package/dist/elements/TextAreaElement/TextAreaElement.d.ts +12 -12
  46. package/dist/elements/TextAreaElement/TextAreaElement.js +79 -79
  47. package/dist/elements/TextField/TextFieldElement.d.ts +12 -12
  48. package/dist/elements/TextField/TextFieldElement.js +79 -79
  49. package/dist/elements/TypeAhead/TypeAheadElement.d.ts +24 -24
  50. package/dist/elements/TypeAhead/TypeAheadElement.js +209 -209
  51. package/dist/framework/CustomEvents.d.ts +21 -21
  52. package/dist/framework/CustomEvents.js +47 -47
  53. package/dist/framework/CustomInputElement.d.ts +50 -50
  54. package/dist/framework/CustomInputElement.js +258 -258
  55. package/dist/framework/Language/Languages/Base/BaseDictionary.d.ts +4 -4
  56. package/dist/framework/Language/Languages/Base/BaseDictionary.js +20 -20
  57. package/dist/framework/Language/Languages/CzechDictionary.d.ts +4 -4
  58. package/dist/framework/Language/Languages/CzechDictionary.js +39 -39
  59. package/dist/framework/Language/Languages/DanishDictionary.d.ts +4 -4
  60. package/dist/framework/Language/Languages/DanishDictionary.js +39 -39
  61. package/dist/framework/Language/Languages/DutchDictionary.d.ts +4 -4
  62. package/dist/framework/Language/Languages/DutchDictionary.js +39 -39
  63. package/dist/framework/Language/Languages/EnglishDictionary.d.ts +4 -4
  64. package/dist/framework/Language/Languages/EnglishDictionary.js +39 -39
  65. package/dist/framework/Language/Languages/EstonianDictionary.d.ts +4 -4
  66. package/dist/framework/Language/Languages/EstonianDictionary.js +39 -39
  67. package/dist/framework/Language/Languages/FinnishDictionary.d.ts +4 -4
  68. package/dist/framework/Language/Languages/FinnishDictionary.js +39 -39
  69. package/dist/framework/Language/Languages/FrenchDictionary.d.ts +4 -4
  70. package/dist/framework/Language/Languages/FrenchDictionary.js +39 -39
  71. package/dist/framework/Language/Languages/GermanDictionary.d.ts +4 -4
  72. package/dist/framework/Language/Languages/GermanDictionary.js +39 -39
  73. package/dist/framework/Language/Languages/GreekDictionary.d.ts +4 -4
  74. package/dist/framework/Language/Languages/GreekDictionary.js +39 -39
  75. package/dist/framework/Language/Languages/HungarianDictionary.d.ts +4 -4
  76. package/dist/framework/Language/Languages/HungarianDictionary.js +39 -39
  77. package/dist/framework/Language/Languages/IcelandicDictionary.d.ts +4 -4
  78. package/dist/framework/Language/Languages/IcelandicDictionary.js +39 -39
  79. package/dist/framework/Language/Languages/ItalianDictionary.d.ts +4 -4
  80. package/dist/framework/Language/Languages/ItalianDictionary.js +39 -39
  81. package/dist/framework/Language/Languages/LatvianDictionary.d.ts +4 -4
  82. package/dist/framework/Language/Languages/LatvianDictionary.js +39 -39
  83. package/dist/framework/Language/Languages/LituanianDictionary.d.ts +4 -4
  84. package/dist/framework/Language/Languages/LituanianDictionary.js +39 -39
  85. package/dist/framework/Language/Languages/NorwegianDictionary.d.ts +4 -4
  86. package/dist/framework/Language/Languages/NorwegianDictionary.js +39 -39
  87. package/dist/framework/Language/Languages/PolishDictionary.d.ts +4 -4
  88. package/dist/framework/Language/Languages/PolishDictionary.js +39 -39
  89. package/dist/framework/Language/Languages/PortugueseDictionary.d.ts +4 -4
  90. package/dist/framework/Language/Languages/PortugueseDictionary.js +39 -39
  91. package/dist/framework/Language/Languages/SpanishDictionary.d.ts +4 -4
  92. package/dist/framework/Language/Languages/SpanishDictionary.js +39 -39
  93. package/dist/framework/Language/Languages/SwedishDictionary.d.ts +4 -4
  94. package/dist/framework/Language/Languages/SwedishDictionary.js +39 -39
  95. package/dist/framework/Language/Translator.d.ts +23 -23
  96. package/dist/framework/Language/Translator.js +115 -115
  97. package/dist/framework/Models/OptionWithDescription.d.ts +6 -6
  98. package/dist/framework/Models/OptionWithDescription.js +9 -9
  99. package/dist/framework/Polyfills/getAttributeNamesPolyfill.d.ts +1 -1
  100. package/dist/framework/Polyfills/getAttributeNamesPolyfill.js +17 -17
  101. package/dist/framework/Translations/CaseConverter.d.ts +5 -5
  102. package/dist/framework/Translations/CaseConverter.js +50 -50
  103. package/dist/framework/Utilities/ArrayUtil.d.ts +6 -6
  104. package/dist/framework/Utilities/ArrayUtil.js +36 -36
  105. package/dist/framework/Utilities/DomUtil.d.ts +21 -21
  106. package/dist/framework/Utilities/DomUtil.js +101 -101
  107. package/dist/framework/Utilities/DomUtility.d.ts +3 -3
  108. package/dist/framework/Utilities/DomUtility.js +12 -12
  109. package/dist/framework/Utilities/MakeRequest.d.ts +8 -8
  110. package/dist/framework/Utilities/MakeRequest.js +48 -48
  111. package/dist/framework/Utilities/StringUtil.d.ts +4 -4
  112. package/dist/framework/Utilities/StringUtil.js +16 -16
  113. package/dist/framework/Utilities/ViewportUtil.d.ts +8 -8
  114. package/dist/framework/Utilities/ViewportUtil.js +42 -42
  115. package/dist/framework/Utilities/debouncer.d.ts +8 -8
  116. package/dist/framework/Utilities/debouncer.js +51 -51
  117. package/dist/framework/Validation/IValidator.interface.d.ts +3 -3
  118. package/dist/framework/Validation/IValidator.interface.js +2 -2
  119. package/dist/framework/Validation/Validators/BankAccount.d.ts +4 -4
  120. package/dist/framework/Validation/Validators/BankAccount.js +12 -12
  121. package/dist/framework/Validation/Validators/BankAccountRegistrationNumber.d.ts +4 -4
  122. package/dist/framework/Validation/Validators/BankAccountRegistrationNumber.js +12 -12
  123. package/dist/framework/Validation/Validators/BankIdNorway.d.ts +5 -5
  124. package/dist/framework/Validation/Validators/BankIdNorway.js +21 -21
  125. package/dist/framework/Validation/Validators/BankIdSweden.d.ts +5 -5
  126. package/dist/framework/Validation/Validators/BankIdSweden.js +21 -21
  127. package/dist/framework/Validation/Validators/CPR.d.ts +9 -9
  128. package/dist/framework/Validation/Validators/CPR.js +75 -75
  129. package/dist/framework/Validation/Validators/CVR.d.ts +5 -5
  130. package/dist/framework/Validation/Validators/CVR.js +30 -30
  131. package/dist/framework/custom-element.decorator.d.ts +9 -9
  132. package/dist/framework/custom-element.decorator.js +51 -51
  133. package/dist/index.d.ts +7 -7
  134. package/dist/index.js +14 -14
  135. package/package.json +38 -38
  136. package/src/custom-form.ts +140 -140
  137. package/src/elements/Address/AddressElement.ts +216 -216
  138. package/src/elements/BankField/BankFieldElement.ts +127 -127
  139. package/src/elements/CPRElement/CPRElement.ts +74 -74
  140. package/src/elements/CVRElement/CVRElement.ts +75 -75
  141. package/src/elements/CheckBoxElement/CheckBoxElement.ts +99 -99
  142. package/src/elements/CustomRegularExpression/CustomRegularExpressionElement.ts +75 -75
  143. package/src/elements/DateField/DateFieldElement.ts +78 -78
  144. package/src/elements/DropDownList/DropDownListElement.ts +100 -100
  145. package/src/elements/Elements.ts +37 -37
  146. package/src/elements/EmailField/EmailFieldElement.ts +78 -78
  147. package/src/elements/FileField/FileFieldElement.ts +96 -96
  148. package/src/elements/IdentificationElement/IdentificationElement.ts +104 -104
  149. package/src/elements/InternationaPhoneNumber/InternationaPhoneNumberElement.ts +116 -116
  150. package/src/elements/NumericField/NumericFieldElement.ts +84 -84
  151. package/src/elements/RadioButtonGroup/RadioButtonGroupElement.ts +103 -103
  152. package/src/elements/TextAreaElement/TextAreaElement.ts +72 -72
  153. package/src/elements/TextField/TextFieldElement.ts +72 -72
  154. package/src/elements/TypeAhead/TypeAheadElement.ts +248 -248
  155. package/src/framework/CustomEvents.ts +47 -47
  156. package/src/framework/CustomInputElement.ts +277 -277
  157. package/src/framework/Language/Languages/Base/BaseDictionary.ts +15 -15
  158. package/src/framework/Language/Languages/CzechDictionary.ts +18 -18
  159. package/src/framework/Language/Languages/DanishDictionary.ts +17 -17
  160. package/src/framework/Language/Languages/DutchDictionary.ts +17 -17
  161. package/src/framework/Language/Languages/EnglishDictionary.ts +18 -18
  162. package/src/framework/Language/Languages/EstonianDictionary.ts +17 -17
  163. package/src/framework/Language/Languages/FinnishDictionary.ts +17 -17
  164. package/src/framework/Language/Languages/FrenchDictionary.ts +17 -17
  165. package/src/framework/Language/Languages/GermanDictionary.ts +17 -17
  166. package/src/framework/Language/Languages/GreekDictionary.ts +17 -17
  167. package/src/framework/Language/Languages/HungarianDictionary.ts +17 -17
  168. package/src/framework/Language/Languages/IcelandicDictionary.ts +17 -17
  169. package/src/framework/Language/Languages/ItalianDictionary.ts +17 -17
  170. package/src/framework/Language/Languages/LatvianDictionary.ts +17 -17
  171. package/src/framework/Language/Languages/LituanianDictionary.ts +17 -17
  172. package/src/framework/Language/Languages/NorwegianDictionary.ts +17 -17
  173. package/src/framework/Language/Languages/PolishDictionary.ts +17 -17
  174. package/src/framework/Language/Languages/PortugueseDictionary.ts +17 -17
  175. package/src/framework/Language/Languages/SpanishDictionary.ts +17 -17
  176. package/src/framework/Language/Languages/SwedishDictionary.ts +17 -17
  177. package/src/framework/Language/Translator.ts +110 -110
  178. package/src/framework/Models/OptionWithDescription.ts +8 -8
  179. package/src/framework/Polyfills/getAttributeNamesPolyfill.ts +13 -13
  180. package/src/framework/Translations/CaseConverter.ts +43 -43
  181. package/src/framework/Utilities/ArrayUtil.ts +31 -31
  182. package/src/framework/Utilities/DomUtil.ts +117 -117
  183. package/src/framework/Utilities/DomUtility.ts +6 -6
  184. package/src/framework/Utilities/MakeRequest.ts +47 -47
  185. package/src/framework/Utilities/StringUtil.ts +8 -8
  186. package/src/framework/Utilities/ViewportUtil.ts +46 -46
  187. package/src/framework/Utilities/debouncer.ts +66 -66
  188. package/src/framework/Validation/IValidator.interface.ts +3 -3
  189. package/src/framework/Validation/Validators/BankAccount.ts +7 -7
  190. package/src/framework/Validation/Validators/BankAccountRegistrationNumber.ts +8 -8
  191. package/src/framework/Validation/Validators/BankIdNorway.ts +21 -21
  192. package/src/framework/Validation/Validators/BankIdSweden.ts +21 -21
  193. package/src/framework/Validation/Validators/CPR.ts +82 -82
  194. package/src/framework/Validation/Validators/CVR.ts +27 -27
  195. package/src/framework/custom-element.decorator.ts +57 -57
  196. package/src/index.ts +12 -12
@@ -1,50 +1,50 @@
1
- import { CustomElementEvent, CustomElementEventArgs } from "./CustomEvents";
2
- import OptionWithDescription from "./Models/OptionWithDescription";
3
- import DomUtil from "./Utilities/DomUtil";
4
- export declare abstract class CustomInputElement extends HTMLElement {
5
- private dependentOnList;
6
- private visibilityState;
7
- protected touched: boolean;
8
- protected domUtil: DomUtil;
9
- protected hasValueDependency: any;
10
- protected noValueDependency: any;
11
- protected dependencies: any[];
12
- onChange: CustomElementEvent<CustomElementEventArgs>;
13
- onValidate: CustomElementEvent<CustomElementEventArgs>;
14
- onVisibilityChanged: CustomElementEvent<CustomElementEventArgs>;
15
- name: string;
16
- options: any[];
17
- optionsWithDescriptions: OptionWithDescription[];
18
- required: boolean;
19
- customValue: string;
20
- allDependenciesMustBeMet: boolean;
21
- multi: boolean;
22
- max: any;
23
- min: any;
24
- step: any;
25
- constructor();
26
- abstract get value(): any;
27
- abstract set value(value: any);
28
- abstract get valid(): boolean;
29
- abstract initChildInputs(): void;
30
- abstract validate(): void;
31
- abstract change($event: any): void;
32
- compareVlaues: any[];
33
- isValueConditionMatched(val: any): boolean;
34
- connectedCallback(): void;
35
- init(): void;
36
- private parseData;
37
- private bindEvents;
38
- private setAttributes;
39
- private bindDependencies;
40
- private bindDependency;
41
- private setVisibility;
42
- private hide;
43
- private show;
44
- protected getChildInput(selector: string): HTMLInputElement;
45
- protected getChildInputs(selector: string): HTMLInputElement[];
46
- protected getChildElement(selector: string): HTMLElement;
47
- protected getChildElements(selector: string): HTMLElement[];
48
- RegisterDependentOn(name: string, initialValue?: boolean): void;
49
- DependentOnStateChanged(name: string, state: boolean): void;
50
- }
1
+ import { CustomElementEvent, CustomElementEventArgs } from "./CustomEvents";
2
+ import OptionWithDescription from "./Models/OptionWithDescription";
3
+ import DomUtil from "./Utilities/DomUtil";
4
+ export declare abstract class CustomInputElement extends HTMLElement {
5
+ private dependentOnList;
6
+ private visibilityState;
7
+ protected touched: boolean;
8
+ protected domUtil: DomUtil;
9
+ protected hasValueDependency: any;
10
+ protected noValueDependency: any;
11
+ protected dependencies: any[];
12
+ onChange: CustomElementEvent<CustomElementEventArgs>;
13
+ onValidate: CustomElementEvent<CustomElementEventArgs>;
14
+ onVisibilityChanged: CustomElementEvent<CustomElementEventArgs>;
15
+ name: string;
16
+ options: any[];
17
+ optionsWithDescriptions: OptionWithDescription[];
18
+ required: boolean;
19
+ customValue: string;
20
+ allDependenciesMustBeMet: boolean;
21
+ multi: boolean;
22
+ max: any;
23
+ min: any;
24
+ step: any;
25
+ constructor();
26
+ abstract get value(): any;
27
+ abstract set value(value: any);
28
+ abstract get valid(): boolean;
29
+ abstract initChildInputs(): void;
30
+ abstract validate(): void;
31
+ abstract change($event: any): void;
32
+ compareVlaues: any[];
33
+ isValueConditionMatched(val: any): boolean;
34
+ connectedCallback(): void;
35
+ init(): void;
36
+ private parseData;
37
+ private bindEvents;
38
+ private setAttributes;
39
+ private bindDependencies;
40
+ private bindDependency;
41
+ private setVisibility;
42
+ private hide;
43
+ private show;
44
+ protected getChildInput(selector: string): HTMLInputElement;
45
+ protected getChildInputs(selector: string): HTMLInputElement[];
46
+ protected getChildElement(selector: string): HTMLElement;
47
+ protected getChildElements(selector: string): HTMLElement[];
48
+ RegisterDependentOn(name: string, initialValue?: boolean): void;
49
+ DependentOnStateChanged(name: string, state: boolean): void;
50
+ }
@@ -1,259 +1,259 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.CustomInputElement = void 0;
19
- var CustomEvents_1 = require("./CustomEvents");
20
- var ArrayUtil_1 = require("./Utilities/ArrayUtil");
21
- var DomUtil_1 = require("./Utilities/DomUtil");
22
- var IDictionary = /** @class */ (function () {
23
- function IDictionary() {
24
- }
25
- return IDictionary;
26
- }());
27
- var CustomInputElement = /** @class */ (function (_super) {
28
- __extends(CustomInputElement, _super);
29
- function CustomInputElement() {
30
- var _this = _super.call(this) || this;
31
- _this.dependentOnList = new IDictionary();
32
- _this.visibilityState = true;
33
- _this.touched = false;
34
- _this.onChange = new CustomEvents_1.CustomElementEvent();
35
- _this.onValidate = new CustomEvents_1.CustomElementEvent();
36
- _this.onVisibilityChanged = new CustomEvents_1.CustomElementEvent();
37
- _this.allDependenciesMustBeMet = false;
38
- _this.multi = false;
39
- _this.compareVlaues = [];
40
- return _this;
41
- }
42
- CustomInputElement.prototype.isValueConditionMatched = function (val) {
43
- var _this = this;
44
- if (val && Array.isArray(val) && val.length) {
45
- var result_1 = false;
46
- val.forEach(function (element) {
47
- var elementMatched = _this.compareVlaues.findIndex(function (x) { return x == element; }) !== -1;
48
- if (elementMatched) {
49
- result_1 = true;
50
- return;
51
- }
52
- });
53
- return result_1;
54
- }
55
- return this.compareVlaues.findIndex(function (x) { return x == val; }) !== -1;
56
- };
57
- CustomInputElement.prototype.connectedCallback = function () {
58
- this.init();
59
- this.setAttributes();
60
- };
61
- CustomInputElement.prototype.init = function () {
62
- var _this = this;
63
- this.style.width = "100%";
64
- this.domUtil = new DomUtil_1.default(this);
65
- this.parseData();
66
- this.initChildInputs();
67
- this.bindEvents();
68
- this.setAttributes();
69
- window.addEventListener("load", function () {
70
- _this.bindDependencies();
71
- });
72
- };
73
- CustomInputElement.prototype.parseData = function () {
74
- try {
75
- if (!(this.children[0] instanceof HTMLScriptElement)) {
76
- return;
77
- }
78
- var data = JSON.parse(this.children[0].innerHTML);
79
- this.options = data.options;
80
- this.optionsWithDescriptions = data.optionsWithDescriptions;
81
- this.hasValueDependency = data.hasValueDependency;
82
- this.noValueDependency = data.noValueDependency;
83
- this.dependencies = data.dependencies;
84
- this.required = data.required;
85
- this.name = data.name;
86
- this.allDependenciesMustBeMet = data.allDependenciesMustBeMet;
87
- this.multi = data.multi;
88
- this.max = data.max;
89
- this.min = data.min;
90
- this.step = data.step;
91
- this.customValue = data.value;
92
- }
93
- catch (ex) {
94
- console.error(ex);
95
- }
96
- };
97
- CustomInputElement.prototype.bindEvents = function () {
98
- var _this = this;
99
- this.onValidate.on(function (e) {
100
- if (_this.valid) {
101
- if (_this.closest('.custom-validation-target')) {
102
- _this.closest('.custom-validation-target').classList.remove("invalid");
103
- _this.closest('.custom-validation-target').classList.add("valid");
104
- }
105
- }
106
- else {
107
- if (_this.closest('.custom-validation-target')) {
108
- _this.closest('.custom-validation-target').classList.add("invalid");
109
- _this.closest('.custom-validation-target').classList.remove("valid");
110
- }
111
- _this.domUtil.focus();
112
- }
113
- });
114
- this.onChange.on(function (e) {
115
- if (_this.touched) {
116
- _this.validate();
117
- }
118
- });
119
- };
120
- CustomInputElement.prototype.setAttributes = function () {
121
- this.setAttribute("custom-input", "");
122
- this.setAttribute("name", this.name);
123
- };
124
- CustomInputElement.prototype.bindDependencies = function () {
125
- if (this.hasValueDependency && this.hasValueDependency.items.length) {
126
- for (var _i = 0, _a = this.hasValueDependency.items; _i < _a.length; _i++) {
127
- var fieldName = _a[_i];
128
- this.bindDependency(fieldName, "has");
129
- }
130
- }
131
- if (this.noValueDependency && this.noValueDependency.items.length) {
132
- for (var _b = 0, _c = this.noValueDependency.items; _b < _c.length; _b++) {
133
- var fieldName = _c[_b];
134
- this.bindDependency(fieldName, "no");
135
- }
136
- }
137
- if (this.dependencies && this.dependencies.length) {
138
- for (var index in this.dependencies) {
139
- if (this.dependencies.hasOwnProperty(index)) {
140
- var dependency = this.dependencies[index];
141
- for (var _d = 0, _e = dependency.items; _d < _e.length; _d++) {
142
- var fieldName = _e[_d];
143
- this.bindDependency(fieldName, "custom", dependency.value, dependency.criteria);
144
- }
145
- }
146
- }
147
- }
148
- };
149
- CustomInputElement.prototype.bindDependency = function (elementName, type, value, criteria) {
150
- var _this = this;
151
- var element = document.querySelector("[name=\"" + elementName + "\"]");
152
- if (element instanceof CustomInputElement) {
153
- element.compareVlaues.push(value);
154
- if (this.dependentOnList.hasOwnProperty(element.name)) {
155
- return;
156
- }
157
- var isVisibleByDefault = type === "no";
158
- element.RegisterDependentOn(this.name, isVisibleByDefault);
159
- this.onChange.on(function (e) {
160
- var IsConditionMatched = false;
161
- if (type === "has") {
162
- IsConditionMatched = !!e.value;
163
- }
164
- if (type === "no") {
165
- IsConditionMatched = !e.value;
166
- }
167
- if (type === "custom") {
168
- if (criteria === "Exact") {
169
- IsConditionMatched = element.isValueConditionMatched(e.value);
170
- }
171
- else if (criteria === "LessThan") {
172
- IsConditionMatched = e.value < value;
173
- }
174
- else if (criteria === "MoreThan") {
175
- IsConditionMatched = e.value > value;
176
- }
177
- }
178
- element.DependentOnStateChanged(_this.name, IsConditionMatched);
179
- });
180
- this.onVisibilityChanged.on(function (e) {
181
- if (_this.visibilityState) {
182
- _this.onChange.emit(new CustomEvents_1.CustomElementEventArgs(_this.value, "change"));
183
- }
184
- else {
185
- element.DependentOnStateChanged(_this.name, false);
186
- }
187
- });
188
- }
189
- };
190
- CustomInputElement.prototype.setVisibility = function () {
191
- if (this.allDependenciesMustBeMet) {
192
- this.visibilityState = Object.values(this.dependentOnList).every(function (state) { return state; });
193
- }
194
- else {
195
- this.visibilityState = Object.values(this.dependentOnList).some(function (state) { return state; });
196
- }
197
- if (this.visibilityState) {
198
- this.show();
199
- }
200
- else {
201
- this.hide();
202
- }
203
- this.onVisibilityChanged.emit(new CustomEvents_1.CustomElementEventArgs(this.value, "VisibilityChanged"));
204
- };
205
- CustomInputElement.prototype.hide = function () {
206
- this.setAttribute("hidden", "");
207
- if (this.closest('.custom-validation-target')) {
208
- this.closest('.custom-validation-target').setAttribute("hidden", "");
209
- }
210
- };
211
- CustomInputElement.prototype.show = function () {
212
- this.removeAttribute("hidden");
213
- if (this.closest('.custom-validation-target')) {
214
- this.closest('.custom-validation-target').removeAttribute("hidden");
215
- }
216
- };
217
- CustomInputElement.prototype.getChildInput = function (selector) {
218
- var element = this;
219
- if (this.shadowRoot) {
220
- element = this.shadowRoot;
221
- }
222
- return element.querySelector(selector);
223
- };
224
- CustomInputElement.prototype.getChildInputs = function (selector) {
225
- var element = this;
226
- if (this.shadowRoot) {
227
- element = this.shadowRoot;
228
- }
229
- return ArrayUtil_1.default.FromNodeList(element.querySelectorAll(selector));
230
- };
231
- CustomInputElement.prototype.getChildElement = function (selector) {
232
- var element = this;
233
- if (this.shadowRoot) {
234
- element = this.shadowRoot;
235
- }
236
- return element.querySelector(selector);
237
- };
238
- CustomInputElement.prototype.getChildElements = function (selector) {
239
- var element = this;
240
- if (this.shadowRoot) {
241
- element = this.shadowRoot;
242
- }
243
- return element.querySelectorAll(selector);
244
- };
245
- CustomInputElement.prototype.RegisterDependentOn = function (name, initialValue) {
246
- if (initialValue === void 0) { initialValue = false; }
247
- this.dependentOnList[name] = initialValue;
248
- this.setVisibility();
249
- };
250
- CustomInputElement.prototype.DependentOnStateChanged = function (name, state) {
251
- if (this.dependentOnList.hasOwnProperty(name)) {
252
- this.dependentOnList[name] = state;
253
- }
254
- this.setVisibility();
255
- };
256
- return CustomInputElement;
257
- }(HTMLElement));
258
- exports.CustomInputElement = CustomInputElement;
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.CustomInputElement = void 0;
19
+ var CustomEvents_1 = require("./CustomEvents");
20
+ var ArrayUtil_1 = require("./Utilities/ArrayUtil");
21
+ var DomUtil_1 = require("./Utilities/DomUtil");
22
+ var IDictionary = /** @class */ (function () {
23
+ function IDictionary() {
24
+ }
25
+ return IDictionary;
26
+ }());
27
+ var CustomInputElement = /** @class */ (function (_super) {
28
+ __extends(CustomInputElement, _super);
29
+ function CustomInputElement() {
30
+ var _this = _super.call(this) || this;
31
+ _this.dependentOnList = new IDictionary();
32
+ _this.visibilityState = true;
33
+ _this.touched = false;
34
+ _this.onChange = new CustomEvents_1.CustomElementEvent();
35
+ _this.onValidate = new CustomEvents_1.CustomElementEvent();
36
+ _this.onVisibilityChanged = new CustomEvents_1.CustomElementEvent();
37
+ _this.allDependenciesMustBeMet = false;
38
+ _this.multi = false;
39
+ _this.compareVlaues = [];
40
+ return _this;
41
+ }
42
+ CustomInputElement.prototype.isValueConditionMatched = function (val) {
43
+ var _this = this;
44
+ if (val && Array.isArray(val) && val.length) {
45
+ var result_1 = false;
46
+ val.forEach(function (element) {
47
+ var elementMatched = _this.compareVlaues.findIndex(function (x) { return x == element; }) !== -1;
48
+ if (elementMatched) {
49
+ result_1 = true;
50
+ return;
51
+ }
52
+ });
53
+ return result_1;
54
+ }
55
+ return this.compareVlaues.findIndex(function (x) { return x == val; }) !== -1;
56
+ };
57
+ CustomInputElement.prototype.connectedCallback = function () {
58
+ this.init();
59
+ this.setAttributes();
60
+ };
61
+ CustomInputElement.prototype.init = function () {
62
+ var _this = this;
63
+ this.style.width = "100%";
64
+ this.domUtil = new DomUtil_1.default(this);
65
+ this.parseData();
66
+ this.initChildInputs();
67
+ this.bindEvents();
68
+ this.setAttributes();
69
+ window.addEventListener("load", function () {
70
+ _this.bindDependencies();
71
+ });
72
+ };
73
+ CustomInputElement.prototype.parseData = function () {
74
+ try {
75
+ if (!(this.children[0] instanceof HTMLScriptElement)) {
76
+ return;
77
+ }
78
+ var data = JSON.parse(this.children[0].innerHTML);
79
+ this.options = data.options;
80
+ this.optionsWithDescriptions = data.optionsWithDescriptions;
81
+ this.hasValueDependency = data.hasValueDependency;
82
+ this.noValueDependency = data.noValueDependency;
83
+ this.dependencies = data.dependencies;
84
+ this.required = data.required;
85
+ this.name = data.name;
86
+ this.allDependenciesMustBeMet = data.allDependenciesMustBeMet;
87
+ this.multi = data.multi;
88
+ this.max = data.max;
89
+ this.min = data.min;
90
+ this.step = data.step;
91
+ this.customValue = data.value;
92
+ }
93
+ catch (ex) {
94
+ console.error(ex);
95
+ }
96
+ };
97
+ CustomInputElement.prototype.bindEvents = function () {
98
+ var _this = this;
99
+ this.onValidate.on(function (e) {
100
+ if (_this.valid) {
101
+ if (_this.closest('.custom-validation-target')) {
102
+ _this.closest('.custom-validation-target').classList.remove("invalid");
103
+ _this.closest('.custom-validation-target').classList.add("valid");
104
+ }
105
+ }
106
+ else {
107
+ if (_this.closest('.custom-validation-target')) {
108
+ _this.closest('.custom-validation-target').classList.add("invalid");
109
+ _this.closest('.custom-validation-target').classList.remove("valid");
110
+ }
111
+ _this.domUtil.focus();
112
+ }
113
+ });
114
+ this.onChange.on(function (e) {
115
+ if (_this.touched) {
116
+ _this.validate();
117
+ }
118
+ });
119
+ };
120
+ CustomInputElement.prototype.setAttributes = function () {
121
+ this.setAttribute("custom-input", "");
122
+ this.setAttribute("name", this.name);
123
+ };
124
+ CustomInputElement.prototype.bindDependencies = function () {
125
+ if (this.hasValueDependency && this.hasValueDependency.items.length) {
126
+ for (var _i = 0, _a = this.hasValueDependency.items; _i < _a.length; _i++) {
127
+ var fieldName = _a[_i];
128
+ this.bindDependency(fieldName, "has");
129
+ }
130
+ }
131
+ if (this.noValueDependency && this.noValueDependency.items.length) {
132
+ for (var _b = 0, _c = this.noValueDependency.items; _b < _c.length; _b++) {
133
+ var fieldName = _c[_b];
134
+ this.bindDependency(fieldName, "no");
135
+ }
136
+ }
137
+ if (this.dependencies && this.dependencies.length) {
138
+ for (var index in this.dependencies) {
139
+ if (this.dependencies.hasOwnProperty(index)) {
140
+ var dependency = this.dependencies[index];
141
+ for (var _d = 0, _e = dependency.items; _d < _e.length; _d++) {
142
+ var fieldName = _e[_d];
143
+ this.bindDependency(fieldName, "custom", dependency.value, dependency.criteria);
144
+ }
145
+ }
146
+ }
147
+ }
148
+ };
149
+ CustomInputElement.prototype.bindDependency = function (elementName, type, value, criteria) {
150
+ var _this = this;
151
+ var element = document.querySelector("[name=\"" + elementName + "\"]");
152
+ if (element instanceof CustomInputElement) {
153
+ element.compareVlaues.push(value);
154
+ if (this.dependentOnList.hasOwnProperty(element.name)) {
155
+ return;
156
+ }
157
+ var isVisibleByDefault = type === "no";
158
+ element.RegisterDependentOn(this.name, isVisibleByDefault);
159
+ this.onChange.on(function (e) {
160
+ var IsConditionMatched = false;
161
+ if (type === "has") {
162
+ IsConditionMatched = !!e.value;
163
+ }
164
+ if (type === "no") {
165
+ IsConditionMatched = !e.value;
166
+ }
167
+ if (type === "custom") {
168
+ if (criteria === "Exact") {
169
+ IsConditionMatched = element.isValueConditionMatched(e.value);
170
+ }
171
+ else if (criteria === "LessThan") {
172
+ IsConditionMatched = e.value < value;
173
+ }
174
+ else if (criteria === "MoreThan") {
175
+ IsConditionMatched = e.value > value;
176
+ }
177
+ }
178
+ element.DependentOnStateChanged(_this.name, IsConditionMatched);
179
+ });
180
+ this.onVisibilityChanged.on(function (e) {
181
+ if (_this.visibilityState) {
182
+ _this.onChange.emit(new CustomEvents_1.CustomElementEventArgs(_this.value, "change"));
183
+ }
184
+ else {
185
+ element.DependentOnStateChanged(_this.name, false);
186
+ }
187
+ });
188
+ }
189
+ };
190
+ CustomInputElement.prototype.setVisibility = function () {
191
+ if (this.allDependenciesMustBeMet) {
192
+ this.visibilityState = Object.values(this.dependentOnList).every(function (state) { return state; });
193
+ }
194
+ else {
195
+ this.visibilityState = Object.values(this.dependentOnList).some(function (state) { return state; });
196
+ }
197
+ if (this.visibilityState) {
198
+ this.show();
199
+ }
200
+ else {
201
+ this.hide();
202
+ }
203
+ this.onVisibilityChanged.emit(new CustomEvents_1.CustomElementEventArgs(this.value, "VisibilityChanged"));
204
+ };
205
+ CustomInputElement.prototype.hide = function () {
206
+ this.setAttribute("hidden", "");
207
+ if (this.closest('.custom-validation-target')) {
208
+ this.closest('.custom-validation-target').setAttribute("hidden", "");
209
+ }
210
+ };
211
+ CustomInputElement.prototype.show = function () {
212
+ this.removeAttribute("hidden");
213
+ if (this.closest('.custom-validation-target')) {
214
+ this.closest('.custom-validation-target').removeAttribute("hidden");
215
+ }
216
+ };
217
+ CustomInputElement.prototype.getChildInput = function (selector) {
218
+ var element = this;
219
+ if (this.shadowRoot) {
220
+ element = this.shadowRoot;
221
+ }
222
+ return element.querySelector(selector);
223
+ };
224
+ CustomInputElement.prototype.getChildInputs = function (selector) {
225
+ var element = this;
226
+ if (this.shadowRoot) {
227
+ element = this.shadowRoot;
228
+ }
229
+ return ArrayUtil_1.default.FromNodeList(element.querySelectorAll(selector));
230
+ };
231
+ CustomInputElement.prototype.getChildElement = function (selector) {
232
+ var element = this;
233
+ if (this.shadowRoot) {
234
+ element = this.shadowRoot;
235
+ }
236
+ return element.querySelector(selector);
237
+ };
238
+ CustomInputElement.prototype.getChildElements = function (selector) {
239
+ var element = this;
240
+ if (this.shadowRoot) {
241
+ element = this.shadowRoot;
242
+ }
243
+ return element.querySelectorAll(selector);
244
+ };
245
+ CustomInputElement.prototype.RegisterDependentOn = function (name, initialValue) {
246
+ if (initialValue === void 0) { initialValue = false; }
247
+ this.dependentOnList[name] = initialValue;
248
+ this.setVisibility();
249
+ };
250
+ CustomInputElement.prototype.DependentOnStateChanged = function (name, state) {
251
+ if (this.dependentOnList.hasOwnProperty(name)) {
252
+ this.dependentOnList[name] = state;
253
+ }
254
+ this.setVisibility();
255
+ };
256
+ return CustomInputElement;
257
+ }(HTMLElement));
258
+ exports.CustomInputElement = CustomInputElement;
259
259
  //# sourceMappingURL=CustomInputElement.js.map
@@ -1,4 +1,4 @@
1
- export default abstract class BaseDictionary {
2
- abstract dictionary: any;
3
- get(key: string): string;
4
- }
1
+ export default abstract class BaseDictionary {
2
+ abstract dictionary: any;
3
+ get(key: string): string;
4
+ }