@iamproperty/components 4.1.0-beta-2 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/assets/css/components/accordion.css.map +1 -1
  2. package/assets/css/components/actionbar-global.css +1 -1
  3. package/assets/css/components/actionbar-global.css.map +1 -1
  4. package/assets/css/components/address-lookup.css +1 -0
  5. package/assets/css/components/address-lookup.css.map +1 -0
  6. package/assets/css/components/admin-panel.css +1 -1
  7. package/assets/css/components/admin-panel.css.map +1 -1
  8. package/assets/css/components/dialog.css +1 -1
  9. package/assets/css/components/dialog.css.map +1 -1
  10. package/assets/css/components/fileupload.css +1 -1
  11. package/assets/css/components/fileupload.css.map +1 -1
  12. package/assets/css/components/forms.css +1 -1
  13. package/assets/css/components/forms.css.map +1 -1
  14. package/assets/css/components/header.css +1 -1
  15. package/assets/css/components/header.css.map +1 -1
  16. package/assets/css/components/lists.css +1 -1
  17. package/assets/css/components/lists.css.map +1 -1
  18. package/assets/css/components/nav-global.css +1 -1
  19. package/assets/css/components/nav-global.css.map +1 -1
  20. package/assets/css/components/nav.css +1 -1
  21. package/assets/css/components/nav.css.map +1 -1
  22. package/assets/css/components/nav.old.css +1 -1
  23. package/assets/css/components/nav.old.css.map +1 -1
  24. package/assets/css/components/notification.css +1 -1
  25. package/assets/css/components/notification.css.map +1 -1
  26. package/assets/css/components/pagination.css +1 -1
  27. package/assets/css/components/pagination.css.map +1 -1
  28. package/assets/css/components/property-searchbar.css +1 -1
  29. package/assets/css/components/property-searchbar.css.map +1 -1
  30. package/assets/css/components/table.css +1 -1
  31. package/assets/css/components/table.css.map +1 -1
  32. package/assets/css/components/table.extras.css +1 -0
  33. package/assets/css/components/table.extras.css.map +1 -0
  34. package/assets/css/components/table.global.css +1 -0
  35. package/assets/css/components/table.global.css.map +1 -0
  36. package/assets/css/components/tabs.css +1 -1
  37. package/assets/css/components/tabs.css.map +1 -1
  38. package/assets/css/core.min.css +1 -1
  39. package/assets/css/core.min.css.map +1 -1
  40. package/assets/css/style.min.css +1 -1
  41. package/assets/css/style.min.css.map +1 -1
  42. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  43. package/assets/js/components/actionbar/actionbar.component.min.js +3 -3
  44. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  45. package/assets/js/components/address-lookup/address-lookup.component.js +172 -0
  46. package/assets/js/components/address-lookup/address-lookup.component.min.js +36 -0
  47. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -0
  48. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  49. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  50. package/assets/js/components/card/card.component.min.js +1 -1
  51. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  52. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  53. package/assets/js/components/header/header.component.min.js +2 -2
  54. package/assets/js/components/nav/nav.component.min.js +2 -2
  55. package/assets/js/components/notification/notification.component.min.js +4 -4
  56. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  57. package/assets/js/components/pagination/pagination.component.js +152 -7
  58. package/assets/js/components/pagination/pagination.component.min.js +38 -12
  59. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  60. package/assets/js/components/table/table.component.js +95 -69
  61. package/assets/js/components/table/table.component.min.js +9 -13
  62. package/assets/js/components/table/table.component.min.js.map +1 -1
  63. package/assets/js/components/tabs/tabs.component.js +3 -1
  64. package/assets/js/components/tabs/tabs.component.min.js +7 -5
  65. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  66. package/assets/js/dynamic.min.js +5 -5
  67. package/assets/js/dynamic.min.js.map +1 -1
  68. package/assets/js/modules/applied-filters.js +3 -4
  69. package/assets/js/modules/dialogs.js +15 -3
  70. package/assets/js/modules/dynamicEvents.js +116 -0
  71. package/assets/js/modules/helpers.js +9 -0
  72. package/assets/js/modules/pagination.js +7 -10
  73. package/assets/js/modules/table.js +51 -52
  74. package/assets/js/modules/tabs.js +10 -1
  75. package/assets/js/scripts.bundle.js +53 -25
  76. package/assets/js/scripts.bundle.js.map +1 -1
  77. package/assets/js/scripts.bundle.min.js +2 -2
  78. package/assets/js/scripts.bundle.min.js.map +1 -1
  79. package/assets/js/tests/table.spec.js +0 -57
  80. package/assets/sass/_components.scss +2 -0
  81. package/assets/sass/_corefiles.scss +6 -2
  82. package/assets/sass/_functions/variables.scss +5 -1
  83. package/assets/sass/components/actionbar-global.scss +11 -2
  84. package/assets/sass/components/address-lookup.scss +22 -0
  85. package/assets/sass/components/admin-panel.scss +4 -0
  86. package/assets/sass/components/dialog.scss +22 -13
  87. package/assets/sass/components/fileupload.scss +2 -0
  88. package/assets/sass/components/forms.scss +231 -71
  89. package/assets/sass/components/lists.scss +119 -1
  90. package/assets/sass/components/nav-global.scss +1 -0
  91. package/assets/sass/components/notification.scss +6 -1
  92. package/assets/sass/components/pagination.scss +192 -100
  93. package/assets/sass/components/table.extras.scss +650 -0
  94. package/assets/sass/components/table.global.scss +103 -0
  95. package/assets/sass/components/table.scss +41 -565
  96. package/assets/sass/components/tabs.scss +95 -32
  97. package/assets/sass/foundations/brand.scss +4 -0
  98. package/assets/sass/foundations/buttons.scss +14 -12
  99. package/assets/sass/foundations/links.scss +2 -1
  100. package/assets/sass/helpers/dynamic.scss +3 -0
  101. package/assets/sass/templates/form.scss +84 -0
  102. package/assets/svg/logo.svg +7 -0
  103. package/assets/ts/components/address-lookup/address-lookup.component.ts +215 -0
  104. package/assets/ts/components/pagination/README.md +11 -0
  105. package/assets/ts/components/pagination/pagination.component.ts +182 -8
  106. package/assets/ts/components/table/README.md +4 -2
  107. package/assets/ts/components/table/table.component.ts +134 -83
  108. package/assets/ts/components/tabs/README.md +6 -5
  109. package/assets/ts/components/tabs/tabs.component.ts +3 -1
  110. package/assets/ts/modules/applied-filters.ts +5 -8
  111. package/assets/ts/modules/dialogs.ts +19 -4
  112. package/assets/ts/modules/dynamicEvents.ts +145 -0
  113. package/assets/ts/modules/helpers.ts +16 -1
  114. package/assets/ts/modules/pagination.ts +7 -10
  115. package/assets/ts/modules/table.ts +70 -57
  116. package/assets/ts/modules/tabs.ts +21 -10
  117. package/assets/ts/tests/table.spec.ts +1 -61
  118. package/dist/components.es.js +1123 -1008
  119. package/dist/components.umd.js +165 -80
  120. package/dist/style.css +1 -1
  121. package/package.json +3 -2
  122. package/src/components/AddressLookup/AddressLookup.vue +27 -0
  123. package/src/components/Pagination/README.md +11 -0
  124. package/src/components/Table/README.md +4 -3
  125. package/src/components/Table/Table.vue +4 -0
  126. package/src/components/Tabs/README.md +10 -7
  127. package/src/components/Tabs/Tab.vue +7 -8
  128. package/src/components/Tabs/Tabs.vue +0 -1
  129. package/src/index.js +1 -0
  130. package/assets/js/tests/pagination.spec.js +0 -15
  131. package/assets/ts/tests/pagination.spec.ts +0 -21
