@aquera/nile-elements 0.0.6-6 → 0.0.6-8

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 (191) hide show
  1. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/index.d.ts +1 -0
  2. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/index.js +1 -0
  3. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/index.js.map +1 -1
  4. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/index.d.ts +1 -0
  5. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/index.js +2 -0
  6. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/index.js.map +1 -0
  7. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.css.d.ts +12 -0
  8. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.css.js +77 -0
  9. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.css.js.map +1 -0
  10. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.d.ts +50 -0
  11. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.js +180 -0
  12. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.js.map +1 -0
  13. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/array.d.ts +5 -0
  14. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/array.js +5 -0
  15. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/array.js.map +1 -0
  16. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/arrayofobject.d.ts +5 -0
  17. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/arrayofobject.js +5 -0
  18. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/arrayofobject.js.map +1 -0
  19. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.d.ts +5 -0
  20. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.js +5 -0
  21. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  22. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/numberinput.d.ts +5 -0
  23. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/numberinput.js +5 -0
  24. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/numberinput.js.map +1 -0
  25. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/object.d.ts +5 -0
  26. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/object.js +5 -0
  27. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/object.js.map +1 -0
  28. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/stringletters.d.ts +5 -0
  29. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/stringletters.js +5 -0
  30. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/stringletters.js.map +1 -0
  31. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-input/nile-input.js +3 -0
  32. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-input/nile-input.js.map +1 -1
  33. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-group/nile-radio-group.js +3 -0
  34. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
  35. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-select/nile-select.js +3 -0
  36. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-select/nile-select.js.map +1 -1
  37. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js +5 -0
  38. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
  39. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.d.ts +13 -7
  40. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js +96 -29
  41. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js.map +1 -1
  42. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-textarea/nile-textarea.js +3 -1
  43. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-textarea/nile-textarea.js.map +1 -1
  44. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
  45. package/demo/filenames.txt +1 -1
  46. package/demo/index.html +1 -1
  47. package/dist/index.cjs.js +1 -1
  48. package/dist/index.esm.js +1 -1
  49. package/dist/index.iife.js +192 -75
  50. package/dist/nile-badge/index.cjs.js +1 -1
  51. package/dist/nile-badge/index.esm.js +1 -1
  52. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  53. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  54. package/dist/nile-badge/nile-badge.esm.js +1 -1
  55. package/dist/nile-button/index.cjs.js +1 -1
  56. package/dist/nile-button/index.esm.js +1 -1
  57. package/dist/nile-button/nile-button.cjs.js +1 -1
  58. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  59. package/dist/nile-button/nile-button.esm.js +1 -1
  60. package/dist/nile-content-editor/index.cjs.js +2 -0
  61. package/dist/nile-content-editor/index.cjs.js.map +1 -0
  62. package/dist/nile-content-editor/index.esm.js +1 -0
  63. package/dist/nile-content-editor/nile-content-editor.cjs.js +2 -0
  64. package/dist/nile-content-editor/nile-content-editor.cjs.js.map +1 -0
  65. package/dist/nile-content-editor/nile-content-editor.css.cjs.js +2 -0
  66. package/dist/nile-content-editor/nile-content-editor.css.cjs.js.map +1 -0
  67. package/dist/nile-content-editor/nile-content-editor.css.esm.js +65 -0
  68. package/dist/nile-content-editor/nile-content-editor.esm.js +33 -0
  69. package/dist/nile-icon/icons/svg/array.cjs.js +2 -0
  70. package/dist/nile-icon/icons/svg/array.cjs.js.map +1 -0
  71. package/dist/nile-icon/icons/svg/array.esm.js +1 -0
  72. package/dist/nile-icon/icons/svg/arrayofobject.cjs.js +2 -0
  73. package/dist/nile-icon/icons/svg/arrayofobject.cjs.js.map +1 -0
  74. package/dist/nile-icon/icons/svg/arrayofobject.esm.js +1 -0
  75. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  76. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  77. package/dist/nile-icon/icons/svg/numberinput.cjs.js +2 -0
  78. package/dist/nile-icon/icons/svg/numberinput.cjs.js.map +1 -0
  79. package/dist/nile-icon/icons/svg/numberinput.esm.js +1 -0
  80. package/dist/nile-icon/icons/svg/object.cjs.js +2 -0
  81. package/dist/nile-icon/icons/svg/object.cjs.js.map +1 -0
  82. package/dist/nile-icon/icons/svg/object.esm.js +1 -0
  83. package/dist/nile-icon/icons/svg/stringletters.cjs.js +2 -0
  84. package/dist/nile-icon/icons/svg/stringletters.cjs.js.map +1 -0
  85. package/dist/nile-icon/icons/svg/stringletters.esm.js +1 -0
  86. package/dist/nile-icon/index.cjs.js +1 -1
  87. package/dist/nile-icon/index.cjs.js.map +1 -1
  88. package/dist/nile-icon/index.esm.js +2 -2
  89. package/dist/nile-icon-button/index.cjs.js +1 -1
  90. package/dist/nile-icon-button/index.esm.js +1 -1
  91. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  92. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  93. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  94. package/dist/nile-input/index.cjs.js +1 -1
  95. package/dist/nile-input/index.esm.js +1 -1
  96. package/dist/nile-input/nile-input.cjs.js +1 -1
  97. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  98. package/dist/nile-input/nile-input.esm.js +7 -5
  99. package/dist/nile-menu-item/index.cjs.js +1 -1
  100. package/dist/nile-menu-item/index.esm.js +1 -1
  101. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  102. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  103. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  104. package/dist/nile-option/index.cjs.js +1 -1
  105. package/dist/nile-option/index.esm.js +1 -1
  106. package/dist/nile-option/nile-option.cjs.js +1 -1
  107. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  108. package/dist/nile-option/nile-option.esm.js +1 -1
  109. package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
  110. package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
  111. package/dist/nile-radio-group/nile-radio-group.esm.js +9 -7
  112. package/dist/nile-select/index.cjs.js +1 -1
  113. package/dist/nile-select/index.esm.js +1 -1
  114. package/dist/nile-select/nile-select.cjs.js +1 -1
  115. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  116. package/dist/nile-select/nile-select.esm.js +10 -8
  117. package/dist/nile-switcher/nile-switcher.cjs.js +1 -1
  118. package/dist/nile-switcher/nile-switcher.cjs.js.map +1 -1
  119. package/dist/nile-switcher/nile-switcher.css.cjs.js +1 -1
  120. package/dist/nile-switcher/nile-switcher.css.cjs.js.map +1 -1
  121. package/dist/nile-switcher/nile-switcher.css.esm.js +5 -0
  122. package/dist/nile-switcher/nile-switcher.esm.js +29 -19
  123. package/dist/nile-tag/index.cjs.js +1 -1
  124. package/dist/nile-tag/index.esm.js +1 -1
  125. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  126. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  127. package/dist/nile-tag/nile-tag.esm.js +1 -1
  128. package/dist/nile-textarea/nile-textarea.cjs.js +1 -1
  129. package/dist/nile-textarea/nile-textarea.cjs.js.map +1 -1
  130. package/dist/nile-textarea/nile-textarea.esm.js +1 -1
  131. package/dist/src/index.d.ts +1 -0
  132. package/dist/src/index.js +1 -0
  133. package/dist/src/index.js.map +1 -1
  134. package/dist/src/nile-content-editor/index.d.ts +1 -0
  135. package/dist/src/nile-content-editor/index.js +2 -0
  136. package/dist/src/nile-content-editor/index.js.map +1 -0
  137. package/dist/src/nile-content-editor/nile-content-editor.css.d.ts +12 -0
  138. package/dist/src/nile-content-editor/nile-content-editor.css.js +77 -0
  139. package/dist/src/nile-content-editor/nile-content-editor.css.js.map +1 -0
  140. package/dist/src/nile-content-editor/nile-content-editor.d.ts +50 -0
  141. package/dist/src/nile-content-editor/nile-content-editor.js +180 -0
  142. package/dist/src/nile-content-editor/nile-content-editor.js.map +1 -0
  143. package/dist/src/nile-icon/icons/svg/array.d.ts +5 -0
  144. package/dist/src/nile-icon/icons/svg/array.js +5 -0
  145. package/dist/src/nile-icon/icons/svg/array.js.map +1 -0
  146. package/dist/src/nile-icon/icons/svg/arrayofobject.d.ts +5 -0
  147. package/dist/src/nile-icon/icons/svg/arrayofobject.js +5 -0
  148. package/dist/src/nile-icon/icons/svg/arrayofobject.js.map +1 -0
  149. package/dist/src/nile-icon/icons/svg/index.d.ts +5 -0
  150. package/dist/src/nile-icon/icons/svg/index.js +5 -0
  151. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  152. package/dist/src/nile-icon/icons/svg/numberinput.d.ts +5 -0
  153. package/dist/src/nile-icon/icons/svg/numberinput.js +5 -0
  154. package/dist/src/nile-icon/icons/svg/numberinput.js.map +1 -0
  155. package/dist/src/nile-icon/icons/svg/object.d.ts +5 -0
  156. package/dist/src/nile-icon/icons/svg/object.js +5 -0
  157. package/dist/src/nile-icon/icons/svg/object.js.map +1 -0
  158. package/dist/src/nile-icon/icons/svg/stringletters.d.ts +5 -0
  159. package/dist/src/nile-icon/icons/svg/stringletters.js +5 -0
  160. package/dist/src/nile-icon/icons/svg/stringletters.js.map +1 -0
  161. package/dist/src/nile-input/nile-input.js +3 -0
  162. package/dist/src/nile-input/nile-input.js.map +1 -1
  163. package/dist/src/nile-radio-group/nile-radio-group.js +3 -0
  164. package/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
  165. package/dist/src/nile-select/nile-select.js +3 -0
  166. package/dist/src/nile-select/nile-select.js.map +1 -1
  167. package/dist/src/nile-switcher/nile-switcher.css.js +5 -0
  168. package/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
  169. package/dist/src/nile-switcher/nile-switcher.d.ts +13 -7
  170. package/dist/src/nile-switcher/nile-switcher.js +96 -29
  171. package/dist/src/nile-switcher/nile-switcher.js.map +1 -1
  172. package/dist/src/nile-textarea/nile-textarea.js +3 -1
  173. package/dist/src/nile-textarea/nile-textarea.js.map +1 -1
  174. package/dist/tsconfig.tsbuildinfo +1 -1
  175. package/package.json +1 -1
  176. package/src/index.ts +1 -0
  177. package/src/nile-content-editor/index.ts +1 -0
  178. package/src/nile-content-editor/nile-content-editor.css.ts +79 -0
  179. package/src/nile-content-editor/nile-content-editor.ts +186 -0
  180. package/src/nile-icon/icons/svg/array.ts +5 -0
  181. package/src/nile-icon/icons/svg/arrayofobject.ts +5 -0
  182. package/src/nile-icon/icons/svg/index.ts +5 -0
  183. package/src/nile-icon/icons/svg/numberinput.ts +5 -0
  184. package/src/nile-icon/icons/svg/object.ts +5 -0
  185. package/src/nile-icon/icons/svg/stringletters.ts +5 -0
  186. package/src/nile-input/nile-input.ts +3 -0
  187. package/src/nile-radio-group/nile-radio-group.ts +3 -0
  188. package/src/nile-select/nile-select.ts +3 -0
  189. package/src/nile-switcher/nile-switcher.css.ts +5 -0
  190. package/src/nile-switcher/nile-switcher.ts +104 -32
  191. package/src/nile-textarea/nile-textarea.ts +3 -1
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.0.6-6",
6
+ "version": "0.0.6-8",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
package/src/index.ts CHANGED
@@ -31,3 +31,4 @@ export { NileFormHelpText } from './nile-form-help-text';
31
31
  export { NileCalendar } from './nile-calendar';
