@luftborn/custom-elements 1.1.42 → 1.1.44

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 (166) hide show
  1. package/dist/custom-form.d.ts +20 -0
  2. package/dist/custom-form.js +147 -0
  3. package/dist/custom-form.js.map +1 -0
  4. package/dist/elements/Address/AddressElement.d.ts +28 -0
  5. package/dist/elements/Address/AddressElement.js +207 -0
  6. package/dist/elements/Address/AddressElement.js.map +1 -0
  7. package/dist/elements/BankField/BankFieldElement.d.ts +22 -0
  8. package/dist/elements/BankField/BankFieldElement.js +128 -0
  9. package/dist/elements/BankField/BankFieldElement.js.map +1 -0
  10. package/dist/elements/CPRElement/CPRElement.d.ts +14 -0
  11. package/dist/elements/CPRElement/CPRElement.js +83 -0
  12. package/dist/elements/CPRElement/CPRElement.js.map +1 -0
  13. package/dist/elements/CVRElement/CVRElement.d.ts +14 -0
  14. package/dist/elements/CVRElement/CVRElement.js +83 -0
  15. package/dist/elements/CVRElement/CVRElement.js.map +1 -0
  16. package/dist/elements/CheckBoxElement/CheckBoxElement.d.ts +14 -0
  17. package/dist/elements/CheckBoxElement/CheckBoxElement.js +97 -0
  18. package/dist/elements/CheckBoxElement/CheckBoxElement.js.map +1 -0
  19. package/dist/elements/CustomRegularExpression/CustomRegularExpressionElement.d.ts +12 -0
  20. package/dist/elements/CustomRegularExpression/CustomRegularExpressionElement.js +83 -0
  21. package/dist/elements/CustomRegularExpression/CustomRegularExpressionElement.js.map +1 -0
  22. package/dist/elements/DateField/DateFieldElement.d.ts +12 -0
  23. package/dist/elements/DateField/DateFieldElement.js +86 -0
  24. package/dist/elements/DateField/DateFieldElement.js.map +1 -0
  25. package/dist/elements/DropDownList/DropDownListElement.d.ts +14 -0
  26. package/dist/elements/DropDownList/DropDownListElement.js +94 -0
  27. package/dist/elements/DropDownList/DropDownListElement.js.map +1 -0
  28. package/dist/elements/Elements.d.ts +18 -0
  29. package/dist/elements/Elements.js +38 -0
  30. package/dist/elements/Elements.js.map +1 -0
  31. package/dist/elements/EmailField/EmailFieldElement.d.ts +13 -0
  32. package/dist/elements/EmailField/EmailFieldElement.js +84 -0
  33. package/dist/elements/EmailField/EmailFieldElement.js.map +1 -0
  34. package/dist/elements/FileField/FileFieldElement.d.ts +12 -0
  35. package/dist/elements/FileField/FileFieldElement.js +84 -0
  36. package/dist/elements/FileField/FileFieldElement.js.map +1 -0
  37. package/dist/elements/IdentificationElement/IdentificationElement.d.ts +18 -0
  38. package/dist/elements/IdentificationElement/IdentificationElement.js +95 -0
  39. package/dist/elements/IdentificationElement/IdentificationElement.js.map +1 -0
  40. package/dist/elements/InternationaPhoneNumber/InternationaPhoneNumberElement.d.ts +16 -0
  41. package/dist/elements/InternationaPhoneNumber/InternationaPhoneNumberElement.js +109 -0
  42. package/dist/elements/InternationaPhoneNumber/InternationaPhoneNumberElement.js.map +1 -0
  43. package/dist/elements/NumericField/NumericFieldElement.d.ts +12 -0
  44. package/dist/elements/NumericField/NumericFieldElement.js +92 -0
  45. package/dist/elements/NumericField/NumericFieldElement.js.map +1 -0
  46. package/dist/elements/RadioButtonGroup/RadioButtonGroupElement.d.ts +14 -0
  47. package/dist/elements/RadioButtonGroup/RadioButtonGroupElement.js +100 -0
  48. package/dist/elements/RadioButtonGroup/RadioButtonGroupElement.js.map +1 -0
  49. package/dist/elements/TextAreaElement/TextAreaElement.d.ts +12 -0
  50. package/dist/elements/TextAreaElement/TextAreaElement.js +80 -0
  51. package/dist/elements/TextAreaElement/TextAreaElement.js.map +1 -0
  52. package/dist/elements/TextField/TextFieldElement.d.ts +12 -0
  53. package/dist/elements/TextField/TextFieldElement.js +80 -0
  54. package/dist/elements/TextField/TextFieldElement.js.map +1 -0
  55. package/dist/elements/TypeAhead/TypeAheadElement.d.ts +24 -0
  56. package/dist/elements/TypeAhead/TypeAheadElement.js +210 -0
  57. package/dist/elements/TypeAhead/TypeAheadElement.js.map +1 -0
  58. package/dist/framework/CustomEvents.d.ts +21 -0
  59. package/dist/framework/CustomEvents.js +48 -0
  60. package/dist/framework/CustomEvents.js.map +1 -0
  61. package/dist/framework/CustomInputElement.d.ts +50 -0
  62. package/dist/framework/CustomInputElement.js +258 -0
  63. package/dist/framework/CustomInputElement.js.map +1 -0
  64. package/dist/framework/Language/Languages/Base/BaseDictionary.d.ts +4 -0
  65. package/dist/framework/Language/Languages/Base/BaseDictionary.js +21 -0
  66. package/dist/framework/Language/Languages/Base/BaseDictionary.js.map +1 -0
  67. package/dist/framework/Language/Languages/DanishDictionary.d.ts +4 -0
  68. package/dist/framework/Language/Languages/DanishDictionary.js +40 -0
  69. package/dist/framework/Language/Languages/DanishDictionary.js.map +1 -0
  70. package/dist/framework/Language/Languages/EnglishDictionary.d.ts +4 -0
  71. package/dist/framework/Language/Languages/EnglishDictionary.js +40 -0
  72. package/dist/framework/Language/Languages/EnglishDictionary.js.map +1 -0
  73. package/dist/framework/Language/Translator.d.ts +6 -0
  74. package/dist/framework/Language/Translator.js +33 -0
  75. package/dist/framework/Language/Translator.js.map +1 -0
  76. package/dist/framework/Models/OptionWithDescription.d.ts +6 -0
  77. package/dist/framework/Models/OptionWithDescription.js +10 -0
  78. package/dist/framework/Models/OptionWithDescription.js.map +1 -0
  79. package/dist/framework/Polyfills/getAttributeNamesPolyfill.d.ts +1 -0
  80. package/dist/framework/Polyfills/getAttributeNamesPolyfill.js +18 -0
  81. package/dist/framework/Polyfills/getAttributeNamesPolyfill.js.map +1 -0
  82. package/dist/framework/Translations/CaseConverter.d.ts +5 -0
  83. package/dist/framework/Translations/CaseConverter.js +51 -0
  84. package/dist/framework/Translations/CaseConverter.js.map +1 -0
  85. package/dist/framework/Utilities/DomUtility.d.ts +3 -0
  86. package/dist/framework/Utilities/DomUtility.js +13 -0
  87. package/dist/framework/Utilities/DomUtility.js.map +1 -0
  88. package/dist/framework/Utilities/debouncer.d.ts +8 -0
  89. package/dist/framework/Utilities/debouncer.js +52 -0
  90. package/dist/framework/Utilities/debouncer.js.map +1 -0
  91. package/dist/framework/Validation/IValidator.interface.d.ts +3 -0
  92. package/dist/framework/Validation/IValidator.interface.js +3 -0
  93. package/dist/framework/Validation/IValidator.interface.js.map +1 -0
  94. package/dist/framework/Validation/Validators/BankAccount.d.ts +4 -0
  95. package/dist/framework/Validation/Validators/BankAccount.js +13 -0
  96. package/dist/framework/Validation/Validators/BankAccount.js.map +1 -0
  97. package/dist/framework/Validation/Validators/BankAccountRegistrationNumber.d.ts +4 -0
  98. package/dist/framework/Validation/Validators/BankAccountRegistrationNumber.js +13 -0
  99. package/dist/framework/Validation/Validators/BankAccountRegistrationNumber.js.map +1 -0
  100. package/dist/framework/Validation/Validators/BankIdNorway.d.ts +5 -0
  101. package/dist/framework/Validation/Validators/BankIdNorway.js +22 -0
  102. package/dist/framework/Validation/Validators/BankIdNorway.js.map +1 -0
  103. package/dist/framework/Validation/Validators/BankIdSweden.d.ts +5 -0
  104. package/dist/framework/Validation/Validators/BankIdSweden.js +22 -0
  105. package/dist/framework/Validation/Validators/BankIdSweden.js.map +1 -0
  106. package/dist/framework/Validation/Validators/CPR.d.ts +9 -0
  107. package/dist/framework/Validation/Validators/CPR.js +76 -0
  108. package/dist/framework/Validation/Validators/CPR.js.map +1 -0
  109. package/dist/framework/Validation/Validators/CVR.d.ts +5 -0
  110. package/dist/framework/Validation/Validators/CVR.js +31 -0
  111. package/dist/framework/Validation/Validators/CVR.js.map +1 -0
  112. package/dist/framework/custom-element.decorator.d.ts +9 -0
  113. package/dist/framework/custom-element.decorator.js +52 -0
  114. package/dist/framework/custom-element.decorator.js.map +1 -0
  115. package/dist/index.d.ts +7 -0
  116. package/dist/index.js +15 -0
  117. package/dist/index.js.map +1 -0
  118. package/node_modules/@webcomponents/webcomponentsjs/CHANGELOG.md +61 -0
  119. package/node_modules/@webcomponents/webcomponentsjs/LICENSE.md +19 -0
  120. package/node_modules/@webcomponents/webcomponentsjs/README.md +246 -0
  121. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-ce.js +63 -0
  122. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -0
  123. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
  124. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
  125. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
  126. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
  127. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +360 -0
  128. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -0
  129. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce.js +228 -0
  130. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -0
  131. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd.js +185 -0
  132. package/node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -0
  133. package/node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js +15 -0
  134. package/node_modules/@webcomponents/webcomponentsjs/package.json +84 -0
  135. package/node_modules/@webcomponents/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +16 -0
  136. package/node_modules/@webcomponents/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +55 -0
  137. package/node_modules/@webcomponents/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +17 -0
  138. package/node_modules/@webcomponents/webcomponentsjs/src/entrypoints/webcomponents-pf_dom-index.js +17 -0
  139. package/node_modules/@webcomponents/webcomponentsjs/src/entrypoints/webcomponents-pf_js-index.js +13 -0
  140. package/node_modules/@webcomponents/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +19 -0
  141. package/node_modules/@webcomponents/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +25 -0
  142. package/node_modules/@webcomponents/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +18 -0
  143. package/node_modules/@webcomponents/webcomponentsjs/src/flag-parser.js +69 -0
  144. package/node_modules/@webcomponents/webcomponentsjs/src/platform/baseuri.js +28 -0
  145. package/node_modules/@webcomponents/webcomponentsjs/src/platform/child-node/after.js +47 -0
  146. package/node_modules/@webcomponents/webcomponentsjs/src/platform/child-node/before.js +40 -0
  147. package/node_modules/@webcomponents/webcomponentsjs/src/platform/child-node/index.js +14 -0
  148. package/node_modules/@webcomponents/webcomponentsjs/src/platform/child-node/remove.js +37 -0
  149. package/node_modules/@webcomponents/webcomponentsjs/src/platform/child-node/replace-with.js +42 -0
  150. package/node_modules/@webcomponents/webcomponentsjs/src/platform/custom-event.js +79 -0
  151. package/node_modules/@webcomponents/webcomponentsjs/src/platform/es6-misc.js +38 -0
  152. package/node_modules/@webcomponents/webcomponentsjs/src/platform/get-attribute-names.js +27 -0
  153. package/node_modules/@webcomponents/webcomponentsjs/src/platform/matches.js +21 -0
  154. package/node_modules/@webcomponents/webcomponentsjs/src/platform/parent-node/append.js +31 -0
  155. package/node_modules/@webcomponents/webcomponentsjs/src/platform/parent-node/index.js +13 -0
  156. package/node_modules/@webcomponents/webcomponentsjs/src/platform/parent-node/prepend.js +42 -0
  157. package/node_modules/@webcomponents/webcomponentsjs/src/platform/parent-node/replace-children.js +45 -0
  158. package/node_modules/@webcomponents/webcomponentsjs/src/platform/promise.js +50 -0
  159. package/node_modules/@webcomponents/webcomponentsjs/src/platform/svg-element-class-list.js +28 -0
  160. package/node_modules/@webcomponents/webcomponentsjs/src/platform/symbol.js +64 -0
  161. package/node_modules/@webcomponents/webcomponentsjs/src/unresolved.js +32 -0
  162. package/node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.d.ts +174 -0
  163. package/node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js +370 -0
  164. package/node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js.map +1 -0
  165. package/node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js +206 -0
  166. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumericFieldElement.js","sourceRoot":"","sources":["../../../src/elements/NumericField/NumericFieldElement.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,qFAAqE;AACrE,yEAAwE;AACxE,6DAAsE;AA0BtE;IAAyC,uCAAkB;IAG1D;eACC,iBAAO;IACR,CAAC;IAED,sBAAI,sCAAK;aAAT;YACC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;gBACrC,OAAO,EAAE,CAAC;aACV;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAClC,CAAC;aAED,UAAU,KAAU;YACnB,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;QACnC,CAAC;;;OAJA;IAMD,sBAAI,sCAAK;aAAT;YACC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,CAAC;;;OAAA;IAED,+CAAiB,GAAjB;QACC,iBAAM,iBAAiB,WAAE,CAAC;IAC3B,CAAC;IAED,6CAAe,GAAf;QACC,IAAI,CAAC,MAAM,GAAG,iBAAM,aAAa,YAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5C;IACF,CAAC;IAED,SAAS;IACF,oCAAM,GAAb,UAAc,MAAM;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,qCAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,sCAAQ,GAAf;QACC,IAAI,CAAC,KAAK,CAAC;QACX,IAAI,CAAC,UAAU,CAAC,IAAI,CACnB,IAAI,qCAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAClD,CAAC;IACH,CAAC;IAtDW,mBAAmB;QAxB/B,IAAA,kCAAa,EAAC;YACd,QAAQ,EAAE,iBAAiB;YAC3B,QAAQ,EAAE,oGAGD;YACT,KAAK,EAAE,iUAeI;YACX,SAAS,EAAE,IAAI;SACf,CAAC;OACW,mBAAmB,CAuD/B;IAAD,0BAAC;CAAA,AAvDD,CAAyC,uCAAkB,GAuD1D;AAvDY,kDAAmB"}