@@ -59,44 +59,6 @@ describe('addDataAttributes', () => {
59
59
  expect(table.querySelector('tbody tr:nth-child(3) td:nth-child(2)').getAttribute('data-content')).toEqual('medium');
60
60
  });
61
61
  });
62
- /* TODO: This unit test doesn't work as puppeteer seems to have an issue with query selector all
63
- describe('getLargestLastColWidth', () => {
64
-
65
- test('should return the width of the largest last column content', async() => {
66
-
67
- const browser = await puppeteer.launch({});
68
- try {
69
- const page = await browser.newPage();
70
- await page.exposeFunction("getLargestLastColWidth", tableModule.getLargestLastColWidth);
71
- await page.setContent(`<table id="table">${basicTable}</table>`);
72
- await page.waitForSelector('#table tr');
73
-
74
- const largestWidth = await page.evaluate(`getLargestLastColWidth(document.querySelector("#table"))`);
75
-
76
- //const links = await page.$$eval('#table', e=>getLargestLastColWidth(e))
77
- console.log(await largestWidth)
78
-
79
-
80
- } catch (e) {
81
- console.error(e);
82
- } finally {
83
- await browser.close();
84
- }
85
-
86
-
87
- });
88
-
89
- });
90
- */
91
- describe('createMobileButton', () => {
92
- const table = document.createElement('table');
93
- table.innerHTML = basicTable;
94
- tableModule.createMobileButton(table);
95
- test('should add a button to the first cell in a column', () => {
96
- expect(table.querySelector('tbody td:nth-child(1) button').textContent).toEqual('Cell 1');
97
- expect(table.querySelector('tbody td:nth-child(1) span').textContent).toEqual('Cell 1');
98
- });
99
- });
100
62
  describe('createSearchDataList', () => {
101
63
  const table = document.createElement('table');
102
64
  table.innerHTML = basicTable;
@@ -142,25 +104,6 @@ describe('filterTable', () => {
142
104
  expect(table.querySelectorAll('tbody tr.filtered--matched').length).toEqual(1);
143
105
  });
144
106
  });