32
32
  export { NileLink } from './nile-link';
33
33
  export { NileSwitcher } from './nile-switcher';
34
+ export { NileContentEditor } from './nile-content-editor';
@@ -0,0 +1 @@
1
+ export { NileContentEditor } from './nile-content-editor';
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { css } from 'lit-element';
9
+
10
+ /**
11
+ * AttributeExpression CSS
12
+ */
13
+ export const styles = css`
14
+ :host {
15
+ width: 100%;
16
+ box-sizing: border-box;
17
+ }
18
+
19
+ .content-editable-wrapper {
20
+ position: relative;
21
+ width: 100%;
22
+ box-sizing: border-box;
23
+ }
24
+ .content-editable-input {
25
+ box-sizing: border-box;
26
+ width: 100%;
27
+ padding: 9px;
28
+ border: 1px solid #c7ced4;
29
+ border-radius: 4px;
30
+ overflow-x: auto;
31
+ overflow-anchor: none;
32
+ scrollbar-width: none;
33
+ -ms-overflow-style: none;
34
+ cursor: text;
35
+ white-space: nowrap;
36
+ background-color: #ffffff;
37
+ height: 38px;
38
+ }
39
+ .content-editable-input:focus {
40
+ outline: none;
41
+ }
42
+
43
+ .content-editable-input::-webkit-scrollbar {
44
+ display: none;
45
+ }
46
+
47
+ .chips {
48
+ background: #e5e9eb;
49
+ color: #000;
50
+ border-radius: 4px;
51
+ padding: 6px;
52
+ margin-left: 3px;
53
+ display: inline;
54
+ letter-spacing: 0.2px;
55
+ }
56
+
57
+ .nile-options-container {
58
+ box-sizing: border-box;
59
+ background-color: #ffffff;
60
+ border: 1px solid #c7ced4;
61
+ overflow: auto;
62
+ }
63
+
64
+ nile-popup::part(popup) {
65
+ top: 91px;
66
+ }
67
+
68
+ label {
69
+ display: inline-block;
70
+ margin-bottom: 6px;
71
+ font-family: 'colfax-medium';
72
+ }
73
+
74
+ .asterik {
75
+ color: #e5434d;
76
+ }
77
+ `;
78
+
79
+ export default [styles];
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { html, property, TemplateResult } from 'lit-element';
9
+ import { customElement, query, state } from 'lit/decorators.js';
10
+ import { styles } from './nile-content-editor.css';
11
+ import { CSSResultGroup } from 'lit';
12
+ import { classMap } from 'lit/directives/class-map.js';
13
+ import NileElement from '../internal/nile-element';
14
+
15
+ /**
16
+ * Nile icon component.
17
+ *
18
+ * @tag nile-attribute-expression
19
+ *
20
+ */
21
+ @customElement('nile-content-editor')
22
+ export class NileContentEditor extends NileElement {
23
+ /**
24
+ * @summary Allows you to handle both input and dropdown selection
25
+
26
+ * @dependency nile-option
27
+
28
+ * @event nile-change - Emitted when the control's value changes.
29
+ */
30
+
31
+ @property() value: string = '';
32
+
33
+ @property() dropdownOptions: Array<any>;
34
+
35
+ @property() showLabel: boolean = true;
36
+
37
+ @property() labelText = '';
38
+
39
+ @property() required: boolean = true;
40
+
41
+ @query('.content-editable-input') input: HTMLInputElement;
42
+
43
+ @state() private openDropdown: boolean = false;
44
+
45
+ @property({ attribute: 'help-text' }) helpText = '';
46
+
47
+ @property({ attribute: 'error-message' }) errorMessage = '';
48
+
49
+ static styles: CSSResultGroup = styles;
50
+
51
+ connectedCallback() {
52
+ super.connectedCallback();
53
+ this.emit('nile-init');
54
+ this.afterFirstRender().then(res => {
55
+ if (res && this.value !== '')
56
+ this.input.innerHTML = this.generateHTMLTagsWithValues(this.value);
57
+ });
58
+ }
59
+
60
+ disconnectedCallback(): void {
61
+ super.disconnectedCallback();
62
+ this.emit('nile-destroy');
63
+ }
64
+
65
+ async afterFirstRender(): Promise<boolean> {
66
+ return await this.updateComplete;
67
+ }
68
+
69
+ private handleChange(event: any) {
70
+ const value = this.input.innerText;
71
+ this.emitInputChange();
72
+ if (value.includes('$')) {
73
+ this.openDropdown = true;
74
+ }
75
+ }
76
+
77
+ generateValuesFromHTMLTags(string: any): string {
78
+ var pattern =
79
+ /<span class="chips(?: chip-error)?" contenteditable="false">(.*?)<\/span>/g;
80
+ var result = string.replace(pattern, (match: any, option: any) => {
81
+ return '{{' + option + '}}';
82
+ });
83
+ return result;
84
+ }
85
+
86
+ generateHTMLTagsWithValues(string: any): string {
87
+ var pattern = /{{(.*?)}}/g;
88
+ var result = string.replace(pattern, (match: any, option: any) => {
89
+ if (this.dropdownOptions.includes(option)) {
90
+ return (
91
+ '<span class="chips" contenteditable="false">' + option + '</span>'
92
+ );
93
+ }
94
+ });
95
+ return result;
96
+ }
97
+
98
+ emitInputChange(): void {
99
+ this.emit(
100
+ 'nile-change',
101
+ this.generateValuesFromHTMLTags(this.input.innerHTML)
102
+ );
103
+ }
104
+
105
+ handleOptions(option: any): void {
106
+ this.openDropdown = !this.openDropdown;
107
+
108
+ // not appending Native element as it replaces all existing child nodes with new node
109
+ const autoOptionsTag =
110
+ '<span class="chips" contenteditable="false">' + option + '</span>';
111
+ this.input.innerHTML = this.input.innerHTML + autoOptionsTag;
112
+
113
+ // removing '$' from innerText after option is being selected
114
+ if (this.input.lastChild?.previousSibling)
115
+ this.input.lastChild.previousSibling.nodeValue =
116
+ this.input.lastChild.previousSibling.nodeValue!.replace('$', '');
117
+ this.emitInputChange();
118
+ }
119
+
120
+ public renderAutoOptions(): TemplateResult {
121
+ return html`<div class="nile-options-container">
122
+ ${this.dropdownOptions &&
123
+ this.dropdownOptions.map((option: any) => {
124
+ return html` <nile-option
125
+ .value="${option}"
126
+ @click="${(event: Event) => {
127
+ this.handleOptions(option);
128
+ }}"
129
+ >${option}
130
+ </nile-option>`;
131
+ })}
132
+ </div>`;
133
+ }
134
+
135
+ public render(): TemplateResult {
136
+ const hasHelpText = this.helpText ? true : false;
137
+ const hasErrorMessage = this.errorMessage ? true : false;
138
+ return html`
139
+ <nile-popup
140
+ .active="${this.openDropdown}"
141
+ sync="width"
142
+ placement="bottom"
143
+ class=${classMap({
144
+ dropdown: true,
145
+ 'dropdown--open': true,
146
+ })}
147
+ >
148
+ <div class="content-editable-wrapper" slot="anchor">
149
+ ${this.showLabel && this.labelText
150
+ ? html`<label class="ods-label">${this.labelText} </label> ${this
151
+ .required
152
+ ? html`<span class="asterik">*</span>`
153
+ : ''}`
154
+ : ''}
155
+ <div
156
+ class="content-editable-input"
157
+ contenteditable="true"
158
+ @input=${this.handleChange}
159
+ ></div>
160
+ ${hasHelpText
161
+ ? html`
162
+ <nile-form-help-text>${this.helpText}</nile-form-help-text>
163
+ `
164
+ : ``}
165
+ ${hasErrorMessage
166
+ ? html`
167
+ <nile-form-error-message
168
+ >${this.errorMessage}</nile-form-error-message
169
+ >
170
+ `
171
+ : ``}
172
+ </div>
173
+
174
+ ${this.renderAutoOptions()}
175
+ </nile-popup>
176
+ `;
177
+ }
178
+ }
179
+
180
+ export default NileContentEditor;
181
+
182
+ declare global {
183
+ interface HTMLElementTagNameMap {
184
+ 'nile-content-editor': NileContentEditor;
185
+ }
186
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMCAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBpZD0iWyBdIj48cGF0aCBkPSJNMC4zNDk2MDkgMTEuNDM5MVYwLjUzMDAyOUgyLjg3MjM0VjEuMzY1MjZIMS4zMDQxNVYxMC42MDM5SDIuODcyMzRWMTEuNDM5MUgwLjM0OTYwOVoiIGZpbGw9IiMxQzFCMUYiLz48cGF0aCBkPSJNOS41ODkzMSAwLjUzMDAyOVYxMS40MzkxSDcuMDY2NThWMTAuNjAzOUg4LjYzNDc3VjEuMzY1MjZINy4wNjY1OFYwLjUzMDAyOUg5LjU4OTMxWiIgZmlsbD0iIzFDMUIxRiIvPjwvZz48L3N2Zz4=";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTEuOTk5OSAyVjEySDkuNjY2MDJWMTEuMzIzMUgxMS4yNTE1VjIuNjc2ODZIOS42NjYwMlYySDExLjk5OTlaIiBmaWxsPSJibGFjayIvPjxwYXRoIGQ9Ik0xMC42NTczIDYuNjYxNTdIMTAuOTMzMVY3LjMzODQzSDEwLjY1NzNDMTAuMDI3MSA3LjMzODQzIDkuNjkyMjYgNy43NDIzNiA5LjY5MjI2IDguNDQxMDVWMTAuMzYyNEM5LjY5MjI2IDExLjM2NjggOS4xODAxOSAxMiA4LjE0NjIgMTJINy40NzY1NlYxMS4zMjMxSDguMDI4MDNDOC43MDc1MSAxMS4zMjMxIDguOTQzODUgMTAuOTYyOSA4Ljk0Mzg1IDEwLjMyOTdWOC4zNzU1NUM4Ljk0Mzg1IDcuNjExMzUgOS4yNDkxMiA3LjEyMDA5IDkuODk5MDYgN0M5LjI0OTEyIDYuODc5OTEgOC45NDM4NSA2LjM4ODY1IDguOTQzODUgNS42MjQ0NVYzLjY3MDMxQzguOTQzODUgMy4wMzcxMiA4LjcwNzUxIDIuNjc2ODYgOC4wMjgwMyAyLjY3Njg2SDcuNDc2NTZWMkg4LjE0NjJDOS4xODAxOSAyIDkuNjkyMjYgMi42MzMxOSA5LjY5MjI2IDMuNjM3NTVWNS41NTg5NUM5LjY5MjI2IDYuMjU3NjQgMTAuMDI3MSA2LjY2MTU3IDEwLjY1NzMgNi42NjE1N1oiIGZpbGw9ImJsYWNrIi8+PHBhdGggZD0iTTMuMDk1NyA2LjY2MTU3SDMuMzcxNDRDNC4wMDE2OCA2LjY2MTU3IDQuMzM2NSA2LjI1NzY0IDQuMzM2NSA1LjU1ODk1VjMuNjM3NTVDNC4zMzY1IDIuNjMzMTkgNC44NDg1NyAyIDUuODgyNTYgMkg2LjU1MjJWMi42NzY4Nkg2LjAwMDczQzUuMzIxMjUgMi42NzY4NiA1LjA4NDkxIDMuMDM3MTIgNS4wODQ5MSAzLjY3MDMxVjUuNjI0NDVDNS4wODQ5MSA2LjM4ODY1IDQuNzc5NjQgNi44Nzk5MSA0LjEyOTcgN0M0Ljc3OTY0IDcuMTIwMDkgNS4wODQ5MSA3LjYxMTM1IDUuMDg0OTEgOC4zNzU1NVYxMC4zMjk3QzUuMDg0OTEgMTAuOTYyOSA1LjMyMTI1IDExLjMyMzEgNi4wMDA3MyAxMS4zMjMxSDYuNTUyMlYxMkg1Ljg4MjU2QzQuODQ4NTcgMTIgNC4zMzY1IDExLjM2NjggNC4zMzY1IDEwLjM2MjRWOC40NDEwNUM0LjMzNjUgNy43NDIzNiA0LjAwMTY4IDcuMzM4NDMgMy4zNzE0NCA3LjMzODQzSDMuMDk1N1Y2LjY2MTU3WiIgZmlsbD0iYmxhY2siLz48cGF0aCBkPSJNMiAxMlYySDQuMzMzODdWMi42NzY4NkgyLjc0ODQxVjExLjMyMzFINC4zMzM4N1YxMkgyWiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=";
@@ -14,6 +14,8 @@ export { default as applications } from './applications';
14
14
  export { default as approve } from './approve';
15
15
  export { default as aquera } from './aquera';
16
16
  export { default as aquerasupport } from './aquerasupport';
17
+ export { default as array } from './array';
18
+ export { default as arrayofobject } from './arrayofobject';
17
19
  export { default as arrow } from './arrow';
18
20
  export { default as arrowdown } from './arrowdown';
19
21
  export { default as arrowdropdown } from './arrowdropdown';
@@ -232,6 +234,8 @@ export { default as notificationadded } from './notificationadded';
232
234
  export { default as notscheduled } from './notscheduled';
233
235
  export { default as null } from './null';
234
236
  export { default as number } from './number';
237
+ export { default as numberinput } from './numberinput';
238
+ export { default as object } from './object';
235
239
  export { default as operators } from './operators';
236
240
  export { default as options } from './options';
237
241
  export { default as orchestrationsolid } from './orchestration-solid';
@@ -322,6 +326,7 @@ export { default as stop } from './stop';
322
326
  export { default as storybook } from './storybook';
323
327
  export { default as string } from './string';
324
328
  export { default as stringinput } from './stringinput';
329
+ export { default as stringletters } from './stringletters';
325
330
  export { default as support } from './support';
326
331
  export { default as swap } from './swap';
327
332
  export { default as sync } from './sync';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuMTg3NSAxLjMxMjVIMTAuNVYwLjQzNzVIN1YxLjMxMjVIOC4zMTI1VjEyLjY4NzVIN1YxMy41NjI1SDEwLjVWMTIuNjg3NUg5LjE4NzVWMS4zMTI1Wk0xLjMxMjUgMy4wNjI1SDdWMy45Mzc1SDIuMTg3NVYxMC4wNjI1SDdWMTAuOTM3NUgxLjMxMjVWMy4wNjI1Wk0xMS44MTI1IDMuOTM3NUgxMC41VjMuMDYyNUgxMi42ODc1VjEwLjkzNzVIMTAuNVYxMC4wNjI1SDExLjgxMjVWMy45Mzc1Wk01LjE0ODYxIDguMTQwNDlINC4zNzVWOC43NUg2LjU5NTAzVjguMTQwNDlINS44MjE0MlY1LjI1SDUuMTUzM0w0LjQyODkyIDUuNDIzNDhWNi4wNDcwNUw1LjE0ODYxIDUuODY4ODlWOC4xNDA0OVoiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAxMC4yNzQ5VjkuMjgyNjVDMC44OTA5MjEgOS4yODI2NSAxLjUxMjQzIDkuMDk1OTMgMS44NjQ1MyA4LjcyMjVDMi4yMjE5NyA4LjM0OTA1IDIuNDAwNjkgNy43MjQ4OCAyLjQwMDY5IDYuODQ5OTZWNC4yODkyM0MyLjQwMDY5IDMuNTUzMDIgMi40NzAwNCAyLjkxNTUgMi42MDg3NSAyLjM3NjY4QzIuNzUyNzkgMS44Mzc4NiAyLjk4NDg1IDEuMzkyNCAzLjMwNDk0IDEuMDQwM0MzLjYyNTA0IDAuNjg4MTk4IDQuMDUxODMgMC40MjY3OSA0LjU4NTMxIDAuMjU2MDc0QzUuMTE4OCAwLjA4NTM1ODEgNS43Nzc2NSAwIDYuNTYxODggMFYxLjU2ODQ1QzUuOTQzMDMgMS41Njg0NSA1LjQ1NDg5IDEuNjY0NDggNS4wOTc0NiAxLjg1NjUzQzQuNzQ1MzYgMi4wNDg1OSA0LjQ5NDYyIDIuMzQ3MzQgNC4zNDUyNCAyLjc1Mjc5QzQuMjAxMiAzLjE1MjkgNC4xMjkxOCAzLjY2NTA1IDQuMTI5MTggNC4yODkyM1Y3LjQ5MDE0QzQuMTI5MTggNy45MDYyNiA0LjA3MzE2IDguMjg1MDQgMy45NjExMyA4LjYyNjQ3QzMuODU0NDQgOC45Njc5IDMuNjU0MzggOS4yNjEzMSAzLjM2MDk2IDkuNTA2NzJDMy4wNjc1NCA5Ljc1MjEyIDIuNjQ4NzYgOS45NDE1MSAyLjEwNDYgMTAuMDc0OUMxLjU2NTc4IDEwLjIwODMgMC44NjQyNDcgMTAuMjc0OSAwIDEwLjI3NDlaTTYuNTYxODggMjAuNDg1OUM1Ljc3NzY1IDIwLjQ4NTkgNS4xMTg4IDIwLjQwMDUgNC41ODUzMSAyMC4yMjk4QzQuMDUxODMgMjAuMDU5MSAzLjYyNTA0IDE5Ljc5NzcgMy4zMDQ5NCAxOS40NDU2QzIuOTg0ODUgMTkuMDkzNSAyLjc1Mjc5IDE4LjY0OCAyLjYwODc1IDE4LjEwOTJDMi40NzAwNCAxNy41NzA0IDIuNDAwNjkgMTYuOTMyOCAyLjQwMDY5IDE2LjE5NjZWMTMuNjM1OUMyLjQwMDY5IDEyLjc2MSAyLjIyMTk3IDEyLjEzNjggMS44NjQ1MyAxMS43NjM0QzEuNTEyNDMgMTEuMzg5OSAwLjg5MDkyMSAxMS4yMDMyIDAgMTEuMjAzMlYxMC4yMTA5QzAuODY0MjQ3IDEwLjIxMDkgMS41NjU3OCAxMC4yNzc2IDIuMTA0NiAxMC40MTFDMi42NDg3NiAxMC41NDQzIDMuMDY3NTQgMTAuNzMzNyAzLjM2MDk2IDEwLjk3OTFDMy42NTQzOCAxMS4yMjQ1IDMuODU0NDQgMTEuNTE4IDMuOTYxMTMgMTEuODU5NEM0LjA3MzE2IDEyLjIwMDggNC4xMjkxOCAxMi41Nzk2IDQuMTI5MTggMTIuOTk1N1YxNi4xOTY2QzQuMTI5MTggMTYuODIwOCA0LjIwMTIgMTcuMzMzIDQuMzQ1MjQgMTcuNzMzMUM0LjQ5NDYyIDE4LjEzMzIgNC43NDUzNiAxOC40MjkzIDUuMDk3NDYgMTguNjIxM0M1LjQ1NDg5IDE4LjgxODcgNS45NDMwMyAxOC45MTc0IDYuNTYxODggMTguOTE3NFYyMC40ODU5Wk0wIDExLjIwMzJWOS4yODI2NUgxLjg4ODU0VjExLjIwMzJIMFoiIGZpbGw9ImJsYWNrIi8+PHBhdGggZD0iTTIxIDEwLjIxMDlWMTEuMjAzMkMyMC4xMDkxIDExLjIwMzIgMTkuNDg0OSAxMS4zODk5IDE5LjEyNzUgMTEuNzYzNEMxOC43NzU0IDEyLjEzNjggMTguNTk5MyAxMi43NjEgMTguNTk5MyAxMy42MzU5VjE2LjE5NjZDMTguNTk5MyAxNi45MzI4IDE4LjUyNzMgMTcuNTcwNCAxOC4zODMzIDE4LjEwOTJDMTguMjQ0NSAxOC42NDggMTguMDE1MSAxOS4wOTM1IDE3LjY5NTEgMTkuNDQ1NkMxNy4zNzUgMTkuNzk3NyAxNi45NDgyIDIwLjA1OTEgMTYuNDE0NyAyMC4yMjk4QzE1Ljg4MTIgMjAuNDAwNSAxNS4yMjI0IDIwLjQ4NTkgMTQuNDM4MSAyMC40ODU5VjE4LjkxNzRDMTUuMDU3IDE4LjkxNzQgMTUuNTQyNCAxOC44MTg3IDE1Ljg5NDUgMTguNjIxM0MxNi4yNTIgMTguNDI5MyAxNi41MDI3IDE4LjEzMzIgMTYuNjQ2OCAxNy43MzMxQzE2Ljc5NjEgMTcuMzMzIDE2Ljg3MDggMTYuODIwOCAxNi44NzA4IDE2LjE5NjZWMTIuOTk1N0MxNi44NzA4IDEyLjU3OTYgMTYuOTI0MiAxMi4yMDA4IDE3LjAzMDkgMTEuODU5NEMxNy4xNDI5IDExLjUxOCAxNy4zNDU2IDExLjIyNDUgMTcuNjM5IDEwLjk3OTFDMTcuOTMyNSAxMC43MzM3IDE4LjM0ODYgMTAuNTQ0MyAxOC44ODc0IDEwLjQxMUMxOS40MzE2IDEwLjI3NzYgMjAuMTM1OCAxMC4yMTA5IDIxIDEwLjIxMDlaTTE0LjQzODEgMEMxNS4yMjI0IDAgMTUuODgxMiAwLjA4NTM1ODEgMTYuNDE0NyAwLjI1NjA3NEMxNi45NDgyIDAuNDI2NzkgMTcuMzc1IDAuNjg4MTk4IDE3LjY5NTEgMS4wNDAzQzE4LjAxNTEgMS4zOTI0IDE4LjI0NDUgMS44Mzc4NiAxOC4zODMzIDIuMzc2NjhDMTguNTI3MyAyLjkxNTUgMTguNTk5MyAzLjU1MzAyIDE4LjU5OTMgNC4yODkyM1Y2Ljg0OTk2QzE4LjU5OTMgNy43MjQ4OCAxOC43NzU0IDguMzQ5MDUgMTkuMTI3NSA4LjcyMjVDMTkuNDg0OSA5LjA5NTkzIDIwLjEwOTEgOS4yODI2NSAyMSA5LjI4MjY1VjEwLjI3NDlDMjAuMTM1OCAxMC4yNzQ5IDE5LjQzMTYgMTAuMjA4MyAxOC44ODc0IDEwLjA3NDlDMTguMzQ4NiA5Ljk0MTUxIDE3LjkzMjUgOS43NTIxMiAxNy42MzkgOS41MDY3MkMxNy4zNDU2IDkuMjYxMzEgMTcuMTQyOSA4Ljk2NzkgMTcuMDMwOSA4LjYyNjQ3QzE2LjkyNDIgOC4yODUwNCAxNi44NzA4IDcuOTA2MjYgMTYuODcwOCA3LjQ5MDE0VjQuMjg5MjNDMTYuODcwOCAzLjY2NTA1IDE2Ljc5NjEgMy4xNTI5IDE2LjY0NjggMi43NTI3OUMxNi41MDI3IDIuMzQ3MzQgMTYuMjUyIDIuMDQ4NTkgMTUuODk0NSAxLjg1NjUzQzE1LjU0MjQgMS42NjQ0OCAxNS4wNTcgMS41Njg0NSAxNC40MzgxIDEuNTY4NDVWMFpNMjEgOS4yODI2NVYxMS4yMDMySDE5LjExMTVWOS4yODI2NUgyMVoiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4zNjg1NyA1SDQuMTUxNDNMMiAxMUgzLjE5MTQzTDMuNTk0MjkgOS43NEg1LjkyNTcxTDYuMzI4NTcgMTFINy41Mkw1LjM2ODU3IDVaTTQuNzYgNi4wOEw1LjYxNzE0IDguNzg4NTdIMy44OTQyOUw0Ljc2IDYuMDhaIiBmaWxsPSJibGFjayIvPjxwYXRoIGQ9Ik05LjkyMzY4IDExSDEyLjY1OEMxMy44NTggMTEgMTQuNjg5NCAxMC4zMTQzIDE0LjY4OTQgOS4zMTE0M0MxNC42ODk0IDguNDk3MTQgMTQuMTkyMyA4LjAyNTcxIDEzLjU3NTEgNy44OTcxNEMxMy45OTUxIDcuNjU3MTQgMTQuMzI5NCA3LjIwMjg2IDE0LjMyOTQgNi41MTcxNEMxNC4zMjk0IDUuNjE3MTQgMTMuNjY5NCA1IDEyLjYxNTEgNUg5LjkyMzY4VjExWk0xMS4wODk0IDEwLjA1NzFWOC40MkgxMi41ODk0QzEzLjE1NTEgOC40MiAxMy40ODk0IDguNzM3MTQgMTMuNDg5NCA5LjIzNDI5QzEzLjQ4OTQgOS43NCAxMy4xNzIzIDEwLjA1NzEgMTIuNTk4IDEwLjA1NzFIMTEuMDg5NFpNMTEuMDg5NCA3LjQ4NTcxVjUuOTQyODZIMTIuMzQwOEMxMi44MzggNS45NDI4NiAxMy4xMjk0IDYuMjM0MjkgMTMuMTI5NCA2LjY4ODU3QzEzLjEyOTQgNy4xNTE0MyAxMi44NTUxIDcuNDg1NzEgMTIuMzQ5NCA3LjQ4NTcxSDExLjA4OTRaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
@@ -445,6 +445,7 @@ export class NileInput extends NileElement implements NileFormControl {
445
445
  const hasLabelSlot = this.hasSlotController.test('label');
446
446
  const hasHelpTextSlot = this.hasSlotController.test('help-text');
447
447
  const hasLabel = this.label ? true : !!hasLabelSlot;
448
+ const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');
448
449
  const hasHelpText = this.helpText ? true : false;
449
450
  const hasErrorMessage = this.errorMessage ? true : false;
450
451
  const hasClearIcon =
@@ -474,6 +475,8 @@ export class NileInput extends NileElement implements NileFormControl {
474
475
  <slot name="label">${this.label}</slot>
475
476
  </label>
476
477
 
478
+ ${hasLabelSuffixSlot ? html` <slot name="label-suffix"></slot> ` : ``}
479
+
477
480
  <div part="form-control-input" class="form-control-input">
478
481
  <div
479
482
  part="base"
@@ -209,6 +209,7 @@ export class NileRadioGroup extends NileElement {
209
209
  render() {
210
210
  const hasLabelSlot = this.hasSlotController.test('label');
211
211
  const hasHelpTextSlot = this.hasSlotController.test('help-text');
212
+ const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');
212
213
  const hasLabel = this.label ? true : !!hasLabelSlot;
213
214
  const hasHelpText = this.helpText ? true : false;
214
215
  const hasErrorMessage = this.errorMessage ? true : false;
@@ -247,6 +248,8 @@ export class NileRadioGroup extends NileElement {
247
248
  <slot name="label">${this.label}</slot>
248
249
  </label>
249
250
 
251
+ ${hasLabelSuffixSlot ? html` <slot name="label-suffix"></slot> ` : ``}
252
+
250
253
  <div part="form-control-input" class="form-control-input">
251
254
  <div class="visually-hidden">
252
255
  <label class="radio-group__validation">
@@ -873,6 +873,7 @@ export class NileSelect extends NileElement implements NileFormControl {
873
873
  render() {
874
874
  const hasLabelSlot = this.hasSlotController.test('label');
875
875
  const hasHelpTextSlot = this.hasSlotController.test('help-text');
876
+ const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');
876
877
  const hasLabel = this.label ? true : !!hasLabelSlot;
877
878
  const hasClearIcon =
878
879
  this.clearable && !this.disabled && this.value.length > 0;
@@ -903,6 +904,8 @@ export class NileSelect extends NileElement implements NileFormControl {
903
904
  <slot name="label">${this.label}</slot>
904
905
  </label>
905
906
 
907
+ ${hasLabelSuffixSlot ? html` <slot name="label-suffix"></slot> ` : ``}
908
+
906
909
  <div part="form-control-input" class="form-control-input">
907
910
  <nile-popup
908
911
  class=${classMap({
@@ -32,6 +32,11 @@ export const styles = css`
32
32
  align-items: flex-start;
33
33
  padding-top: 10px;
34
34
  }
35
+
36
+ nile-radio {
37
+ display: inline-block;
38
+ padding-right: 10px;
39
+ }
35
40
  `;
36
41
 
37
42
  export default [styles];
@@ -35,14 +35,20 @@ export interface switchconfig {
35
35
  }
36
36
 
37
37
  export interface switchInputType {
38
- inputType: 'dropdown' | 'text' | 'checkbox' | 'text-area';
38
+ inputType: 'dropdown' | 'text' | 'checkbox' | 'text-area' | 'radio';
39
39
  value?: String | boolean;
40
40
  label?: String;
41
41
  placeholder?: string;
42
+ disabled?: boolean;
42
43
  options?: Array<any>;
43
44
  multiple?: boolean;
44
45
  }
45
46
 
47
+ export enum INPUT_TYPE {
48
+ DEFAULT = 'defaultInput',
49
+ SWITCH = 'switchInput',
50
+ }
51
+
46
52
  @customElement('nile-switcher')
47
53
  export class NileSwitcher extends NileElement {
48
54
  /**
@@ -50,7 +56,7 @@ export class NileSwitcher extends NileElement {
50
56
  * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
51
57
  */
52
58
  static styles: CSSResultGroup = styles;
53
- @property() nileSwitchConfig: switchconfig;
59
+ @property({ type: Object }) nileSwitchConfig: switchconfig;
54
60
 
55
61
  connectedCallback() {
56
62
  super.connectedCallback();
@@ -62,54 +68,93 @@ export class NileSwitcher extends NileElement {
62
68
  this.emit('nile-destroy');
63
69
  }
64
70
 
65
- renderNileText(defaultInput: switchInputType) {
66
- const { value, label, placeholder } = defaultInput;
71
+ renderNileText(Input: switchInputType, inputType: string) {
72
+ const { value, label, placeholder, disabled } = Input;
67
73
  return html`<nile-input
68
74
  .value=${value}
69
75
  .label=${label}
76
+ .disabled=${disabled}
70
77
  .placeholder=${placeholder}
71
- @nile-input=${this.handleChange}
78
+ @nile-input=${(e: CustomEvent) => {
79
+ this.handleChange(e, inputType);
80
+ }}
72
81
  ></nile-input>`;
73
82
  }
74
83
 
75
- renderNileTextArea(switchInput: switchInputType) {
76
- const { value } = switchInput;
84
+ renderDropdown(Input: switchInputType, inputType: string) {
85
+ const { options, multiple, placeholder, disabled } = Input;
86
+ return html`<nile-select
87
+ .placeholder=${placeholder}
88
+ .disabled="${disabled}"
89
+ .multiple="${multiple}"
90
+ @nile-change=${(e: CustomEvent) => {
91
+ this.handleChange(e, inputType);
92
+ }}
93
+ >
94
+ ${options?.map((option: any) => {
95
+ return html`<nile-option .value="${option}">${option} </nile-option>`;
96
+ })}
97
+ </nile-select>`;
98
+ }
99
+
100
+ renderNileTextArea(Input: switchInputType, inputType: string) {
101
+ const { value, disabled } = Input;
77
102
  return html`<nile-textarea
78
103
  .value=${value}
79
- @nile-input=${this.handleChange}
104
+ .disabled=${disabled}
105
+ @nile-input=${(e: CustomEvent) => {
106
+ this.handleChange(e, inputType);
107
+ }}
80
108
  ></nile-textarea>`;
81
109
  }
82
110
 
83
- renderNileCheckBox(defaultInput: switchInputType) {
84
- const { value, label } = defaultInput;
111
+ renderNileCheckBox(Input: switchInputType, inputType: string) {
112
+ const { value, label, disabled } = Input;
85
113
 
86
114
  return html`<nile-checkbox
87
115
  .checked=${value}
88
116
  .label=${label}
89
- @valueChange="${this.handleChangeCheckbox}"
117
+ .disabled=${disabled}
118
+ @valueChange=${(e: CustomEvent) => {
119
+ this.handleChangeCheckbox(e, inputType);
120
+ }}
90
121
  ></nile-checkbox>`;
91
122
  }
92
123
 
93
- handleChange(event: CustomEvent) {
94
- this.emit('nile-change', { value: event.detail.value });
95
- }
124
+ renderNileRadio(Input: switchInputType, inputType: string) {
125
+ const { options, value, disabled } = Input;
96
126
 
97
- handleChangeCheckbox(event: CustomEvent) {
98
- this.emit('nile-change', { value: event.detail.checked });
99
- }
100
-
101
- renderDropdown(defaultInput: switchInputType) {
102
- const { options, multiple, placeholder } = defaultInput;
103
- return html`<nile-select
104
- .placeholder=${placeholder}
105
- .multiple="${multiple}"
106
- @nile-change="${this.handleChange}"
127
+ return html`<nile-radio-group
128
+ .value=${value}
129
+ .disabled=${disabled}
130
+ @change=${(e: CustomEvent) => {
131
+ this.handleChange(e, inputType);
132
+ }}
107
133
  >
108
134
  ${options &&
109
135
  options.map((option: any) => {
110
- return html`<nile-option .value="${option}">${option} </nile-option>`;
136
+ return html`<nile-radio .value="${option}">${option} </nile-radio>`;
111
137
  })}
112
- </nile-select>`;
138
+ </nile-radio-group>`;
139
+ }
140
+
141
+ handleChange(event: CustomEvent, inputType: string) {
142
+ if (inputType === INPUT_TYPE.DEFAULT) {
143
+ this.nileSwitchConfig.defaultInput.value = event.detail.value;
144
+ } else {
145
+ this.nileSwitchConfig.switchInput.value = event.detail.value;
146
+ }
147
+ event.stopPropagation();
148
+ this.emit('nile-change', { config: this.nileSwitchConfig });
149
+ }
150
+
151
+ handleChangeCheckbox(event: CustomEvent, inputType: string) {
152
+ if (inputType === INPUT_TYPE.DEFAULT) {
153
+ this.nileSwitchConfig.defaultInput.value = event.detail.checked;
154
+ } else {
155
+ this.nileSwitchConfig.switchInput.value = event.detail.checked;
156
+ }
157
+ this.emit('nile-change', { config: this.nileSwitchConfig });
113
158
  }
114
159
 
115
160
  renderIcon() {
@@ -148,20 +193,47 @@ export class NileSwitcher extends NileElement {
148
193
  ? choose(
149
194
  defaultInputType,
150
195
  [
151
- ['text', () => this.renderNileText(defaultInput)],
152
- ['checkbox', () => this.renderNileCheckBox(defaultInput)],
196
+ [
197
+ 'text',
198
+ () => this.renderNileText(defaultInput, INPUT_TYPE.DEFAULT),
199
+ ],
200
+ [
201
+ 'checkbox',
202
+ () => this.renderNileCheckBox(defaultInput, INPUT_TYPE.DEFAULT),
203
+ ],
204
+ [
205
+ 'text-area',
206
+ () => this.renderNileTextArea(defaultInput, INPUT_TYPE.DEFAULT),
207
+ ],
208
+ [
209
+ 'radio',
210
+ () => this.renderNileRadio(defaultInput, INPUT_TYPE.DEFAULT),
211
+ ],
153
212
  [
154
213
  'dropdown',
155
- () => this.renderDropdown(this.nileSwitchConfig.defaultInput),
214
+ () =>
215
+ this.renderDropdown(
216
+ this.nileSwitchConfig.defaultInput,
217
+ INPUT_TYPE.DEFAULT
218
+ ),
156
219
  ],
157
220
  ],
158
- () => this.renderNileText(defaultInput)
221
+ () => this.renderNileText(defaultInput, INPUT_TYPE.DEFAULT)
159
222
  )
160
223
  : choose(
161
224
  switchInputType,
162
- [['text-area', () => this.renderNileTextArea(switchInput)]],
225
+ [
226
+ [
227
+ 'text-area',
228
+ () => this.renderNileTextArea(switchInput, INPUT_TYPE.SWITCH),
229
+ ],
230
+ [
231
+ 'text',
232
+ () => this.renderNileText(switchInput, INPUT_TYPE.SWITCH),
233
+ ],
234
+ ],
163
235
 
164
- () => this.renderNileTextArea(switchInput)
236
+ () => this.renderNileTextArea(switchInput, INPUT_TYPE.SWITCH)
165
237
  )}
166
238
  ${this.renderIcon()}
167
239
  `;
@@ -176,7 +176,9 @@ export class NileTextarea extends NileElement {
176
176
 
177
177
  disconnectedCallback() {
178
178
  super.disconnectedCallback();
179
- this.resizeObserver.unobserve(this.input);
179
+ if(this.input) {
180
+ this.resizeObserver.unobserve(this.input);
181
+ }
180
182
  this.emit('nile-destroy');
181
183
  }
182
184