@luftborn/custom-elements 2.13.9 → 2.14.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 (76) hide show
  1. package/demo/index.js +378 -85
  2. package/demo/index.min.js +377 -84
  3. package/demo/index.min.js.map +1 -1
  4. package/dist/elements/Elements.d.ts +2 -1
  5. package/dist/elements/Elements.js +3 -1
  6. package/dist/elements/Elements.js.map +1 -1
  7. package/dist/elements/ResidentIdentification/ResidentIdentificationElement.d.ts +22 -0
  8. package/dist/elements/ResidentIdentification/ResidentIdentificationElement.js +144 -0
  9. package/dist/elements/ResidentIdentification/ResidentIdentificationElement.js.map +1 -0
  10. package/dist/framework/CustomInputElement.js +3 -0
  11. package/dist/framework/CustomInputElement.js.map +1 -1
  12. package/dist/framework/Language/Languages/CzechDictionary.js +7 -1
  13. package/dist/framework/Language/Languages/CzechDictionary.js.map +1 -1
  14. package/dist/framework/Language/Languages/DanishDictionary.js +7 -1
  15. package/dist/framework/Language/Languages/DanishDictionary.js.map +1 -1
  16. package/dist/framework/Language/Languages/DutchDictionary.js +7 -1
  17. package/dist/framework/Language/Languages/DutchDictionary.js.map +1 -1
  18. package/dist/framework/Language/Languages/EnglishDictionary.js +7 -1
  19. package/dist/framework/Language/Languages/EnglishDictionary.js.map +1 -1
  20. package/dist/framework/Language/Languages/EstonianDictionary.js +7 -1
  21. package/dist/framework/Language/Languages/EstonianDictionary.js.map +1 -1
  22. package/dist/framework/Language/Languages/FinnishDictionary.js +7 -1
  23. package/dist/framework/Language/Languages/FinnishDictionary.js.map +1 -1
  24. package/dist/framework/Language/Languages/FrenchDictionary.js +7 -1
  25. package/dist/framework/Language/Languages/FrenchDictionary.js.map +1 -1
  26. package/dist/framework/Language/Languages/GermanDictionary.js +7 -1
  27. package/dist/framework/Language/Languages/GermanDictionary.js.map +1 -1
  28. package/dist/framework/Language/Languages/GreekDictionary.js +7 -1
  29. package/dist/framework/Language/Languages/GreekDictionary.js.map +1 -1
  30. package/dist/framework/Language/Languages/HungarianDictionary.js +7 -1
  31. package/dist/framework/Language/Languages/HungarianDictionary.js.map +1 -1
  32. package/dist/framework/Language/Languages/IcelandicDictionary.js +7 -1
  33. package/dist/framework/Language/Languages/IcelandicDictionary.js.map +1 -1
  34. package/dist/framework/Language/Languages/ItalianDictionary.js +7 -1
  35. package/dist/framework/Language/Languages/ItalianDictionary.js.map +1 -1
  36. package/dist/framework/Language/Languages/LatvianDictionary.js +7 -1
  37. package/dist/framework/Language/Languages/LatvianDictionary.js.map +1 -1
  38. package/dist/framework/Language/Languages/LituanianDictionary.js +7 -1
  39. package/dist/framework/Language/Languages/LituanianDictionary.js.map +1 -1
  40. package/dist/framework/Language/Languages/NorwegianDictionary.js +7 -1
  41. package/dist/framework/Language/Languages/NorwegianDictionary.js.map +1 -1
  42. package/dist/framework/Language/Languages/PolishDictionary.js +7 -1
  43. package/dist/framework/Language/Languages/PolishDictionary.js.map +1 -1
  44. package/dist/framework/Language/Languages/PortugueseDictionary.js +7 -1
  45. package/dist/framework/Language/Languages/PortugueseDictionary.js.map +1 -1
  46. package/dist/framework/Language/Languages/SpanishDictionary.js +7 -1
  47. package/dist/framework/Language/Languages/SpanishDictionary.js.map +1 -1
  48. package/dist/framework/Language/Languages/SwedishDictionary.js +7 -1
  49. package/dist/framework/Language/Languages/SwedishDictionary.js.map +1 -1
  50. package/dist/framework/Validation/Validators/ResidentIdentification.d.ts +5 -0
  51. package/dist/framework/Validation/Validators/ResidentIdentification.js +28 -0
  52. package/dist/framework/Validation/Validators/ResidentIdentification.js.map +1 -0
  53. package/package.json +1 -1
  54. package/src/elements/Elements.ts +2 -0
  55. package/src/elements/ResidentIdentification/ResidentIdentificationElement.ts +136 -0
  56. package/src/framework/CustomInputElement.ts +3 -0
  57. package/src/framework/Language/Languages/CzechDictionary.ts +7 -1
  58. package/src/framework/Language/Languages/DanishDictionary.ts +8 -1
  59. package/src/framework/Language/Languages/DutchDictionary.ts +7 -1
  60. package/src/framework/Language/Languages/EnglishDictionary.ts +7 -1
  61. package/src/framework/Language/Languages/EstonianDictionary.ts +7 -1
  62. package/src/framework/Language/Languages/FinnishDictionary.ts +7 -1
  63. package/src/framework/Language/Languages/FrenchDictionary.ts +7 -1
  64. package/src/framework/Language/Languages/GermanDictionary.ts +7 -1
  65. package/src/framework/Language/Languages/GreekDictionary.ts +7 -1
  66. package/src/framework/Language/Languages/HungarianDictionary.ts +7 -1
  67. package/src/framework/Language/Languages/IcelandicDictionary.ts +7 -1
  68. package/src/framework/Language/Languages/ItalianDictionary.ts +7 -1
  69. package/src/framework/Language/Languages/LatvianDictionary.ts +7 -1
  70. package/src/framework/Language/Languages/LituanianDictionary.ts +7 -1
  71. package/src/framework/Language/Languages/NorwegianDictionary.ts +7 -1
  72. package/src/framework/Language/Languages/PolishDictionary.ts +7 -1
  73. package/src/framework/Language/Languages/PortugueseDictionary.ts +7 -1
  74. package/src/framework/Language/Languages/SpanishDictionary.ts +7 -1
  75. package/src/framework/Language/Languages/SwedishDictionary.ts +7 -1
  76. package/src/framework/Validation/Validators/ResidentIdentification.ts +28 -0