145
- /*
146
- describe('populateDataQueries', () => {
147
-
148
- const table = document.createElement('table');
149
- table.innerHTML = basicTable;
150
- const form = document.createElement('form');
151
- form.innerHTML += `<div><input name="heading" value="Low" data-filter="Heading 2" /><span data-query="total"></span><span data-query="Heading 2 == Low"></span></div>`;
152
-
153
- tableModule.addDataAttributes(table);
154
- tableModule.filterTable(table, form, document.createElement('div'));
155
- tableModule.populateDataQueries(table, form);
156
-
157
- test('should populate elements with the data-query attribute with the result of the corresponding query', () => {
158
-
159
- //expect(form.querySelector('[data-query="total"]').textContent).toEqual('4');
160
- //expect(form.querySelector('[data-query="Heading 2 == Low"]').textContent).toEqual('2');
161
- });
162
- });
163
- */
164
107
  describe('formatCell', () => {
165
108
  test('should format the text correctly', () => {
166
109
  expect(tableModule.formatCell('date', '2023-05-15 12:10:45.000000')).toEqual('15 May 23');
@@ -11,3 +11,5 @@
11
11
  @use "components/timeline.scss";
12
12
  @use "components/snapshot.scss";
13
13
  @use "components/stepper.scss";
14
+
15
+ @use "components/pagination.scss";
@@ -13,14 +13,13 @@
13
13
  @use "components/lists.scss";
14
14
  @use "components/tooltips.scss";
15
15
  @use "components/container.scss";
16
- @use "components/table.scss";
16
+ @use "components/table.global.scss";
17
17
  @use "components/tabs.scss";
18
18
  @use "foundations/links.scss";
19
19
  @use "foundations/buttons";
20
20
  @use "components/admin-panel.scss";
21
21
  @use "components/dialog.scss";
22
22
 
23
- @use "components/pagination.scss";
24
23
  @use "components/accordion.scss";
25
24
 
26
25
  @use "components/card-global.scss";
@@ -42,7 +41,12 @@
42
41
  @import "../bootstrap/scss/helpers/text-truncation";
43
42
  //@import "../bootstrap/scss/helpers/vr";
44
43
 
44
+ // Helpers
45
45
  @import "helpers/max-height.scss";
46
+ @import "helpers/dynamic.scss";
46
47
 
47
48
  // Utilities
48
49
  @import "../bootstrap/scss/utilities/_api.scss";
50
+
51
+ // Templates
52
+ @import "templates/form.scss";
@@ -178,7 +178,7 @@ $non-theme-colors: map-merge((
178
178
  "btn-secondary-bg": transparent,
179
179
  "btn-secondary-bg-hover": var(--colour-primary-theme),
180
180
  "btn-secondary-hover": var(--colour-inverted),
181
- "canvas-2": var(--colour-canvas),
181
+ "canvas-2": white,
182
182
  "btn-action-hover-bg": var(--colour-light)
183
183
  ), $non-theme-colors);
184
184
 
@@ -336,6 +336,10 @@ $content-max-width-px: 800;
336
336
  $content-max-width: rem($content-max-width-px);
337
337
  $paragraph-margin-bottom: 2rem;
338
338
 
339
+
340
+ $input-max-width-px: 800;
341
+ $input-max-width: var(--input-max-width, #{rem($input-max-width-px)});
342
+ $select-max-width: var(--select-max-width, #{rem($input-max-width-px)});
339
343
  // #endregion
340
344
 
341
345
  // #region Buttons
@@ -4,6 +4,13 @@
4
4
  iam-actionbar {
5
5
 
6
6
  background-color: #FCFCFC;
7
+
8
+
9
+ @include dark-mode(){
10
+
11
+ background-color: var(--colour-canvas);
12
+ }
13
+
7
14
  display: block;
8
15
  border-top-left-radius: rem(10);
9
16
  border-top-right-radius: rem(10);
@@ -14,7 +21,9 @@ iam-actionbar {
14
21
  // #region at the top
15
22
  main > .actionbar__sticky-wrapper > .actionbar__sticky > iam-actionbar {
16
23
 
17
- background-color: #e6eaec;
24
+ @include light-mode(){
25
+ background-color: #e6eaec;
26
+ }
18
27
  border-radius: rem(8);
19
28
  margin: var(--container-padding);
20
29
  margin-bottom: 2rem;
@@ -91,7 +100,7 @@ iam-table iam-actionbar {
91
100
  }
92
101
  }
93
102
 
94
- @include media-breakpoint-up(sm) {
103
+ @include container-up(sm) {
95
104
 
96
105
  iam-table iam-actionbar {
97
106
 
@@ -0,0 +1,22 @@
1
+ :host {
2
+ margin-bottom: 1rem;
3
+ display: block;
4
+ }
5
+
6
+ input[name="postcode"] {
7
+ border-color: var(--error-border,var(--colour-primary))!important;
8
+ }
9
+
10
+ div:has(input[name="postcode"]) .suffix {
11
+
12
+ border-color: var(--error-border,var(--colour-primary))!important;
13
+ }
14
+
15
+ .invalid-feedback {
16
+ display: var(--error-display,none)!important;
17
+ }
18
+
19
+ .optional {
20
+
21
+ display: var(--req-display,inline-block)!important;
22
+ }
@@ -89,6 +89,10 @@
89
89
  padding-bottom: 0!important;
90
90
  }
91
91
  }
92
+
93
+ > iam-pagination {
94
+ margin-top: -1rem;
95
+ }
92
96
  }
93
97
 
94
98
  [class*="col"] .admin-panel:first-child:last-child:not(:has(.mh-sm,.mh-md,.mh-lg)) {
@@ -24,13 +24,11 @@ dialog[open] {
24
24
  display: flex;
25
25
  flex-direction: column;
26
26
 
27
- > *:last-child,
28
- > .mh-lg > *:last-child{
27
+ > *:last-child {
29
28
  margin-bottom: 0;
30
29
  }
31
30
 
32
- > :is(p):last-child,
33
- > .mh-lg > :is(p):last-child {
31
+ > :is(p):last-child {
34
32
  padding-bottom: 0;
35
33
  }
36
34
  }
@@ -161,13 +159,13 @@ dialog[open] {
161
159
  padding-right: calc(var(--dialog-padding) - 10px);
162
160
  margin-right: calc((var(--dialog-padding) * -1) + 10px);
163
161
  margin-bottom: calc(var(--dialog-padding) * -1);
164
- padding-bottom: var(--dialog-padding);
165
- //max-height: none!important;
166
162
 
167
- &:before {
168
- top: 100%;
169
- height: var(--dialog-padding);
170
- margin-bottom: -2rem;
163
+ > *:last-child {
164
+ margin-bottom: 2rem!important;
165
+ }
166
+
167
+ > p:last-child {
168
+ padding-bottom: 0!important;
171
169
  }
172
170
  }
173
171
  }
@@ -464,12 +462,18 @@ dialog::backdrop {
464
462
 
465
463
  overflow: auto;
466
464
  margin-bottom: calc(var(--dialog-padding) * -1);
467
- padding-bottom: var(--dialog-padding);
468
-
469
-
470
465
  padding-right: calc(var(--dialog-padding) - 10px);
471
466
  margin-right: calc((var(--dialog-padding) * -1) + 10px);
472
467
 
468
+ > :last-child {
469
+ margin-bottom: var(--dialog-padding)!important;
470
+ }
471
+
472
+ > p:last-child {
473
+ padding-bottom: 0!important;
474
+ margin-bottom: var(--dialog-padding)!important;
475
+ }
476
+
473
477
  &::before {
474
478
  content: "";
475
479
  top: 100%;
@@ -607,6 +611,11 @@ dialog::backdrop {
607
611
  top: 0.75rem;
608
612
  }
609
613
  }
614
+
615
+ .btn-action {
616
+ border: none;
617
+ margin: 0;
618
+ }
610
619
  }
611
620
 
612
621
  dialog[open] {
@@ -128,6 +128,8 @@
128
128
  position: relative;
129
129
  padding: rem(24) rem(32) rem(24) rem(32);
130
130
  user-select: none;
131
+ max-width: 100%;
132
+ min-width: 100%;
131
133
 
132
134
  &.focus {
133
135