@iamproperty/components 5.1.0-beta11 → 5.1.0-beta13
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.
- package/assets/css/components/component.native.css +1 -1
- package/assets/css/components/component.native.css.map +1 -1
- package/assets/css/components/component.reset.css +1 -1
- package/assets/css/components/component.reset.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +5 -4
- package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/card/card.component.min.js +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/nav/nav.component.min.js +1 -1
- package/assets/js/components/notification/notification.component.min.js +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +1 -1
- package/assets/js/components/search/search.component.js +29 -15
- package/assets/js/components/search/search.component.min.js +13 -7
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.min.js +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +1 -1
- package/assets/js/dynamic.min.js +2 -2
- package/assets/js/dynamic.min.js.map +1 -1
- package/assets/js/modules/inputs.js +4 -0
- package/assets/js/scripts.bundle.js +8 -8
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +2 -2
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/sass/_func.scss +1 -0
- package/assets/sass/components/component.native.scss +4 -0
- package/assets/sass/elements/forms.scss +16 -4
- package/assets/ts/components/address-lookup/address-lookup.component.ts +6 -6
- package/assets/ts/components/search/search.component.ts +35 -19
- package/assets/ts/modules/inputs.ts +5 -0
- package/dist/components.es.js +12 -12
- package/dist/components.umd.js +16 -16
- package/package.json +1 -1
package/assets/sass/_func.scss
CHANGED
|
@@ -12,11 +12,23 @@ $icon-tick: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' view
|
|
|
12
12
|
font-weight: normal;
|
|
13
13
|
color: var(--colour-heading);
|
|
14
14
|
display: block;
|
|
15
|
+
}
|
|
16
|
+
// #endregion
|
|
17
|
+
|
|
18
|
+
// #region Optional text
|
|
19
|
+
:is(label,.label) {
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
@if $optionalText == "true" {
|
|
22
|
+
&:has(+ input:not(:disabled):not([readonly]):not(:required):not([type='radio']):not([type='checkbox']):not([type='file'])):after {
|
|
23
|
+
content: " (Optional)";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&:has(input:not(:disabled):not([readonly]):not(:required):not([type='radio']):not([type='checkbox']):not([type='file'])) .optional-text:before {
|
|
17
28
|
content: " (Optional)";
|
|
18
29
|
}
|
|
19
30
|
}
|
|
31
|
+
|
|
20
32
|
// #endregion
|
|
21
33
|
|
|
22
34
|
// #region input field
|
|
@@ -375,7 +387,7 @@ input[maxlength] + span {
|
|
|
375
387
|
border-color: var(--colour-complete);
|
|
376
388
|
}
|
|
377
389
|
|
|
378
|
-
.was-validated input:is(:valid, .is-valid) {
|
|
390
|
+
.was-validated input:is(:valid, .is-valid):not(:is(:invalid, .is-invalid)) {
|
|
379
391
|
|
|
380
392
|
background-image: escape-svg($icon-tick);
|
|
381
393
|
background-repeat: no-repeat;
|
|
@@ -887,7 +899,7 @@ iam-fileupload {
|
|
|
887
899
|
|
|
888
900
|
margin-bottom: 1.5rem;
|
|
889
901
|
|
|
890
|
-
&:has(:invalid):after {
|
|
902
|
+
&:has(:is(:invalid,.is-invalid)):after {
|
|
891
903
|
content: "This field is required";
|
|
892
904
|
color: var(--colour-danger);
|
|
893
905
|
margin-top: rem(8);
|
|
@@ -902,7 +914,7 @@ iam-fileupload {
|
|
|
902
914
|
line-height: 1.2;
|
|
903
915
|
}
|
|
904
916
|
|
|
905
|
-
&[data-error]:has(:invalid):after {
|
|
917
|
+
&[data-error]:has(:is(:invalid,.is-invalid)):after {
|
|
906
918
|
content: attr(data-error)!important;
|
|
907
919
|
}
|
|
908
920
|
|
|
@@ -84,15 +84,15 @@ class iamAddressLookup extends HTMLElement {
|
|
|
84
84
|
preFilledAddress.innerHTML = "";
|
|
85
85
|
|
|
86
86
|
Array.from(component.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')).forEach((input, index) => {
|
|
87
|
+
const value = input.value;
|
|
87
88
|
|
|
88
|
-
if(!
|
|
89
|
+
if(!value)
|
|
89
90
|
preFilled = false;
|
|
90
91
|
else
|
|
91
|
-
preFilledAddress.innerHTML += ', '
|
|
92
|
-
|
|
92
|
+
preFilledAddress.innerHTML += value+(/^-?\d+$/.test(value) ? ' ' : ', ');
|
|
93
93
|
});
|
|
94
94
|
|
|
95
|
-
preFilledAddress.innerHTML = preFilledAddress.innerHTML.slice(
|
|
95
|
+
preFilledAddress.innerHTML = preFilledAddress.innerHTML.slice(0, -2);
|
|
96
96
|
|
|
97
97
|
if(preFilled){
|
|
98
98
|
preFilledWrapper.classList.remove('js-hide');
|
|
@@ -266,9 +266,9 @@ class iamAddressLookup extends HTMLElement {
|
|
|
266
266
|
if(key == "address_number_name")
|
|
267
267
|
itemString += `${value} `;
|
|
268
268
|
else if(key != "postcode" && key != "address_title")
|
|
269
|
-
itemString += `${value}, `;
|
|
269
|
+
itemString += `${value}${(/^-?\d+$/.test(value)?'':',')} `;
|
|
270
270
|
}
|
|
271
|
-
|
|
271
|
+
|
|
272
272
|
listString += `<option value="${itemString}${postcode}" data-values='${values}'></option>`;
|
|
273
273
|
}
|
|
274
274
|
|
|
@@ -22,7 +22,13 @@ class iamSearch extends HTMLElement {
|
|
|
22
22
|
template.innerHTML = `
|
|
23
23
|
<style>
|
|
24
24
|
@import "${coreCSS}";
|
|
25
|
-
|
|
25
|
+
input {
|
|
26
|
+
background: red;
|
|
27
|
+
}
|
|
28
|
+
input:not(.is-invalid):not(:invalid) {
|
|
29
|
+
background: none!important;
|
|
30
|
+
}
|
|
31
|
+
|
|
26
32
|
</style>
|
|
27
33
|
<link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
|
|
28
34
|
<slot></slot>
|
|
@@ -62,36 +68,43 @@ class iamSearch extends HTMLElement {
|
|
|
62
68
|
displayInputField.setAttribute('list',listID);
|
|
63
69
|
}
|
|
64
70
|
|
|
65
|
-
// on change update oringinal field with the actual value and use displayed input for the nice display text
|
|
66
|
-
displayInputField.addEventListener('change', (event) => {
|
|
67
|
-
|
|
68
|
-
let match = datalist.querySelector(`option[value="${displayInputField.value}"]`);
|
|
69
|
-
|
|
70
|
-
if(match){
|
|
71
|
-
inputField.value = match.getAttribute('data-value');
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
|
|
75
71
|
// Search the endpoint when 3 characters has been added
|
|
76
72
|
if(searchWrapper.hasAttribute('data-url')){
|
|
77
73
|
|
|
78
|
-
displayInputField.addEventListener('
|
|
74
|
+
displayInputField.addEventListener('input', (event) => {
|
|
79
75
|
|
|
80
76
|
if(displayInputField.value.length == 3 && !searched.includes(displayInputField.value)){
|
|
81
77
|
search(displayInputField.value);
|
|
82
78
|
searched.push(displayInputField.value);
|
|
83
79
|
}
|
|
84
80
|
});
|
|
81
|
+
}
|
|
85
82
|
|
|
86
|
-
|
|
83
|
+
function checkMatch(){
|
|
84
|
+
|
|
85
|
+
let match = datalist.querySelector(`option[value="${displayInputField.value}"]`);
|
|
86
|
+
let subMatch = datalist.querySelector(`option[value*='${displayInputField.value}' i]`);
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
if(match){
|
|
89
|
+
inputField.value = match.getAttribute('data-value');
|
|
90
|
+
}
|
|
91
|
+
else if (displayInputField.value.length > 0 && !subMatch){
|
|
92
|
+
displayInputField.classList.add('is-invalid');
|
|
93
|
+
displayInputField.closest('label').setAttribute('data-error','No results returned');
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
displayInputField.classList.remove('is-invalid');
|
|
97
|
+
displayInputField.closest('label').removeAttribute('data-error');
|
|
98
|
+
}
|
|
93
99
|
}
|
|
94
|
-
|
|
100
|
+
|
|
101
|
+
// on change update oringinal field with the actual value and use displayed input for the nice display text
|
|
102
|
+
displayInputField.addEventListener('input', (event) => {
|
|
103
|
+
|
|
104
|
+
checkMatch();
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
|
|
95
108
|
const search = async (searchterm) => {
|
|
96
109
|
|
|
97
110
|
let ajaxURL = searchWrapper.getAttribute('data-url');
|
|
@@ -154,6 +167,9 @@ class iamSearch extends HTMLElement {
|
|
|
154
167
|
|
|
155
168
|
datalist.innerHTML += listString;
|
|
156
169
|
|
|
170
|
+
displayInputField.closest('form').classList.add('was-validated');
|
|
171
|
+
checkMatch();
|
|
172
|
+
|
|
157
173
|
return response;
|
|
158
174
|
});
|
|
159
175
|
|
|
@@ -10,6 +10,11 @@ const extendInputs = (body) => {
|
|
|
10
10
|
setMaxlengthVars(input,wrapper);
|
|
11
11
|
});
|
|
12
12
|
|
|
13
|
+
Array.from(document.querySelectorAll('label input')).forEach((input,index) => {
|
|
14
|
+
if(!input.closest('label').querySelector('.optional-text') && !input.hasAttribute('required'))
|
|
15
|
+
input.insertAdjacentHTML("beforebegin", `<span class="optional-text"></span>`);
|
|
16
|
+
});
|
|
17
|
+
|
|
13
18
|
// Date restrictions
|
|
14
19
|
if(document.querySelector('input[type="date"]')){
|
|
15
20
|
|
package/dist/components.es.js
CHANGED
|
@@ -48,7 +48,7 @@ function vt(e, a, t, i, s, o) {
|
|
|
48
48
|
}
|
|
49
49
|
const Li = /* @__PURE__ */ y(gt, [["render", vt]]);
|
|
50
50
|
/*!
|
|
51
|
-
* iamKey v5.1.0-
|
|
51
|
+
* iamKey v5.1.0-beta13
|
|
52
52
|
* Copyright 2022-2023 iamproperty
|
|
53
53
|
*/
|
|
54
54
|
const _t = function(e) {
|
|
@@ -557,7 +557,7 @@ class Mt extends HTMLElement {
|
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
559
|
/*!
|
|
560
|
-
* iamKey v5.1.0-
|
|
560
|
+
* iamKey v5.1.0-beta13
|
|
561
561
|
* Copyright 2022-2023 iamproperty
|
|
562
562
|
*/
|
|
563
563
|
class ot extends HTMLElement {
|
|
@@ -1152,7 +1152,7 @@ const be = {
|
|
|
1152
1152
|
props: {},
|
|
1153
1153
|
mounted() {
|
|
1154
1154
|
this.$nextTick(function() {
|
|
1155
|
-
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/accordion/accordion.component.js": () => import("./accordion.component-bd9af0d7.mjs"), "../../../assets/js/components/accordion/accordion.component.min.js": () => import("./accordion.component.min-
|
|
1155
|
+
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/accordion/accordion.component.js": () => import("./accordion.component-bd9af0d7.mjs"), "../../../assets/js/components/accordion/accordion.component.min.js": () => import("./accordion.component.min-7c16a7a4.mjs") }), "../../../assets/js/components/accordion/accordion.component.js").then((e) => {
|
|
1156
1156
|
window.customElements.get("iam-accordion") || window.customElements.define("iam-accordion", e.default);
|
|
1157
1157
|
}).catch((e) => {
|
|
1158
1158
|
console.log(e.message);
|
|
@@ -1263,7 +1263,7 @@ const Ei = /* @__PURE__ */ y(xe, [["render", Ee]]), Te = {
|
|
|
1263
1263
|
name: "Card",
|
|
1264
1264
|
mounted() {
|
|
1265
1265
|
this.$nextTick(function() {
|
|
1266
|
-
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/card/card.component.js": () => import("./card.component-3bb86b22.mjs"), "../../../assets/js/components/card/card.component.min.js": () => import("./card.component.min-
|
|
1266
|
+
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/card/card.component.js": () => import("./card.component-3bb86b22.mjs"), "../../../assets/js/components/card/card.component.min.js": () => import("./card.component.min-b2893b36.mjs") }), "../../../assets/js/components/card/card.component.js").then((e) => {
|
|
1267
1267
|
window.customElements.get("iam-card") || window.customElements.define("iam-card", e.default);
|
|
1268
1268
|
}).catch((e) => {
|
|
1269
1269
|
console.log(e.message);
|
|
@@ -1317,7 +1317,7 @@ const Hi = /* @__PURE__ */ y(Me, [["render", je]]), Ce = {
|
|
|
1317
1317
|
},
|
|
1318
1318
|
mounted() {
|
|
1319
1319
|
this.$nextTick(function() {
|
|
1320
|
-
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/header/header.component.js": () => import("./header.component-cc8263fb.mjs"), "../../../assets/js/components/header/header.component.min.js": () => import("./header.component.min-
|
|
1320
|
+
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/header/header.component.js": () => import("./header.component-cc8263fb.mjs"), "../../../assets/js/components/header/header.component.min.js": () => import("./header.component.min-4f13b848.mjs") }), "../../../assets/js/components/header/header.component.js").then((e) => {
|
|
1321
1321
|
window.customElements.get("iam-header") || window.customElements.define("iam-header", e.default);
|
|
1322
1322
|
}).catch((e) => {
|
|
1323
1323
|
console.log(e.message);
|
|
@@ -1713,7 +1713,7 @@ const Di = /* @__PURE__ */ y(oa, [["render", ya]]), wa = {
|
|
|
1713
1713
|
name: "Nav",
|
|
1714
1714
|
mounted() {
|
|
1715
1715
|
this.$nextTick(function() {
|
|
1716
|
-
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/nav/nav.component.js": () => import("./nav.component-ff8d1484.mjs"), "../../../assets/js/components/nav/nav.component.min.js": () => import("./nav.component.min-
|
|
1716
|
+
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/nav/nav.component.js": () => import("./nav.component-ff8d1484.mjs"), "../../../assets/js/components/nav/nav.component.min.js": () => import("./nav.component.min-b8d9ee0f.mjs") }), "../../../assets/js/components/nav/nav.component.js").then((e) => {
|
|
1717
1717
|
window.customElements.get("iam-nav") || window.customElements.define("iam-nav", e.default);
|
|
1718
1718
|
}).catch((e) => {
|
|
1719
1719
|
console.log(e.message);
|
|
@@ -1833,7 +1833,7 @@ const Pa = {
|
|
|
1833
1833
|
name: "Tabs",
|
|
1834
1834
|
mounted() {
|
|
1835
1835
|
this.$nextTick(function() {
|
|
1836
|
-
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/tabs/tabs.component.js": () => import("./tabs.component-1dfbdb3b.mjs"), "../../../assets/js/components/tabs/tabs.component.min.js": () => import("./tabs.component.min-
|
|
1836
|
+
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/tabs/tabs.component.js": () => import("./tabs.component-1dfbdb3b.mjs"), "../../../assets/js/components/tabs/tabs.component.min.js": () => import("./tabs.component.min-ba1ee1c0.mjs") }), "../../../assets/js/components/tabs/tabs.component.js").then((e) => {
|
|
1837
1837
|
window.customElements.get("iam-tabs") || window.customElements.define("iam-tabs", e.default);
|
|
1838
1838
|
}).catch((e) => {
|
|
1839
1839
|
console.log(e.message);
|
|
@@ -1963,7 +1963,7 @@ function Za(e, a, t, i, s, o) {
|
|
|
1963
1963
|
}
|
|
1964
1964
|
const Oi = /* @__PURE__ */ y(Ka, [["render", Za]]);
|
|
1965
1965
|
/*!
|
|
1966
|
-
* iamKey v5.1.0-
|
|
1966
|
+
* iamKey v5.1.0-beta13
|
|
1967
1967
|
* Copyright 2022-2023 iamproperty
|
|
1968
1968
|
*/
|
|
1969
1969
|
function ti(e, a) {
|
|
@@ -2059,7 +2059,7 @@ function ii(e, a, t, i, s, o) {
|
|
|
2059
2059
|
}
|
|
2060
2060
|
const Bi = /* @__PURE__ */ y(ai, [["render", ii]]);
|
|
2061
2061
|
/*!
|
|
2062
|
-
* iamKey v5.1.0-
|
|
2062
|
+
* iamKey v5.1.0-beta13
|
|
2063
2063
|
* Copyright 2022-2023 iamproperty
|
|
2064
2064
|
*/
|
|
2065
2065
|
function ni(e, a) {
|
|
@@ -2229,7 +2229,7 @@ const Vi = /* @__PURE__ */ y(mi, [["render", hi]]), pi = {
|
|
|
2229
2229
|
props: {},
|
|
2230
2230
|
mounted() {
|
|
2231
2231
|
this.$nextTick(function() {
|
|
2232
|
-
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/actionbar/actionbar.component.js": () => import("./actionbar.component-3f2c98c0.mjs"), "../../../assets/js/components/actionbar/actionbar.component.min.js": () => import("./actionbar.component.min-
|
|
2232
|
+
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/actionbar/actionbar.component.js": () => import("./actionbar.component-3f2c98c0.mjs"), "../../../assets/js/components/actionbar/actionbar.component.min.js": () => import("./actionbar.component.min-6cb16be8.mjs") }), "../../../assets/js/components/actionbar/actionbar.component.js").then((e) => {
|
|
2233
2233
|
window.customElements.get("iam-actionbar") || window.customElements.define("iam-actionbar", e.default);
|
|
2234
2234
|
}).catch((e) => {
|
|
2235
2235
|
console.log(e.message);
|
|
@@ -2261,7 +2261,7 @@ const Ki = /* @__PURE__ */ y(fi, [["render", gi]]), yi = {
|
|
|
2261
2261
|
name: "Address Lookup",
|
|
2262
2262
|
mounted() {
|
|
2263
2263
|
this.$nextTick(function() {
|
|
2264
|
-
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/address-lookup/address-lookup.component.js": () => import("./address-lookup.component-
|
|
2264
|
+
N(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/address-lookup/address-lookup.component.js": () => import("./address-lookup.component-6bae4154.mjs"), "../../../assets/js/components/address-lookup/address-lookup.component.min.js": () => import("./address-lookup.component.min-54ce7f2f.mjs") }), "../../../assets/js/components/address-lookup/address-lookup.component.js").then((e) => {
|
|
2265
2265
|
window.customElements.get("iam-address-lookup") || window.customElements.define("iam-address-lookup", e.default);
|
|
2266
2266
|
}).catch((e) => {
|
|
2267
2267
|
console.log(e.message);
|
|
@@ -2276,7 +2276,7 @@ function wi(e, a, t, i, s, o) {
|
|
|
2276
2276
|
}
|
|
2277
2277
|
const Gi = /* @__PURE__ */ y(yi, [["render", wi]]);
|
|
2278
2278
|
/*!
|
|
2279
|
-
* iamKey v5.1.0-
|
|
2279
|
+
* iamKey v5.1.0-beta13
|
|
2280
2280
|
* Copyright 2022-2023 iamproperty
|
|
2281
2281
|
*/
|
|
2282
2282
|
window.dataLayer = window.dataLayer || [], window.dataLayer.push({ event: "customElementRegistered", element: "collapsible side menu" });
|