@@ -0,0 +1,14 @@
1
+ import { CustomInputElement } from '../../framework/CustomInputElement';
2
+ export declare class RadioButtonGroupElement extends CustomInputElement {
3
+ radioButton: HTMLInputElement[];
4
+ radioButtonTemplate: string;
5
+ constructor();
6
+ get value(): string;
7
+ set value(value: string);
8
+ get valid(): boolean;
9
+ connectedCallback(): void;
10
+ initChildInputs(): void;
11
+ private addRadioButtons;
12
+ change($event: any): void;
13
+ validate(): void;
14
+ }
@@ -0,0 +1,100 @@
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
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.RadioButtonGroupElement = void 0;
25
+ var custom_element_decorator_1 = require("../../framework/custom-element.decorator");
26
+ var CustomInputElement_1 = require("../../framework/CustomInputElement");
27
+ var CustomEvents_1 = require("../../framework/CustomEvents");
28
+ var utilities_1 = require("@luftborn/utilities");
29
+ var RadioButtonGroupElement = /** @class */ (function (_super) {
30
+ __extends(RadioButtonGroupElement, _super);
31
+ function RadioButtonGroupElement() {
32
+ var _this = _super.call(this) || this;
33
+ _this.radioButtonTemplate = "\n\t<div class='radio-button'>\n\t\t<input type='radio' name='{0}' value=\"{1}\" id=\"{2}\" {3}/>\n\t\t<label for=\"{2}\">{1}</label>\n\t</div>";
34
+ return _this;
35
+ }
36
+ Object.defineProperty(RadioButtonGroupElement.prototype, "value", {
37
+ get: function () {
38
+ return this.radioButton.filter(function (c) { return c.checked; }).map(function (c) { return c.value; })[0];
39
+ },
40
+ set: function (value) {
41
+ var matchedRadio = this.radioButton.filter(function (c) { return c.value === value; })[0];
42
+ if (matchedRadio) {
43
+ matchedRadio.setAttribute('checked', '');
44
+ }
45
+ },
46
+ enumerable: false,
47
+ configurable: true
48
+ });
49
+ Object.defineProperty(RadioButtonGroupElement.prototype, "valid", {
50
+ get: function () {
51
+ if (this.required) {
52
+ return this.radioButton.filter(function (c) { return c.checked; }).length > 0;
53
+ }
54
+ else {
55
+ return true;
56
+ }
57
+ },
58
+ enumerable: false,
59
+ configurable: true
60
+ });
61
+ RadioButtonGroupElement.prototype.connectedCallback = function () {
62
+ _super.prototype.connectedCallback.call(this);
63
+ };
64
+ RadioButtonGroupElement.prototype.initChildInputs = function () {
65
+ var _this = this;
66
+ this.addRadioButtons();
67
+ this.radioButton = _super.prototype.getChildInputs.call(this, "[name='" + this.name + "']");
68
+ this.radioButton.forEach(function (radio) {
69
+ return radio.addEventListener('change', _this.change.bind(_this));
70
+ });
71
+ };
72
+ RadioButtonGroupElement.prototype.addRadioButtons = function () {
73
+ var _this = this;
74
+ var wrapper = _super.prototype.getChildElement.call(this, '.wrapper');
75
+ wrapper.innerHTML = "";
76
+ this.options.forEach(function (element, index) {
77
+ wrapper.insertAdjacentHTML('beforeend', utilities_1.StringUtil.StringFormat(_this.radioButtonTemplate, _this.name, element, _this.name + "-" + index, "" + (_this.required ? 'required' : '')));
78
+ });
79
+ };
80
+ // events
81
+ RadioButtonGroupElement.prototype.change = function ($event) {
82
+ this.touched = true;
83
+ this.onChange.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'change'));
84
+ };
85
+ RadioButtonGroupElement.prototype.validate = function () {
86
+ this.valid;
87
+ this.onValidate.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'validate'));
88
+ };
89
+ RadioButtonGroupElement = __decorate([
90
+ (0, custom_element_decorator_1.default)({
91
+ selector: 'radio-group-element',
92
+ template: "\n\t\t\t<div class=\"wrapper\">\n\t\t\t</div>",
93
+ style: "\n\t\t\t:host{\n\t\t\t\twidth:100%;\n\t\t\t}\n\t\t\t.radio-button {\n\t\t\t\twidth: auto;\n\t\t\t\tmargin: auto 3px;\n\t\t\t\tcolor: rgba(72, 72, 72, 0.75);\n\t\t\t\tfont-size: 13px;\n\t\t\t}\n\t\t\tinput{\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: auto !important;\n\t\t\t\tborder: none;\n\t\t\t\tbackground-color: #f1f4ff;\n\t\t\t\tmargin: 2px;\n\t\t\t\tresize: none;\n\t\t\t}\n\t\t",
94
+ useShadow: true,
95
+ })
96
+ ], RadioButtonGroupElement);
97
+ return RadioButtonGroupElement;
98
+ }(CustomInputElement_1.CustomInputElement));
99
+ exports.RadioButtonGroupElement = RadioButtonGroupElement;
100
+ //# sourceMappingURL=RadioButtonGroupElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButtonGroupElement.js","sourceRoot":"","sources":["../../../src/elements/RadioButtonGroup/RadioButtonGroupElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CustomInputElement } from '../../framework/CustomInputElement';
2
+ export declare class TextAreaElement extends CustomInputElement {
3
+ text: HTMLInputElement;
4
+ constructor();
5
+ get value(): string;
6
+ set value(value: string);
7
+ get valid(): boolean;
8
+ connectedCallback(): void;
9
+ initChildInputs(): void;
10
+ change($event: any): void;
11
+ validate(): void;
12
+ }
@@ -0,0 +1,80 @@
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
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.TextAreaElement = void 0;
25
+ var custom_element_decorator_1 = require("../../framework/custom-element.decorator");
26
+ var CustomInputElement_1 = require("../../framework/CustomInputElement");
27
+ var CustomEvents_1 = require("../../framework/CustomEvents");
28
+ var TextAreaElement = /** @class */ (function (_super) {
29
+ __extends(TextAreaElement, _super);
30
+ function TextAreaElement() {
31
+ return _super.call(this) || this;
32
+ }
33
+ Object.defineProperty(TextAreaElement.prototype, "value", {
34
+ get: function () {
35
+ return "" + this.text.value;
36
+ },
37
+ set: function (value) {
38
+ this.text.value = value;
39
+ },
40
+ enumerable: false,
41
+ configurable: true
42
+ });
43
+ Object.defineProperty(TextAreaElement.prototype, "valid", {
44
+ get: function () {
45
+ return this.text.validity.valid;
46
+ },
47
+ enumerable: false,
48
+ configurable: true
49
+ });
50
+ TextAreaElement.prototype.connectedCallback = function () {
51
+ _super.prototype.connectedCallback.call(this);
52
+ };
53
+ TextAreaElement.prototype.initChildInputs = function () {
54
+ this.text = _super.prototype.getChildInput.call(this, '#text-area-field');
55
+ this.text.addEventListener('change', this.change.bind(this));
56
+ if (this.required) {
57
+ this.text.setAttribute('required', '');
58
+ }
59
+ };
60
+ // events
61
+ TextAreaElement.prototype.change = function ($event) {
62
+ this.touched = true;
63
+ this.onChange.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'change'));
64
+ };
65
+ TextAreaElement.prototype.validate = function () {
66
+ this.valid;
67
+ this.onValidate.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'validate'));
68
+ };
69
+ TextAreaElement = __decorate([
70
+ (0, custom_element_decorator_1.default)({
71
+ selector: 'text-area-element',
72
+ template: "\n\t\t\t<div class=\"wrapper\">\n\t\t\t\t<textarea rows=5 id='text-area-field'></textarea>\n\t\t\t</div>",
73
+ style: "\n :host{\n width:100%;\n }\n .wrapper{\n display:flex;\n }\n textarea{\n box-sizing: border-box;\n width: 100% !important;\n border: none;\n background-color: #f1f4ff;\n margin: 2px;\n resize: none;\n }\n ",
74
+ useShadow: true,
75
+ })
76
+ ], TextAreaElement);
77
+ return TextAreaElement;
78
+ }(CustomInputElement_1.CustomInputElement));
79
+ exports.TextAreaElement = TextAreaElement;
80
+ //# sourceMappingURL=TextAreaElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextAreaElement.js","sourceRoot":"","sources":["../../../src/elements/TextAreaElement/TextAreaElement.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,qFAAqE;AACrE,yEAAwE;AACxE,6DAAsE;AA0BtE;IAAqC,mCAAkB;IAGtD;eACC,iBAAO;IACR,CAAC;IAED,sBAAI,kCAAK;aAAT;YACC,OAAO,KAAG,IAAI,CAAC,IAAI,CAAC,KAAO,CAAC;QAC7B,CAAC;aAED,UAAU,KAAa;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,CAAC;;;OAJA;IAMD,sBAAI,kCAAK;aAAT;YACC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjC,CAAC;;;OAAA;IAED,2CAAiB,GAAjB;QACC,iBAAM,iBAAiB,WAAE,CAAC;IAC3B,CAAC;IAED,yCAAe,GAAf;QACC,IAAI,CAAC,IAAI,GAAG,iBAAM,aAAa,YAAC,kBAAkB,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SACvC;IACF,CAAC;IAED,SAAS;IACF,gCAAM,GAAb,UAAc,MAAM;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,qCAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,kCAAQ,GAAf;QACC,IAAI,CAAC,KAAK,CAAC;QACX,IAAI,CAAC,UAAU,CAAC,IAAI,CACnB,IAAI,qCAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAClD,CAAC;IACH,CAAC;IA1CW,eAAe;QAxB3B,IAAA,kCAAa,EAAC;YACd,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE,0GAGD;YACT,KAAK,EAAE,oUAeI;YACX,SAAS,EAAE,IAAI;SACf,CAAC;OACW,eAAe,CA2C3B;IAAD,sBAAC;CAAA,AA3CD,CAAqC,uCAAkB,GA2CtD;AA3CY,0CAAe"}
@@ -0,0 +1,12 @@
1
+ import { CustomInputElement } from '../../framework/CustomInputElement';
2
+ export declare class TextFieldElement extends CustomInputElement {
3
+ text: HTMLInputElement;
4
+ constructor();
5
+ get value(): string;
6
+ set value(value: string);
7
+ get valid(): boolean;
8
+ connectedCallback(): void;
9
+ initChildInputs(): void;
10
+ change($event: any): void;
11
+ validate(): void;
12
+ }
@@ -0,0 +1,80 @@
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
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.TextFieldElement = void 0;
25
+ var custom_element_decorator_1 = require("../../framework/custom-element.decorator");
26
+ var CustomInputElement_1 = require("../../framework/CustomInputElement");
27
+ var CustomEvents_1 = require("../../framework/CustomEvents");
28
+ var TextFieldElement = /** @class */ (function (_super) {
29
+ __extends(TextFieldElement, _super);
30
+ function TextFieldElement() {
31
+ return _super.call(this) || this;
32
+ }
33
+ Object.defineProperty(TextFieldElement.prototype, "value", {
34
+ get: function () {
35
+ return "" + this.text.value;
36
+ },
37
+ set: function (value) {
38
+ this.text.value = value;
39
+ },
40
+ enumerable: false,
41
+ configurable: true
42
+ });
43
+ Object.defineProperty(TextFieldElement.prototype, "valid", {
44
+ get: function () {
45
+ return this.text.validity.valid;
46
+ },
47
+ enumerable: false,
48
+ configurable: true
49
+ });
50
+ TextFieldElement.prototype.connectedCallback = function () {
51
+ _super.prototype.connectedCallback.call(this);
52
+ };
53
+ TextFieldElement.prototype.initChildInputs = function () {
54
+ this.text = _super.prototype.getChildInput.call(this, '#text-field');
55
+ this.text.addEventListener('change', this.change.bind(this));
56
+ if (this.required) {
57
+ this.text.setAttribute('required', '');
58
+ }
59
+ };
60
+ // events
61
+ TextFieldElement.prototype.change = function ($event) {
62
+ this.touched = true;
63
+ this.onChange.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'change'));
64
+ };
65
+ TextFieldElement.prototype.validate = function () {
66
+ this.valid;
67
+ this.onValidate.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'validate'));
68
+ };
69
+ TextFieldElement = __decorate([
70
+ (0, custom_element_decorator_1.default)({
71
+ selector: 'text-element',
72
+ template: "\n\t\t\t<div class=\"wrapper\">\n\t\t\t\t<input type=\"text\" id='text-field'/>\n\t\t\t</div>",
73
+ style: "\n\t:host{\n\t\t\twidth:100%;\n\t}\n\t.wrapper{\n\t\t\tdisplay:flex;\n\t}\n\tinput{\n\t\t\tbox-sizing: border-box;\n\t\t\twidth: 100% !important;\n\t\t\tborder: none;\n\t\t\tbackground-color: #f1f4ff;\n\t\t\tmargin: 2px;\n\t\t\tresize: none;\n\t}\n\t\t",
74
+ useShadow: true,
75
+ })
76
+ ], TextFieldElement);
77
+ return TextFieldElement;
78
+ }(CustomInputElement_1.CustomInputElement));
79
+ exports.TextFieldElement = TextFieldElement;
80
+ //# sourceMappingURL=TextFieldElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextFieldElement.js","sourceRoot":"","sources":["../../../src/elements/TextField/TextFieldElement.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,qFAAqE;AACrE,yEAAwE;AACxE,6DAAsE;AA0BtE;IAAsC,oCAAkB;IAGvD;eACC,iBAAO;IACR,CAAC;IAED,sBAAI,mCAAK;aAAT;YACC,OAAO,KAAG,IAAI,CAAC,IAAI,CAAC,KAAO,CAAC;QAC7B,CAAC;aAED,UAAU,KAAa;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,CAAC;;;OAJA;IAMD,sBAAI,mCAAK;aAAT;YACC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjC,CAAC;;;OAAA;IAED,4CAAiB,GAAjB;QACC,iBAAM,iBAAiB,WAAE,CAAC;IAC3B,CAAC;IAED,0CAAe,GAAf;QACC,IAAI,CAAC,IAAI,GAAG,iBAAM,aAAa,YAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SACvC;IACF,CAAC;IAED,SAAS;IACF,iCAAM,GAAb,UAAc,MAAM;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,qCAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,mCAAQ,GAAf;QACC,IAAI,CAAC,KAAK,CAAC;QACX,IAAI,CAAC,UAAU,CAAC,IAAI,CACnB,IAAI,qCAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAClD,CAAC;IACH,CAAC;IA1CW,gBAAgB;QAxB5B,IAAA,kCAAa,EAAC;YACd,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,+FAGD;YACT,KAAK,EAAE,8PAeL;YACF,SAAS,EAAE,IAAI;SACf,CAAC;OACW,gBAAgB,CA2C5B;IAAD,uBAAC;CAAA,AA3CD,CAAsC,uCAAkB,GA2CvD;AA3CY,4CAAgB"}
@@ -0,0 +1,24 @@
1
+ import { CustomInputElement } from '../../framework/CustomInputElement';
2
+ import OptionWithDescription from '../../framework/Models/OptionWithDescription';
3
+ export declare class TypeAheadElement extends CustomInputElement {
4
+ private textInputElement;
5
+ private descriptionElement;
6
+ private componentWrapper;
7
+ private currentFoucsedIndex;
8
+ selectedOption: OptionWithDescription;
9
+ searchResultOptions: OptionWithDescription[];
10
+ constructor();
11
+ private get searchHasResults();
12
+ get value(): string;
13
+ set value(value: string);
14
+ get valid(): boolean;
15
+ connectedCallback(): void;
16
+ initChildInputs(): void;
17
+ private inputEventHandler;
18
+ private closeOptionsList;
19
+ private optionSelectedHandler;
20
+ private bindNavigation;
21
+ highlightFocusedSearchResult(): void;
22
+ change($event: any): void;
23
+ validate(): void;
24
+ }
@@ -0,0 +1,210 @@
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
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.TypeAheadElement = void 0;
25
+ var custom_element_decorator_1 = require("../../framework/custom-element.decorator");
26
+ var CustomInputElement_1 = require("../../framework/CustomInputElement");
27
+ var CustomEvents_1 = require("../../framework/CustomEvents");
28
+ var DomUtility_1 = require("../../framework/Utilities/DomUtility");
29
+ var TypeAheadElement = /** @class */ (function (_super) {
30
+ __extends(TypeAheadElement, _super);
31
+ function TypeAheadElement() {
32
+ var _this = _super.call(this) || this;
33
+ _this.currentFoucsedIndex = -1;
34
+ _this.searchResultOptions = [];
35
+ return _this;
36
+ }
37
+ Object.defineProperty(TypeAheadElement.prototype, "searchHasResults", {
38
+ get: function () {
39
+ var autocompleteList = _super.prototype.getChildElement.call(this, '.options-list');
40
+ return autocompleteList && this.optionsWithDescriptions && this.optionsWithDescriptions.length > 0;
41
+ },
42
+ enumerable: false,
43
+ configurable: true
44
+ });
45
+ Object.defineProperty(TypeAheadElement.prototype, "value", {
46
+ get: function () {
47
+ if (!this.selectedOption) {
48
+ return null;
49
+ }
50
+ return this.selectedOption.value;
51
+ },
52
+ set: function (value) {
53
+ if (!this.optionsWithDescriptions || this.optionsWithDescriptions.length === 0) {
54
+ return;
55
+ }
56
+ var option = this.optionsWithDescriptions.find(function (option) { return option.value === value; });
57
+ if (!option) {
58
+ this.descriptionElement.innerHTML = null;
59
+ return;
60
+ }
61
+ this.selectedOption = option;
62
+ this.textInputElement.value = option.title;
63
+ this.descriptionElement.innerHTML = option.description;
64
+ },
65
+ enumerable: false,
66
+ configurable: true
67
+ });
68
+ Object.defineProperty(TypeAheadElement.prototype, "valid", {
69
+ get: function () {
70
+ if (this.required) {
71
+ return !!this.selectedOption;
72
+ }
73
+ return !!this.selectedOption || this.textInputElement.value === '';
74
+ },
75
+ enumerable: false,
76
+ configurable: true
77
+ });
78
+ TypeAheadElement.prototype.connectedCallback = function () {
79
+ _super.prototype.connectedCallback.call(this);
80
+ };
81
+ TypeAheadElement.prototype.initChildInputs = function () {
82
+ var _this = this;
83
+ this.textInputElement = _super.prototype.getChildInput.call(this, '#text-input');
84
+ this.descriptionElement = _super.prototype.getChildInput.call(this, '#description');
85
+ this.componentWrapper = _super.prototype.getChildElement.call(this, '.wrapper');
86
+ if (this.required) {
87
+ this.textInputElement.setAttribute('required', '');
88
+ }
89
+ this.textInputElement.addEventListener('change', this.change.bind(this));
90
+ this.textInputElement.addEventListener('input', function () {
91
+ _this.inputEventHandler();
92
+ });
93
+ this.bindNavigation();
94
+ };
95
+ TypeAheadElement.prototype.inputEventHandler = function () {
96
+ var _this = this;
97
+ this.selectedOption = null;
98
+ this.descriptionElement.innerHTML = null;
99
+ this.closeOptionsList();
100
+ this.searchResultOptions = [];
101
+ var searchValue = this.textInputElement.value;
102
+ if (!searchValue || searchValue.trim() === '') {
103
+ return;
104
+ }
105
+ var optionslist = document.createElement('div');
106
+ optionslist.classList.add('options-list');
107
+ if (!this.optionsWithDescriptions) {
108
+ return;
109
+ }
110
+ this.optionsWithDescriptions.forEach(function (option, index) {
111
+ var regex = new RegExp(searchValue, 'gi');
112
+ var isMatchingTitle = regex.test(option.title);
113
+ var isMatchingValue = regex.test(option.value);
114
+ var isMatchingDescription = regex.test(option.description);
115
+ if (!isMatchingTitle && !isMatchingValue && !isMatchingDescription) {
116
+ return;
117
+ }
118
+ _this.searchResultOptions.push(option);
119
+ var optionsListItem = document.createElement("div");
120
+ optionsListItem.classList.add('options-list-item');
121
+ optionsListItem.dataset['value'] = option.value;
122
+ optionslist.appendChild(optionsListItem);
123
+ var optionsListItemTitle = document.createElement("div");
124
+ optionsListItemTitle.classList.add('options-list-item-title');
125
+ optionsListItemTitle.innerHTML = DomUtility_1.default.boldenText(option.title, searchValue);
126
+ optionsListItem.appendChild(optionsListItemTitle);
127
+ var optionsListItemDescription = document.createElement("div");
128
+ optionsListItemDescription.classList.add('options-list-item-description');
129
+ optionsListItemDescription.innerHTML = DomUtility_1.default.boldenText(option.description, searchValue);
130
+ optionsListItem.appendChild(optionsListItemDescription);
131
+ optionsListItem.addEventListener('click', function () {
132
+ _this.optionSelectedHandler(option);
133
+ });
134
+ _this.componentWrapper.appendChild(optionslist);
135
+ });
136
+ };
137
+ TypeAheadElement.prototype.closeOptionsList = function () {
138
+ this.currentFoucsedIndex = -1;
139
+ var optionsList = _super.prototype.getChildElement.call(this, '.options-list');
140
+ if (!optionsList) {
141
+ return;
142
+ }
143
+ optionsList.remove();
144
+ };
145
+ TypeAheadElement.prototype.optionSelectedHandler = function (option) {
146
+ this.value = option.value;
147
+ this.onChange.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'change'));
148
+ this.closeOptionsList();
149
+ };
150
+ TypeAheadElement.prototype.bindNavigation = function () {
151
+ var _this = this;
152
+ this.textInputElement.addEventListener('keydown', function (event) {
153
+ if (event.key === 'Escape') {
154
+ _this.closeOptionsList();
155
+ }
156
+ if (event.key === 'ArrowDown') {
157
+ if (!_this.searchHasResults) {
158
+ return;
159
+ }
160
+ _this.currentFoucsedIndex = _this.currentFoucsedIndex === _this.searchResultOptions.length - 1 ? 0 : _this.currentFoucsedIndex + 1;
161
+ _this.highlightFocusedSearchResult();
162
+ }
163
+ if (event.key === 'ArrowUp') {
164
+ if (!_this.searchHasResults) {
165
+ return;
166
+ }
167
+ _this.currentFoucsedIndex = _this.currentFoucsedIndex === 0 ? _this.searchResultOptions.length - 1 : _this.currentFoucsedIndex - 1;
168
+ _this.highlightFocusedSearchResult();
169
+ }
170
+ if (event.key === 'Enter') {
171
+ if (_this.currentFoucsedIndex !== -1 && _this.searchHasResults) {
172
+ _this.optionSelectedHandler(_this.searchResultOptions[_this.currentFoucsedIndex]);
173
+ return;
174
+ }
175
+ }
176
+ });
177
+ };
178
+ TypeAheadElement.prototype.highlightFocusedSearchResult = function () {
179
+ var _this = this;
180
+ var optionListItems = _super.prototype.getChildElements.call(this, '.options-list-item');
181
+ if (!optionListItems) {
182
+ return;
183
+ }
184
+ optionListItems.forEach(function (listItem, index) {
185
+ listItem.classList.remove('active');
186
+ if (index === _this.currentFoucsedIndex) {
187
+ listItem.classList.add('active');
188
+ }
189
+ });
190
+ };
191
+ TypeAheadElement.prototype.change = function ($event) {
192
+ this.touched = true;
193
+ this.onChange.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'change'));
194
+ };
195
+ TypeAheadElement.prototype.validate = function () {
196
+ this.valid;
197
+ this.onValidate.emit(new CustomEvents_1.CustomElementEventArgs(this.value, 'validate'));
198
+ };
199
+ TypeAheadElement = __decorate([
200
+ (0, custom_element_decorator_1.default)({
201
+ selector: 'type-ahead-element',
202
+ template: "\n\t\t<div class=\"wrapper\">\n\t\t\t<input type=\"text\" id=\"text-input\">\n\t\t\t<div id=\"description\"></div>\n\t\t</div>",
203
+ style: "\n\t\t:host {\n\t\t\twidth:100%;\n\t\t}\n\t\t.wrapper {\n\t\t\tposition: relative;\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t}\n\t\t#text-input {\n\t\t\tbox-sizing: border-box;\n\t\t\twidth: 100% !important;\n\t\t\tborder: none;\n\t\t\tbackground-color: #f1f4ff;\n\t\t\tmargin: 2px;\n\t\t\tresize: none;\n\t\t}\n\t\t.wrapper #description {\n\t\t\twidth: 100%;\n\t\t\tpadding: 0 2px;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.options-list {\n\t\t\tposition: absolute;\n\t\t\tborder: 1px solid #E8E8E8;\n\t\t\tborder-bottom: none;\n\t\t\tborder-top: none;\n\t\t\tz-index: 3;\n\t\t\ttop: 100%;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tmax-height: 200px;\n\t\t\toverflow-y: auto;\n\t\t}\n\t\t.options-list-item {\n\t\t\tpadding: 10px;\n\t\t\tcursor: pointer;\n\t\t\tbackground-color: #FFFFFF;\n\t\t\tborder-bottom: 1px solid #E8E8E8;\n\t\t}\n\t\t.options-list-item:hover {\n\t\t\tbackground-color: #E8E8E8;\n\t\t}\n\t\t.options-list-item.active {\n\t\t\t/*when navigating through the items using the arrow keys:*/\n\t\t\tbackground-color: #003E64 !important;\n\t\t\tcolor: #FFFFFF;\n\t\t}\n\t\t.options-list-item-title {\n\t\t\tfont-size: 16px;\n\t\t}\n\t\t.options-list-item-description {\n\t\t\tfont-size: 10px;\n\t\t}\n\t",
204
+ useShadow: true,
205
+ })
206
+ ], TypeAheadElement);
207
+ return TypeAheadElement;
208
+ }(CustomInputElement_1.CustomInputElement));
209
+ exports.TypeAheadElement = TypeAheadElement;
210
+ //# sourceMappingURL=TypeAheadElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeAheadElement.js","sourceRoot":"","sources":["../../../src/elements/TypeAhead/TypeAheadElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface Listener<T> {
2
+ (event: T): any;
3
+ }
4
+ export interface Disposable {
5
+ dispose(): any;
6
+ }
7
+ export declare class CustomElementEventArgs {
8
+ value: any;
9
+ eventName: string;
10
+ constructor(value: any, eventName: string);
11
+ }
12
+ /** passes through events as they happen. You will not get events from before you start listening */
13
+ export declare class CustomElementEvent<T> {
14
+ private listeners;
15
+ private listenersOncer;
16
+ on: (listener: Listener<T>) => Disposable;
17
+ once: (listener: Listener<T>) => void;
18
+ off: (listener: Listener<T>) => void;
19
+ emit: (event: T) => void;
20
+ pipe: (te: CustomElementEvent<T>) => Disposable;
21
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomElementEvent = exports.CustomElementEventArgs = void 0;
4
+ var CustomElementEventArgs = /** @class */ (function () {
5
+ function CustomElementEventArgs(value, eventName) {
6
+ this.value = value;
7
+ this.eventName = eventName;
8
+ }
9
+ return CustomElementEventArgs;
10
+ }());
11
+ exports.CustomElementEventArgs = CustomElementEventArgs;
12
+ /** passes through events as they happen. You will not get events from before you start listening */
13
+ var CustomElementEvent = /** @class */ (function () {
14
+ function CustomElementEvent() {
15
+ var _this = this;
16
+ this.listeners = [];
17
+ this.listenersOncer = [];
18
+ this.on = function (listener) {
19
+ _this.listeners.push(listener);
20
+ return {
21
+ dispose: function () { return _this.off(listener); },
22
+ };
23
+ };
24
+ this.once = function (listener) {
25
+ _this.listenersOncer.push(listener);
26
+ };
27
+ this.off = function (listener) {
28
+ var callbackIndex = _this.listeners.indexOf(listener);
29
+ if (callbackIndex > -1)
30
+ _this.listeners.splice(callbackIndex, 1);
31
+ };
32
+ this.emit = function (event) {
33
+ /** Update any general listeners */
34
+ _this.listeners.forEach(function (listener) { return listener(event); });
35
+ /** Clear the `once` queue */
36
+ if (_this.listenersOncer.length > 0) {
37
+ _this.listenersOncer.forEach(function (listener) { return listener(event); });
38
+ _this.listenersOncer = [];
39
+ }
40
+ };
41
+ this.pipe = function (te) {
42
+ return _this.on(function (e) { return te.emit(e); });
43
+ };
44
+ }
45
+ return CustomElementEvent;
46
+ }());
47
+ exports.CustomElementEvent = CustomElementEvent;
48
+ //# sourceMappingURL=CustomEvents.js.map