@@ -30,7 +30,13 @@ var PolishDictionary = /** @class */ (function (_super) {
30
30
  BankElement: {
31
31
  Account: "Konto bankowe",
32
32
  RegistrationNumber: "Numer rejestracyjny konta bankowego"
33
- }
33
+ },
34
+ ResidentIdentificationElement: {
35
+ Company: "Firma",
36
+ Property: "Nieruchomość",
37
+ Tenancy: "Umowa najmu",
38
+ Tenant: "Najemca"
39
+ },
34
40
  };
35
41
  return _this;
36
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PolishDictionary.js","sourceRoot":"","sources":["../../../../src/framework/Language/Languages/PolishDictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmD;AAEnD;IAA8C,oCAAc;IAA5D;QAAA,qEAeC;QAbG,gBAAU,GAAQ;YACd,cAAc,EAAE;gBACZ,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,cAAc;aACtB;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,eAAe;gBACxB,kBAAkB,EAAE,qCAAqC;aAC5D;SACJ,CAAC;;IAEN,CAAC;IAAD,uBAAC;AAAD,CAAC,AAfD,CAA8C,wBAAc,GAe3D"}
1
+ {"version":3,"file":"PolishDictionary.js","sourceRoot":"","sources":["../../../../src/framework/Language/Languages/PolishDictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmD;AAEnD;IAA8C,oCAAc;IAA5D;QAAA,qEAqBC;QAnBG,gBAAU,GAAQ;YACd,cAAc,EAAE;gBACZ,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,cAAc;aACtB;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,eAAe;gBACxB,kBAAkB,EAAE,qCAAqC;aAC5D;YACD,6BAA6B,EAAE;gBAC3B,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,SAAS;aACpB;SACJ,CAAC;;IAEN,CAAC;IAAD,uBAAC;AAAD,CAAC,AArBD,CAA8C,wBAAc,GAqB3D"}
@@ -30,7 +30,13 @@ var PortugueseDictionary = /** @class */ (function (_super) {
30
30
  BankElement: {
31
31
  Account: "Conta bancária",
32
32
  RegistrationNumber: "Número de registro da conta bancária"
33
- }
33
+ },
34
+ ResidentIdentificationElement: {
35
+ Company: "Empresa",
36
+ Property: "Propriedade",
37
+ Tenancy: "Contrato de locação",
38
+ Tenant: "Inquilino"
39
+ },
34
40
  };
35
41
  return _this;
36
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PortugueseDictionary.js","sourceRoot":"","sources":["../../../../src/framework/Language/Languages/PortugueseDictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmD;AAEnD;IAAkD,wCAAc;IAAhE;QAAA,qEAeC;QAbG,gBAAU,GAAQ;YACd,cAAc,EAAE;gBACZ,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,eAAe;aACvB;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,gBAAgB;gBACzB,kBAAkB,EAAE,sCAAsC;aAC7D;SACJ,CAAC;;IAEN,CAAC;IAAD,2BAAC;AAAD,CAAC,AAfD,CAAkD,wBAAc,GAe/D"}
1
+ {"version":3,"file":"PortugueseDictionary.js","sourceRoot":"","sources":["../../../../src/framework/Language/Languages/PortugueseDictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmD;AAEnD;IAAkD,wCAAc;IAAhE;QAAA,qEAqBC;QAnBG,gBAAU,GAAQ;YACd,cAAc,EAAE;gBACZ,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,eAAe;aACvB;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,gBAAgB;gBACzB,kBAAkB,EAAE,sCAAsC;aAC7D;YACD,6BAA6B,EAAE;gBAC3B,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,qBAAqB;gBAC9B,MAAM,EAAE,WAAW;aACtB;SACJ,CAAC;;IAEN,CAAC;IAAD,2BAAC;AAAD,CAAC,AArBD,CAAkD,wBAAc,GAqB/D"}
@@ -30,7 +30,13 @@ var SpanishDictionary = /** @class */ (function (_super) {
30
30
  BankElement: {
31
31
  Account: "Cuenta bancaria",
32
32
  RegistrationNumber: "Número de registro de cuenta bancaria"
33
- }
33
+ },
34
+ ResidentIdentificationElement: {
35
+ Company: "Empresa",
36
+ Property: "Propiedad",
37
+ Tenancy: "Arrendamiento",
38
+ Tenant: "Inquilino"
39
+ },
34
40
  };
35
41
  return _this;
36
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SpanishDictionary.js","sourceRoot":"","sources":["../../../../src/framework/Language/Languages/SpanishDictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmD;AAEnD;IAA+C,qCAAc;IAA7D;QAAA,qEAeC;QAbG,gBAAU,GAAQ;YACd,cAAc,EAAE;gBACZ,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,eAAe;aACvB;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,iBAAiB;gBAC1B,kBAAkB,EAAE,uCAAuC;aAC9D;SACJ,CAAC;;IAEN,CAAC;IAAD,wBAAC;AAAD,CAAC,AAfD,CAA+C,wBAAc,GAe5D"}
1
+ {"version":3,"file":"SpanishDictionary.js","sourceRoot":"","sources":["../../../../src/framework/Language/Languages/SpanishDictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmD;AAEnD;IAA+C,qCAAc;IAA7D;QAAA,qEAqBC;QAnBG,gBAAU,GAAQ;YACd,cAAc,EAAE;gBACZ,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,eAAe;aACvB;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,iBAAiB;gBAC1B,kBAAkB,EAAE,uCAAuC;aAC9D;YACD,6BAA6B,EAAE;gBAC3B,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,WAAW;aACtB;SACJ,CAAC;;IAEN,CAAC;IAAD,wBAAC;AAAD,CAAC,AArBD,CAA+C,wBAAc,GAqB5D"}
@@ -30,7 +30,13 @@ var SwedishDictionary = /** @class */ (function (_super) {
30
30
  BankElement: {
31
31
  Account: "Bankkonto",
32
32
  RegistrationNumber: "Bankkontoregistreringsnummer"
33
- }
33
+ },
34
+ ResidentIdentificationElement: {
35
+ Company: "Företag",
36
+ Property: "Fastighet",
37
+ Tenancy: "Hyresavtal",
38
+ Tenant: "Hyresgäst"
39
+ },
34
40
  };
35
41
  return _this;
36
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SwedishDictionary.js","sourceRoot":"","sources":["../../../../src/framework/Language/Languages/SwedishDictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmD;AAEnD;IAA+C,qCAAc;IAA7D;QAAA,qEAeC;QAbG,gBAAU,GAAQ;YACd,cAAc,EAAE;gBACZ,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,YAAY;aACpB;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,WAAW;gBACpB,kBAAkB,EAAE,8BAA8B;aACrD;SACJ,CAAC;;IAEN,CAAC;IAAD,wBAAC;AAAD,CAAC,AAfD,CAA+C,wBAAc,GAe5D"}
1
+ {"version":3,"file":"SwedishDictionary.js","sourceRoot":"","sources":["../../../../src/framework/Language/Languages/SwedishDictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmD;AAEnD;IAA+C,qCAAc;IAA7D;QAAA,qEAqBC;QAnBG,gBAAU,GAAQ;YACd,cAAc,EAAE;gBACZ,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,YAAY;aACpB;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,WAAW;gBACpB,kBAAkB,EAAE,8BAA8B;aACrD;YACD,6BAA6B,EAAE;gBAC3B,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,WAAW;aACtB;SACJ,CAAC;;IAEN,CAAC;IAAD,wBAAC;AAAD,CAAC,AArBD,CAA+C,wBAAc,GAqB5D"}
@@ -0,0 +1,5 @@
1
+ import IValidation from '../IValidator.interface';
2
+ export default class ResidentIdentificationValidator implements IValidation {
3
+ isSatisfiedBy(input: string, allowEmpty?: boolean): boolean;
4
+ private validatePart;
5
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var ResidentIdentificationValidator = /** @class */ (function () {
4
+ function ResidentIdentificationValidator() {
5
+ }
6
+ ResidentIdentificationValidator.prototype.isSatisfiedBy = function (input, allowEmpty) {
7
+ if (allowEmpty === void 0) { allowEmpty = true; }
8
+ if (allowEmpty && !input) {
9
+ return true;
10
+ }
11
+ var parts = input.split('-');
12
+ if (parts.length !== 4) {
13
+ return false;
14
+ }
15
+ var _a = parts.map(function (part) { return part.trim(); }), company = _a[0], property = _a[1], tenancy = _a[2], tenant = _a[3];
16
+ return (this.validatePart(company, 1, 3) &&
17
+ this.validatePart(property, 1, 4) &&
18
+ this.validatePart(tenancy, 1, 6) &&
19
+ this.validatePart(tenant, 1, 4));
20
+ };
21
+ ResidentIdentificationValidator.prototype.validatePart = function (part, min, max) {
22
+ var number = parseInt(part, 10);
23
+ return !isNaN(number) && part.length >= min && part.length <= max;
24
+ };
25
+ return ResidentIdentificationValidator;
26
+ }());
27
+ exports.default = ResidentIdentificationValidator;
28
+ //# sourceMappingURL=ResidentIdentification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResidentIdentification.js","sourceRoot":"","sources":["../../../../src/framework/Validation/Validators/ResidentIdentification.ts"],"names":[],"mappings":";;AAEA;IAAA;IAyBA,CAAC;IAxBU,uDAAa,GAApB,UAAqB,KAAa,EAAE,UAA0B;QAA1B,2BAAA,EAAA,iBAA0B;QAC1D,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE;YACtB,OAAO,IAAI,CAAC;SACf;QAED,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC;SAChB;QAEK,IAAA,KAAuC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAE,EAAX,CAAW,CAAC,EAApE,OAAO,QAAA,EAAE,QAAQ,QAAA,EAAE,OAAO,QAAA,EAAE,MAAM,QAAkC,CAAC;QAE5E,OAAO,CACH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAClC,CAAC;IACN,CAAC;IAEO,sDAAY,GAApB,UAAqB,IAAY,EAAE,GAAW,EAAE,GAAW;QACvD,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;IACtE,CAAC;IACL,sCAAC;AAAD,CAAC,AAzBD,IAyBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luftborn/custom-elements",
3
- "version": "2.13.9",
3
+ "version": "2.14.0",
4
4
  "description": "custom HTML elements for the form builder application (node version: 18)",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -18,6 +18,7 @@ import { TypeAheadElement } from './TypeAhead/TypeAheadElement';
18
18
  import { SEPersonalNumberElement } from './SEPersonalNumberElement/SEPersonalNumberElement';
19
19
  import { SECompanyRegistrationElement } from './SECompanyRegistrationElement/SECompanyRegistrationElement';
20
20
  import { CustomFormatDateFieldElement } from './CustomFormatDateFieldElement/CustomFormatDateFieldElement';
21
+ import { ResidentIdentificationElement } from './ResidentIdentification/ResidentIdentificationElement';
21
22
 
22
23
  export {
23
24
  AddressElement,
@@ -40,4 +41,5 @@ export {
40
41
  TypeAheadElement,
41
42
  SEPersonalNumberElement,
42
43
  SECompanyRegistrationElement,
44
+ ResidentIdentificationElement,
43
45
  };
@@ -0,0 +1,136 @@
1
+ import CustomElement from '../../framework/custom-element.decorator';
2
+ import { CustomInputElement } from '../../framework/CustomInputElement';
3
+ import { CustomElementEventArgs } from '../../framework/CustomEvents';
4
+ import Translator from '../../framework/Language/Translator';
5
+ import getAttributeNamesPolyfill from '../../framework/Polyfills/getAttributeNamesPolyfill';
6
+ import ResidentIdentificationValidator from '../../framework/Validation/Validators/ResidentIdentification';
7
+
8
+ @CustomElement({
9
+ selector: 'resident-identification-element',
10
+ template: `
11
+ <div class="field-wrapper">
12
+ <input class='field-part' id='company' type="text" placeholder='Company'/>
13
+ <input class='field-part' id='property' type="text" placeholder='Property'/>
14
+ <input class='field-part' id='tenancy' type="text" placeholder='Tenancy'/>
15
+ <input class='field-part' id='tenant' type="text" placeholder='Tenant'/>
16
+ </div>`,
17
+ style: `.field-wrapper{
18
+ display: flex;
19
+ flex-wrap: nowrap;
20
+ }
21
+ input.field-part{
22
+ box-sizing: border-box;
23
+ border: none;
24
+ background-color: #f1f4ff;
25
+ margin: 0.125rem;
26
+ resize: none;
27
+ width:33% !important;
28
+ }
29
+ `,
30
+ templatePath: './html.html',
31
+ useShadow: true,
32
+ })
33
+ export class ResidentIdentificationElement extends CustomInputElement {
34
+ company: HTMLInputElement;
35
+ property: HTMLInputElement;
36
+ tenancy: HTMLInputElement;
37
+ tenant: HTMLInputElement;
38
+ validator: ResidentIdentificationValidator = new ResidentIdentificationValidator();
39
+
40
+ constructor() {
41
+ super();
42
+ getAttributeNamesPolyfill();
43
+ }
44
+
45
+ get value(): string {
46
+ let company = this.company.value || '';
47
+ let property = this.property.value ? `-${this.property.value}` : '';
48
+ let tenancy = this.tenancy.value ? `-${this.tenancy.value}` : '';
49
+ let tenant = this.tenant.value ? `-${this.tenant.value}` : '';
50
+ return `${company}${property}${tenancy}${tenant}`;
51
+ }
52
+
53
+ set value(value: string) {
54
+ const values = value.split(',');
55
+ this.company.value = values[0];
56
+ this.property.value = values[1];
57
+ this.tenancy.value = values[2];
58
+ this.tenant.value = values[3];
59
+ }
60
+
61
+ get valid(): boolean {
62
+ return this.validator.isSatisfiedBy(this.value, !this.required);
63
+ }
64
+
65
+ connectedCallback(): void {
66
+ super.connectedCallback();
67
+ }
68
+
69
+ componentDidMount() {
70
+ this.initChildInputs();
71
+ this.getAttributeNames().forEach(attributeName => {
72
+ let attributeValue = this.getAttribute(attributeName);
73
+ this.attributeChanged(attributeName, null, attributeValue);
74
+ });
75
+ }
76
+
77
+ initChildInputs() {
78
+ this.company = super.getChildInput('#company');
79
+ this.property = super.getChildInput('#property');
80
+ this.tenancy = super.getChildInput('#tenancy');
81
+ this.tenant = super.getChildInput('#tenant');
82
+ this.company.addEventListener('change', this.change.bind(this));
83
+ this.property.addEventListener('change', this.change.bind(this));
84
+ this.tenancy.addEventListener('change', this.change.bind(this));
85
+ this.tenant.addEventListener('change', this.change.bind(this));
86
+ if (this.required) {
87
+ this.company.setAttribute('required', 'required');
88
+ this.property.setAttribute('required', 'required');
89
+ this.tenancy.setAttribute('required', 'required');
90
+ this.tenant.setAttribute('required', 'required');
91
+ }
92
+ if (this.label) {
93
+ const wrapper = this.shadowRoot.querySelector('.field-wrapper');
94
+ if (wrapper) {
95
+ wrapper.setAttribute('aria-label', this.label);
96
+ }
97
+ }
98
+ }
99
+
100
+ // events
101
+ public change($event): void {
102
+ this.touched = true;
103
+ this.onChange.emit(new CustomElementEventArgs(this.value, 'change'));
104
+ }
105
+
106
+ public validate(): void {
107
+ this.valid;
108
+ this.onValidate.emit(
109
+ new CustomElementEventArgs(this.value, 'validate'),
110
+ );
111
+ }
112
+
113
+ changeLanguage(language: string) {
114
+ if (!this.company || !this.property || !this.tenancy || !this.tenant) {
115
+ return;
116
+ }
117
+ this.company.placeholder = Translator.Translate('ResidentIdentificationElement.Company', language);
118
+ this.property.placeholder = Translator.Translate('ResidentIdentificationElement.Property', language);
119
+ this.tenancy.placeholder = Translator.Translate('ResidentIdentificationElement.Tenancy', language);
120
+ this.tenant.placeholder = Translator.Translate('ResidentIdentificationElement.Tenant', language);
121
+ }
122
+
123
+ static get observedAttributes() {
124
+ return ['language'];
125
+ }
126
+ attributeChangedCallback(name: string, oldVal: string, newVal: string) {
127
+ this.attributeChanged(name, oldVal, newVal);
128
+ }
129
+ private attributeChanged(name: string, oldVal: string, newVal: string) {
130
+ switch (name) {
131
+ case 'language':
132
+ this.changeLanguage(newVal)
133
+ break;
134
+ }
135
+ }
136
+ }
@@ -181,6 +181,9 @@ export abstract class CustomInputElement extends HTMLElement {
181
181
  let IsConditionMatched = false;
182
182
  if (type === "has") {
183
183
  IsConditionMatched = !!e.value;
184
+ if (Array.isArray(e.value)) {
185
+ IsConditionMatched = e.value.length > 0;
186
+ }
184
187
  }
185
188
  if (type === "no") {
186
189
  IsConditionMatched = !e.value;
@@ -12,7 +12,13 @@ export default class CzechDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Účet",
14
14
  RegistrationNumber: "Registrační číslo"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Společnost",
18
+ Property: "Nemovitost",
19
+ Tenancy: "Pronájem",
20
+ Tenant: "nájemce"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -1,3 +1,4 @@
1
+ import { ResidentIdentificationElement } from "../../../elements/ResidentIdentification/ResidentIdentificationElement";
1
2
  import BaseDictionary from "./Base/BaseDictionary";
2
3
 
3
4
  export default class DanishDictionary extends BaseDictionary {
@@ -12,7 +13,13 @@ export default class DanishDictionary extends BaseDictionary {
12
13
  BankElement: {
13
14
  Account: "Kontonummer",
14
15
  RegistrationNumber: "Registreringsnummer"
15
- }
16
+ },
17
+ ResidentIdentificationElement: {
18
+ Company: "Virksomhed",
19
+ Property: "Ejendom",
20
+ Tenancy: "Lejemål",
21
+ Tenant: "Lejer"
22
+ },
16
23
  };
17
24
 
18
25
  }
@@ -12,7 +12,13 @@ export default class DutchDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Bankrekening",
14
14
  RegistrationNumber: "Bankrekening Registratienummer"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Bedrijf",
18
+ Property: "Eigendom",
19
+ Tenancy: "Huurovereenkomst",
20
+ Tenant: "Huurder"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class EnglishDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Bank Account",
14
14
  RegistrationNumber: "Bank Account Registration Number"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Company",
18
+ Property: "Property",
19
+ Tenancy: "Tenancy",
20
+ Tenant: "Tenant"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class EstonianDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Pangakonto",
14
14
  RegistrationNumber: "Pangakonto registreerimisnumber"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Ettevõte",
18
+ Property: "Kinnisvara",
19
+ Tenancy: "Üürileping",
20
+ Tenant: "Üürnik"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class FinnishDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Pankkitili",
14
14
  RegistrationNumber: "Pankkitilin rekisteröintinumero"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Yritys",
18
+ Property: "Kiinteistö",
19
+ Tenancy: "Vuokrasopimus",
20
+ Tenant: "Vuokralainen"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class FrenchDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Compte bancaire",
14
14
  RegistrationNumber: "Numéro d'enregistrement du compte bancaire"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Société",
18
+ Property: "Propriété",
19
+ Tenancy: "Bail",
20
+ Tenant: "Locataire"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class GermanDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Bankkonto",
14
14
  RegistrationNumber: "Bankkontoregistrierungsnummer"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Unternehmen",
18
+ Property: "Eigentum",
19
+ Tenancy: "Mietvertrag",
20
+ Tenant: "Mieter"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class GreekDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Τραπεζικός λογαριασμός",
14
14
  RegistrationNumber: "Αριθμός εγγραφής τραπεζικού λογαριασμού"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Εταιρεία",
18
+ Property: "Ακίνητο",
19
+ Tenancy: "Μίσθωση",
20
+ Tenant: "Ενοικιαστής"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class HungarianDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Banki számla",
14
14
  RegistrationNumber: "Banki számla regisztrációs száma"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Cég",
18
+ Property: "Ingatlan",
19
+ Tenancy: "Bérlet",
20
+ Tenant: "Bérlő"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class IcelandicDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Bankareikningur",
14
14
  RegistrationNumber: "Númer skráningar á bankareikningi"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Fyrirtæki",
18
+ Property: "Eign",
19
+ Tenancy: "Leigusamningur",
20
+ Tenant: "Leigjandi"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class ItalianDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "conto bancario",
14
14
  RegistrationNumber: "Numero di registrazione del conto bancario"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Azienda",
18
+ Property: "Proprietà",
19
+ Tenancy: "Contratto di locazione",
20
+ Tenant: "Inquilino"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class LatvianDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Bankas konts",
14
14
  RegistrationNumber: "Bankas konta reģistrācijas numurs"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Uzņēmums",
18
+ Property: "Īpašums",
19
+ Tenancy: "Nomas līgums",
20
+ Tenant: "Nomnieks"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class LituanianDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Banko sąskaita",
14
14
  RegistrationNumber: "Banko sąskaitos registracijos numeris"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Įmonė",
18
+ Property: "Nuosavybė",
19
+ Tenancy: "Nuomos sutartis",
20
+ Tenant: "Nuomininkas"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class NorwegianDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Bankkonto",
14
14
  RegistrationNumber: "Registreringsnummer for bankkonto"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Selskap",
18
+ Property: "Eiendom",
19
+ Tenancy: "Leieavtale",
20
+ Tenant: "Leietaker"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class PolishDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Konto bankowe",
14
14
  RegistrationNumber: "Numer rejestracyjny konta bankowego"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Firma",
18
+ Property: "Nieruchomość",
19
+ Tenancy: "Umowa najmu",
20
+ Tenant: "Najemca"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class PortugueseDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Conta bancária",
14
14
  RegistrationNumber: "Número de registro da conta bancária"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Empresa",
18
+ Property: "Propriedade",
19
+ Tenancy: "Contrato de locação",
20
+ Tenant: "Inquilino"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class SpanishDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Cuenta bancaria",
14
14
  RegistrationNumber: "Número de registro de cuenta bancaria"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Empresa",
18
+ Property: "Propiedad",
19
+ Tenancy: "Arrendamiento",
20
+ Tenant: "Inquilino"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -12,7 +12,13 @@ export default class SwedishDictionary extends BaseDictionary {
12
12
  BankElement: {
13
13
  Account: "Bankkonto",
14
14
  RegistrationNumber: "Bankkontoregistreringsnummer"
15
- }
15
+ },
16
+ ResidentIdentificationElement: {
17
+ Company: "Företag",
18
+ Property: "Fastighet",
19
+ Tenancy: "Hyresavtal",
20
+ Tenant: "Hyresgäst"
21
+ },
16
22
  };
17
23
 
18
24
  }
@@ -0,0 +1,28 @@
1
+ import IValidation from '../IValidator.interface';
2
+
3
+ export default class ResidentIdentificationValidator implements IValidation {
4
+ public isSatisfiedBy(input: string, allowEmpty: boolean = true): boolean {
5
+ if (allowEmpty && !input) {
6
+ return true;
7
+ }
8
+
9
+ const parts = input.split('-');
10
+ if (parts.length !== 4) {
11
+ return false;
12
+ }
13
+
14
+ const [company, property, tenancy, tenant] = parts.map(part => part.trim());
15
+
16
+ return (
17
+ this.validatePart(company, 1, 3) &&
18
+ this.validatePart(property, 1, 4) &&
19
+ this.validatePart(tenancy, 1, 6) &&
20
+ this.validatePart(tenant, 1, 4)
21
+ );
22
+ }
23
+
24
+ private validatePart(part: string, min: number, max: number): boolean {
25
+ const number = parseInt(part, 10);
26
+ return !isNaN(number) && part.length >= min && part.length <= max;
27
+ }
28
+ }