@aquera/nile-elements 0.0.37 → 0.0.38

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 (185) hide show
  1. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.css.js +2 -1
  2. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
  3. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -0
  4. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.js +5 -1
  5. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  6. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.css.js +1 -0
  7. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.css.js.map +1 -1
  8. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/basic.d.ts +5 -0
  9. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/basic.js +5 -0
  10. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/basic.js.map +1 -0
  11. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.d.ts +6 -0
  12. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.js +6 -0
  13. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  14. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/predefined.d.ts +5 -0
  15. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/predefined.js +5 -0
  16. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/predefined.js.map +1 -0
  17. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-application.d.ts +5 -0
  18. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-application.js +5 -0
  19. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-application.js.map +1 -0
  20. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-orchestration.d.ts +5 -0
  21. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-orchestration.js +5 -0
  22. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-orchestration.js.map +1 -0
  23. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-section.d.ts +5 -0
  24. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-section.js +5 -0
  25. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-section.js.map +1 -0
  26. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-text.d.ts +5 -0
  27. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-text.js +5 -0
  28. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-icon/icons/svg/workflow-text.js.map +1 -0
  29. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js +73 -5
  30. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
  31. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.d.ts +40 -17
  32. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js +222 -111
  33. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js.map +1 -1
  34. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
  35. package/demo/filenames.txt +1 -1
  36. package/dist/index.cjs.js +1 -1
  37. package/dist/index.esm.js +1 -1
  38. package/dist/index.iife.js +457 -339
  39. package/dist/nile-badge/index.cjs.js +1 -1
  40. package/dist/nile-badge/index.esm.js +1 -1
  41. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  42. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  43. package/dist/nile-badge/nile-badge.esm.js +1 -1
  44. package/dist/nile-button/index.cjs.js +1 -1
  45. package/dist/nile-button/index.esm.js +1 -1
  46. package/dist/nile-button/nile-button.cjs.js +1 -1
  47. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  48. package/dist/nile-button/nile-button.esm.js +1 -1
  49. package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
  50. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  51. package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
  52. package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
  53. package/dist/nile-code-editor/nile-code-editor.css.esm.js +4 -3
  54. package/dist/nile-code-editor/nile-code-editor.esm.js +4 -4
  55. package/dist/nile-content-editor/nile-content-editor.css.cjs.js +1 -1
  56. package/dist/nile-content-editor/nile-content-editor.css.cjs.js.map +1 -1
  57. package/dist/nile-content-editor/nile-content-editor.css.esm.js +1 -0
  58. package/dist/nile-dialog/index.cjs.js +1 -1
  59. package/dist/nile-dialog/index.esm.js +1 -1
  60. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  61. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  62. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  63. package/dist/nile-icon/icons/svg/basic.cjs.js +2 -0
  64. package/dist/nile-icon/icons/svg/basic.cjs.js.map +1 -0
  65. package/dist/nile-icon/icons/svg/basic.esm.js +1 -0
  66. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  67. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  68. package/dist/nile-icon/icons/svg/predefined.cjs.js +2 -0
  69. package/dist/nile-icon/icons/svg/predefined.cjs.js.map +1 -0
  70. package/dist/nile-icon/icons/svg/predefined.esm.js +1 -0
  71. package/dist/nile-icon/icons/svg/workflow-application.cjs.js +2 -0
  72. package/dist/nile-icon/icons/svg/workflow-application.cjs.js.map +1 -0
  73. package/dist/nile-icon/icons/svg/workflow-application.esm.js +1 -0
  74. package/dist/nile-icon/icons/svg/workflow-orchestration.cjs.js +2 -0
  75. package/dist/nile-icon/icons/svg/workflow-orchestration.cjs.js.map +1 -0
  76. package/dist/nile-icon/icons/svg/workflow-orchestration.esm.js +1 -0
  77. package/dist/nile-icon/icons/svg/workflow-section.cjs.js +2 -0
  78. package/dist/nile-icon/icons/svg/workflow-section.cjs.js.map +1 -0
  79. package/dist/nile-icon/icons/svg/workflow-section.esm.js +1 -0
  80. package/dist/nile-icon/icons/svg/workflow-text.cjs.js +2 -0
  81. package/dist/nile-icon/icons/svg/workflow-text.cjs.js.map +1 -0
  82. package/dist/nile-icon/icons/svg/workflow-text.esm.js +1 -0
  83. package/dist/nile-icon/index.cjs.js +1 -1
  84. package/dist/nile-icon/index.cjs.js.map +1 -1
  85. package/dist/nile-icon/index.esm.js +2 -2
  86. package/dist/nile-icon-button/index.cjs.js +1 -1
  87. package/dist/nile-icon-button/index.esm.js +1 -1
  88. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  89. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  90. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  91. package/dist/nile-input/index.cjs.js +1 -1
  92. package/dist/nile-input/index.esm.js +1 -1
  93. package/dist/nile-input/nile-input.cjs.js +1 -1
  94. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  95. package/dist/nile-input/nile-input.esm.js +1 -1
  96. package/dist/nile-menu-item/index.cjs.js +1 -1
  97. package/dist/nile-menu-item/index.esm.js +1 -1
  98. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  99. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  100. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  101. package/dist/nile-option/index.cjs.js +1 -1
  102. package/dist/nile-option/index.esm.js +1 -1
  103. package/dist/nile-option/nile-option.cjs.js +1 -1
  104. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  105. package/dist/nile-option/nile-option.esm.js +1 -1
  106. package/dist/nile-select/index.cjs.js +1 -1
  107. package/dist/nile-select/index.esm.js +1 -1
  108. package/dist/nile-select/nile-select.cjs.js +1 -1
  109. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  110. package/dist/nile-select/nile-select.esm.js +1 -1
  111. package/dist/nile-switcher/index.cjs.js +1 -1
  112. package/dist/nile-switcher/index.esm.js +1 -1
  113. package/dist/nile-switcher/nile-switcher.cjs.js +1 -1
  114. package/dist/nile-switcher/nile-switcher.cjs.js.map +1 -1
  115. package/dist/nile-switcher/nile-switcher.css.cjs.js +1 -1
  116. package/dist/nile-switcher/nile-switcher.css.cjs.js.map +1 -1
  117. package/dist/nile-switcher/nile-switcher.css.esm.js +75 -7
  118. package/dist/nile-switcher/nile-switcher.esm.js +104 -51
  119. package/dist/nile-tab/index.cjs.js +1 -1
  120. package/dist/nile-tab/index.esm.js +1 -1
  121. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  122. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  123. package/dist/nile-tab/nile-tab.esm.js +1 -1
  124. package/dist/nile-tab-group/index.cjs.js +1 -1
  125. package/dist/nile-tab-group/index.esm.js +1 -1
  126. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  127. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  128. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  129. package/dist/nile-tag/index.cjs.js +1 -1
  130. package/dist/nile-tag/index.esm.js +1 -1
  131. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  132. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  133. package/dist/nile-tag/nile-tag.esm.js +1 -1
  134. package/dist/nile-toast/index.cjs.js +1 -1
  135. package/dist/nile-toast/index.esm.js +1 -1
  136. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  137. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  138. package/dist/nile-toast/nile-toast.esm.js +1 -1
  139. package/dist/src/nile-code-editor/nile-code-editor.css.js +2 -1
  140. package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
  141. package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -0
  142. package/dist/src/nile-code-editor/nile-code-editor.js +5 -1
  143. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  144. package/dist/src/nile-content-editor/nile-content-editor.css.js +1 -0
  145. package/dist/src/nile-content-editor/nile-content-editor.css.js.map +1 -1
  146. package/dist/src/nile-icon/icons/svg/basic.d.ts +5 -0
  147. package/dist/src/nile-icon/icons/svg/basic.js +5 -0
  148. package/dist/src/nile-icon/icons/svg/basic.js.map +1 -0
  149. package/dist/src/nile-icon/icons/svg/index.d.ts +6 -0
  150. package/dist/src/nile-icon/icons/svg/index.js +6 -0
  151. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  152. package/dist/src/nile-icon/icons/svg/predefined.d.ts +5 -0
  153. package/dist/src/nile-icon/icons/svg/predefined.js +5 -0
  154. package/dist/src/nile-icon/icons/svg/predefined.js.map +1 -0
  155. package/dist/src/nile-icon/icons/svg/workflow-application.d.ts +5 -0
  156. package/dist/src/nile-icon/icons/svg/workflow-application.js +5 -0
  157. package/dist/src/nile-icon/icons/svg/workflow-application.js.map +1 -0
  158. package/dist/src/nile-icon/icons/svg/workflow-orchestration.d.ts +5 -0
  159. package/dist/src/nile-icon/icons/svg/workflow-orchestration.js +5 -0
  160. package/dist/src/nile-icon/icons/svg/workflow-orchestration.js.map +1 -0
  161. package/dist/src/nile-icon/icons/svg/workflow-section.d.ts +5 -0
  162. package/dist/src/nile-icon/icons/svg/workflow-section.js +5 -0
  163. package/dist/src/nile-icon/icons/svg/workflow-section.js.map +1 -0
  164. package/dist/src/nile-icon/icons/svg/workflow-text.d.ts +5 -0
  165. package/dist/src/nile-icon/icons/svg/workflow-text.js +5 -0
  166. package/dist/src/nile-icon/icons/svg/workflow-text.js.map +1 -0
  167. package/dist/src/nile-switcher/nile-switcher.css.js +73 -5
  168. package/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
  169. package/dist/src/nile-switcher/nile-switcher.d.ts +40 -17
  170. package/dist/src/nile-switcher/nile-switcher.js +222 -111
  171. package/dist/src/nile-switcher/nile-switcher.js.map +1 -1
  172. package/dist/tsconfig.tsbuildinfo +1 -1
  173. package/package.json +1 -1
  174. package/src/nile-code-editor/nile-code-editor.css.ts +2 -1
  175. package/src/nile-code-editor/nile-code-editor.ts +2 -1
  176. package/src/nile-content-editor/nile-content-editor.css.ts +1 -0
  177. package/src/nile-icon/icons/svg/basic.ts +5 -0
  178. package/src/nile-icon/icons/svg/index.ts +6 -0
  179. package/src/nile-icon/icons/svg/predefined.ts +5 -0
  180. package/src/nile-icon/icons/svg/workflow-application.ts +5 -0
  181. package/src/nile-icon/icons/svg/workflow-orchestration.ts +5 -0
  182. package/src/nile-icon/icons/svg/workflow-section.ts +5 -0
  183. package/src/nile-icon/icons/svg/workflow-text.ts +5 -0
  184. package/src/nile-switcher/nile-switcher.css.ts +73 -5
  185. package/src/nile-switcher/nile-switcher.ts +263 -171
@@ -12,20 +12,21 @@ import NileElement from '../internal/nile-element';
12
12
  import { CSSResultGroup } from 'lit';
13
13
  import { choose } from 'lit/directives/choose.js';
14
14
  import { classMap } from 'lit/directives/class-map.js';
15
+ import { repeat } from 'lit/directives/repeat.js';
16
+ import { watch } from '../internal/watch';
17
+ import { HasSlotController } from '../internal/slot';
15
18
 
16
19
  /**
17
20
  * @summary Allows you to switch between nile elements
18
-
21
+ *
19
22
  * @dependency nile-icon
20
23
  * @dependency nile-input
21
24
  * @dependency nile-checkbox
22
25
  * @dependency nile-dropdown
23
26
  * @dependency nile-textarea
24
27
  *
25
-
26
28
  * @event nile-change - Emitted when the control's value changes.
27
29
  * @event nile-switch - Emitted when the nile component is being switched.
28
-
29
30
  */
30
31
 
31
32
  export interface switchconfig {
@@ -33,8 +34,8 @@ export interface switchconfig {
33
34
  toggleSwitch: boolean;
34
35
  disable?: boolean;
35
36
  confirmation?: boolean;
36
- defaultInput: switchInputType;
37
- switchInput: switchInputType;
37
+ align: 'block' | 'inline';
38
+ inputs: switchInputType[];
38
39
  }
39
40
 
40
41
  export interface switchInputType {
@@ -44,20 +45,33 @@ export interface switchInputType {
44
45
  | INPUT_TYPE_NAMES.CHECKBOX
45
46
  | INPUT_TYPE_NAMES.TEXTAREA
46
47
  | INPUT_TYPE_NAMES.RADIO
47
- | INPUT_TYPE_NAMES.CONTENTEDITOR;
48
+ | INPUT_TYPE_NAMES.CONTENTEDITOR
49
+ | INPUT_TYPE_NAMES.OBJECT_MAPPER
50
+ | INPUT_TYPE_NAMES.CODE_EDITOR;
48
51
  value?: String | boolean;
49
52
  label?: String;
50
53
  readonly?: boolean;
51
54
  type?: string;
55
+ icon: string;
56
+ mode?: string;
52
57
  placeholder?: string;
53
58
  disabled?: boolean;
54
59
  required?: boolean;
55
60
  error?: boolean;
56
61
  errorMessage?: string;
57
62
  options?: Array<any>;
63
+ customAutoCompletions?: any;
58
64
  helperText?: string;
59
65
  multiple?: boolean;
60
66
  noborder?: boolean;
67
+ multiLine?: boolean;
68
+ expand?: boolean;
69
+ expandable?: boolean;
70
+ }
71
+
72
+ export enum POSITIONS {
73
+ INLINE = 'inline',
74
+ BLOCK = 'block',
61
75
  }
62
76
 
63
77
  export enum INPUT_TYPE {
@@ -72,6 +86,13 @@ export enum INPUT_TYPE_NAMES {
72
86
  TEXTAREA = 'text-area',
73
87
  RADIO = 'radio',
74
88
  CONTENTEDITOR = 'content-editor',
89
+ OBJECT_MAPPER = 'object-mapper',
90
+ CODE_EDITOR = 'code-editor',
91
+ }
92
+
93
+ export enum MODE {
94
+ CREATE = 'create',
95
+ EDIT = 'edit',
75
96
  }
76
97
 
77
98
  @customElement('nile-switcher')
@@ -81,19 +102,40 @@ export class NileSwitcher extends NileElement {
81
102
  * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
82
103
  */
83
104
  static styles: CSSResultGroup = styles;
105
+
106
+ private readonly hasSlotController = new HasSlotController(this, 'label');
107
+
84
108
  @property({ type: Object }) nileSwitchConfig: switchconfig;
85
109
 
110
+ @property({ type: Number }) current: Number = 1;
111
+
112
+ @property({ type: Object }) currentInput: switchInputType;
113
+
86
114
  connectedCallback() {
87
115
  super.connectedCallback();
88
116
  this.emit('nile-init');
89
117
  }
90
118
 
119
+ @watch(['current'], { waitUntilFirstUpdate: true })
120
+ handleSwitcherChange() {
121
+ this.setCurrentInput();
122
+ }
123
+
124
+ setCurrentInput() {
125
+ if (this.nileSwitchConfig?.inputs) {
126
+ this.currentInput = this.nileSwitchConfig.inputs.filter(
127
+ (input: switchInputType, index: Number) => {
128
+ return index === this.current;
129
+ }
130
+ )[0];
131
+ }
132
+ }
91
133
  disconnectedCallback() {
92
134
  super.disconnectedCallback();
93
135
  this.emit('nile-destroy');
94
136
  }
95
137
 
96
- renderNileText(Input: switchInputType, inputType: string) {
138
+ renderNileText(Input: switchInputType) {
97
139
  const {
98
140
  value,
99
141
  label,
@@ -102,9 +144,14 @@ export class NileSwitcher extends NileElement {
102
144
  required,
103
145
  error,
104
146
  errorMessage,
105
- inputType: inputTypeName,
147
+ inputType,
148
+ noborder,
106
149
  } = Input;
107
150
  return html`<nile-input
151
+ class=${classMap({
152
+ 'switcher-input': true,
153
+ 'switcher-input--noborder': !!noborder,
154
+ })}
108
155
  .value=${value}
109
156
  .label=${label}
110
157
  .disabled=${disabled}
@@ -113,12 +160,12 @@ export class NileSwitcher extends NileElement {
113
160
  .placeholder=${placeholder}
114
161
  .error=${error}
115
162
  @nile-input=${(e: CustomEvent) => {
116
- this.handleChange(e, inputType, inputTypeName);
163
+ this.handleChange(e, inputType);
117
164
  }}
118
165
  ></nile-input>`;
119
166
  }
120
167
 
121
- renderDropdown(Input: switchInputType, inputType: string) {
168
+ renderDropdown(Input: switchInputType) {
122
169
  const {
123
170
  options,
124
171
  multiple,
@@ -127,10 +174,12 @@ export class NileSwitcher extends NileElement {
127
174
  value,
128
175
  error,
129
176
  errorMessage,
130
- inputType: inputTypeName,
177
+ inputType,
131
178
  } = Input;
132
179
 
133
180
  return html`<nile-select
181
+ part="dropdown"
182
+ class="switcher-dropdown"
134
183
  .placeholder=${placeholder}
135
184
  .disabled="${disabled}"
136
185
  .multiple="${multiple}"
@@ -138,7 +187,7 @@ export class NileSwitcher extends NileElement {
138
187
  .error="${error}"
139
188
  .errorMessage="${errorMessage}"
140
189
  @nile-change=${(e: CustomEvent) => {
141
- this.handleChange(e, inputType, inputTypeName);
190
+ this.handleChange(e, inputType);
142
191
  }}
143
192
  >
144
193
  ${options?.map((option: any) => {
@@ -147,58 +196,48 @@ export class NileSwitcher extends NileElement {
147
196
  </nile-select>`;
148
197
  }
149
198
 
150
- renderNileTextArea(Input: switchInputType, inputType: string) {
151
- const {
152
- value,
153
- disabled,
154
- readonly,
155
- errorMessage,
156
- error,
157
- inputType: inputTypeName,
158
- } = Input;
199
+ renderNileTextArea(Input: switchInputType) {
200
+ const { value, disabled, readonly, errorMessage, error, inputType } = Input;
159
201
 
160
202
  return html`<nile-textarea
203
+ class="switcher-textarea"
161
204
  .value=${value}
162
205
  .disabled=${disabled}
163
206
  ?readonly=${readonly}
164
207
  .error=${error}
165
208
  .errorMessage=${errorMessage}
166
209
  @nile-input=${(e: CustomEvent) => {
167
- this.handleChange(e, inputType, inputTypeName);
210
+ this.handleChange(e, inputType);
168
211
  }}
169
212
  ></nile-textarea>`;
170
213
  }
171
214
 
172
- renderNileCheckBox(Input: switchInputType, inputType: string) {
173
- const { value, label, disabled, inputType: inputTypeName } = Input;
215
+ renderNileCheckBox(Input: switchInputType) {
216
+ const { value, label, disabled, inputType } = Input;
174
217
 
175
218
  return html`<nile-checkbox
219
+ class="switcher-checkbox"
176
220
  .checked=${value}
177
221
  .label=${label}
178
222
  .disabled=${disabled}
179
223
  @valueChange=${(e: CustomEvent) => {
180
- this.handleChange(e, inputType, inputTypeName);
224
+ this.handleChange(e, inputType);
181
225
  }}
182
226
  ></nile-checkbox
183
227
  >; `;
184
228
  }
185
229
 
186
- renderNileRadio(Input: switchInputType, inputType: string) {
187
- const {
188
- options,
189
- value,
190
- disabled,
191
- inputType: inputTypeName,
192
- errorMessage,
193
- } = Input;
230
+ renderNileRadio(Input: switchInputType) {
231
+ const { options, value, disabled, errorMessage, inputType } = Input;
194
232
 
195
233
  const haserrorMessage = !!errorMessage;
196
234
 
197
235
  return html`<nile-radio-group
236
+ class="switcher-radio-group"
198
237
  .value=${value}
199
238
  .disabled=${disabled}
200
239
  @change=${(e: CustomEvent) => {
201
- this.handleChange(e, inputType, inputTypeName);
240
+ this.handleChange(e, inputType);
202
241
  }}
203
242
  >
204
243
  ${options &&
@@ -215,17 +254,11 @@ export class NileSwitcher extends NileElement {
215
254
  `;
216
255
  }
217
256
 
218
- renderContentEditor(Input: switchInputType, inputType: string) {
219
- let {
220
- options,
221
- inputType: inputTypeName,
222
- errorMessage,
223
- type,
224
- readonly,
225
- noborder,
226
- value,
227
- } = Input;
257
+ renderContentEditor(Input: switchInputType) {
258
+ let { options, inputType, errorMessage, type, readonly, noborder, value } =
259
+ Input;
228
260
  return html`<nile-content-editor
261
+ class="switcher-content-editor"
229
262
  .value=${value}
230
263
  .options=${options}
231
264
  .type=${type}
@@ -233,154 +266,213 @@ export class NileSwitcher extends NileElement {
233
266
  .noborder=${noborder}
234
267
  .errorMessage=${errorMessage}
235
268
  @nile-change=${(e: CustomEvent) => {
236
- this.handleChange(e, inputType, inputTypeName);
269
+ this.handleChange(e, inputType);
237
270
  }}
238
271
  >
239
272
  </nile-content-editor>`;
240
273
  }
241
274
 
242
- handleChange(event: CustomEvent, inputType: string, inputTypeName: string) {
243
- if (inputTypeName === INPUT_TYPE_NAMES.CHECKBOX) {
244
- this.nileSwitchConfig[inputType as keyof switchconfig].value =
245
- event.detail.checked;
246
- } else {
247
- this.nileSwitchConfig[inputType as keyof switchconfig].value =
248
- event.detail.value;
249
- }
250
- event.stopPropagation();
251
- this.emit('nile-change', { config: this.nileSwitchConfig });
252
- }
275
+ renderObjectMapper(Input: switchInputType) {
276
+ let { options, inputType, error, errorMessage, type, readonly, noborder } =
277
+ Input;
253
278
 
254
- renderIcon(defaultInput: switchInputType, switchInput: switchInputType) {
255
- const defaultHelperText = defaultInput.helperText;
256
- const switchHelperText = switchInput.helperText;
279
+ const value =
280
+ this.currentInput.mode === MODE.CREATE
281
+ ? 'Click to Create - Not Mapped'
282
+ : 'Click to Edit';
257
283
 
258
- const icon = !this.nileSwitchConfig.toggleSwitch
259
- ? 'header-functions'
260
- : 'stringinput';
261
-
262
- const helperText = !this.nileSwitchConfig.toggleSwitch
263
- ? !!switchHelperText
264
- ? switchHelperText
265
- : `switch to ${switchInput.inputType}`
266
- : !!defaultHelperText
267
- ? defaultHelperText
268
- : `switch to ${defaultInput.inputType}`;
269
-
270
- return html` <nile-tooltip
284
+ return html`<nile-input
271
285
  class=${classMap({
272
- 'tooltip-container': true,
286
+ 'switcher-object-mapper': true,
287
+ 'switcher-object-mapper--noborder': !!noborder,
273
288
  })}
274
- content=${helperText}
275
- placement="bottom"
289
+ .value=${value}
290
+ .errorMessage=${errorMessage}
291
+ .error=${error}
292
+ readonly="true"
293
+ @click="${(e: CustomEvent) =>
294
+ this.handleChange(e, INPUT_TYPE_NAMES.OBJECT_MAPPER)}"
276
295
  >
277
296
  <nile-icon
278
- size="14"
279
- class=${classMap({
280
- 'pointer-cursor': true,
281
- })}
282
- .name=${icon}
297
+ class="pointer-cursor switcher-object-mapper-icon"
298
+ slot="suffix"
299
+ name="expand-2"
283
300
  color="#005EA6"
284
- @click=${this.toggleField}
285
- ></nile-icon>
286
- </nile-tooltip>`;
301
+ size="16"
302
+ >
303
+ </nile-icon>
304
+ </nile-input>`;
305
+ }
306
+
307
+ renderCodeEditor(Input: switchInputType) {
308
+ const {
309
+ value,
310
+ multiLine,
311
+ customAutoCompletions,
312
+ disabled,
313
+ readonly,
314
+ errorMessage,
315
+ error,
316
+ inputType,
317
+ noborder,
318
+ expandable,
319
+ } = Input;
320
+ return html`<nile-code-editor
321
+ part="switcher-code-editor"
322
+ class=${classMap({
323
+ 'code-editor': true,
324
+ })}
325
+ @nile-expand="${(e: CustomEvent) =>
326
+ this.handleExpand(e, INPUT_TYPE_NAMES.CODE_EDITOR)}"
327
+ @nile-change="${(e: CustomEvent) =>
328
+ this.handleChange(e, INPUT_TYPE_NAMES.CODE_EDITOR)}"
329
+ .multiline="${multiLine}"
330
+ .value="${value}"
331
+ .expandable="${expandable}"
332
+ .customOptions="${customAutoCompletions}"
333
+ ></nile-code-editor> `;
287
334
  }
288
335
 
289
- toggleField() {
290
- if (!this.nileSwitchConfig.confirmation) {
291
- this.nileSwitchConfig = {
292
- ...this.nileSwitchConfig,
293
- toggleSwitch: !this.nileSwitchConfig.toggleSwitch,
294
- };
336
+ handleExpand(event: CustomEvent, inputType: string) {
337
+ this.currentInput.expand = event.detail.expand;
338
+ this.emit('nile-change', { input: this.currentInput });
339
+ }
340
+
341
+ handleChange(event: CustomEvent, inputType: string) {
342
+ switch (inputType) {
343
+ case INPUT_TYPE_NAMES.OBJECT_MAPPER:
344
+ this.currentInput.value = 'clicked';
345
+ break;
346
+ case INPUT_TYPE_NAMES.CHECKBOX:
347
+ this.currentInput.value = event.detail.checked;
348
+ break;
349
+ case INPUT_TYPE_NAMES.CODE_EDITOR:
350
+ this.currentInput.value = event.detail.value;
351
+ break;
352
+ default:
353
+ this.currentInput.value = event.detail.value;
295
354
  }
296
- this.emit('nile-switch', { config: this.nileSwitchConfig });
355
+ event.stopPropagation();
356
+ this.emit('nile-change', { input: this.currentInput });
297
357
  }
298
358
 
299
- singleFieldSwitcher(
300
- defaultInput: switchInputType,
301
- switchInput: switchInputType,
302
- toggleField: boolean,
303
- disable: boolean
304
- ) {
305
- const defaultInputType = defaultInput.inputType;
306
- const switchInputType = switchInput.inputType;
359
+ renderIcon() {
360
+ const inputs = this.nileSwitchConfig.inputs;
361
+ const toolTipPosition =
362
+ this.nileSwitchConfig.align === POSITIONS.BLOCK ? 'top' : 'bottom';
363
+
307
364
  return html`
308
- ${!toggleField
309
- ? choose(
310
- defaultInputType,
311
- [
312
- [
313
- INPUT_TYPE_NAMES.TEXT,
314
- () => this.renderNileText(defaultInput, INPUT_TYPE.DEFAULT),
315
- ],
316
- [
317
- INPUT_TYPE_NAMES.CHECKBOX,
318
- () => this.renderNileCheckBox(defaultInput, INPUT_TYPE.DEFAULT),
319
- ],
320
- [
321
- INPUT_TYPE_NAMES.TEXTAREA,
322
- () => this.renderNileTextArea(defaultInput, INPUT_TYPE.DEFAULT),
323
- ],
324
- [
325
- INPUT_TYPE_NAMES.RADIO,
326
- () => this.renderNileRadio(defaultInput, INPUT_TYPE.DEFAULT),
327
- ],
328
- [
329
- INPUT_TYPE_NAMES.DROPDOWN,
330
- () =>
331
- this.renderDropdown(
332
- this.nileSwitchConfig.defaultInput,
333
- INPUT_TYPE.DEFAULT
334
- ),
335
- ],
336
- [
337
- INPUT_TYPE_NAMES.CONTENTEDITOR,
338
- () =>
339
- this.renderContentEditor(
340
- this.nileSwitchConfig.defaultInput,
341
- INPUT_TYPE.DEFAULT
342
- ),
343
- ],
344
- ],
345
- () => this.renderNileText(defaultInput, INPUT_TYPE.DEFAULT)
346
- )
347
- : choose(
348
- switchInputType,
349
- [
350
- [
351
- INPUT_TYPE_NAMES.TEXTAREA,
352
- () => this.renderNileTextArea(switchInput, INPUT_TYPE.SWITCH),
353
- ],
354
- [
355
- INPUT_TYPE_NAMES.TEXT,
356
- () => this.renderNileText(switchInput, INPUT_TYPE.SWITCH),
357
- ],
358
- [
359
- INPUT_TYPE_NAMES.CONTENTEDITOR,
360
- () => this.renderContentEditor(switchInput, INPUT_TYPE.SWITCH),
361
- ],
362
- ],
363
-
364
- () => this.renderNileTextArea(switchInput, INPUT_TYPE.SWITCH)
365
- )}
366
- ${!disable ? this.renderIcon(defaultInput, switchInput) : ''}
365
+ <div part="icons-container" class="switcher-icons-container">
366
+ ${repeat(
367
+ inputs,
368
+ (input: any, index: number) => html` <nile-tooltip
369
+ class=${classMap({
370
+ 'switcher-tooltip-container': true,
371
+ })}
372
+ content=${input.helperText}
373
+ placement=${toolTipPosition}
374
+ >
375
+ <div class=${classMap({
376
+ 'switcher-icon-container': true,
377
+ current: index === this.current,
378
+ })}>
379
+ <nile-icon
380
+ size="16"
381
+ class=${classMap({
382
+ 'pointer-cursor': true,
383
+ })}
384
+ .name=${input.icon}
385
+ color="#000000"
386
+ @click=${() => this.toggleField(input, index)}
387
+ ></nile-icon>
388
+ <div>
389
+
390
+ </nile-tooltip>`
391
+ )}
392
+ </div>
367
393
  `;
368
394
  }
369
- public render(): TemplateResult {
370
- const {
371
- toggleSwitch: toggleField,
372
- defaultInput,
373
- switchInput,
374
- disable,
375
- } = this.nileSwitchConfig;
376
-
377
- return html`<div class="input-container">
378
- ${this.singleFieldSwitcher(
379
- defaultInput,
380
- switchInput,
381
- toggleField,
382
- !!disable
395
+
396
+ isToggleSwitch = (item: any) => {
397
+ return typeof item === 'undefined' || item;
398
+ };
399
+
400
+ toggleField(currentInput: switchInputType, index: Number) {
401
+ this.emit('nile-switch', {
402
+ inputClicked: index,
403
+ currentInput: currentInput,
404
+ });
405
+ }
406
+
407
+ singleFieldSwitcher() {
408
+ if (!this.currentInput) {
409
+ this.setCurrentInput();
410
+ }
411
+ return html`
412
+ ${choose(
413
+ this.currentInput.inputType,
414
+ [
415
+ [INPUT_TYPE_NAMES.TEXT, () => this.renderNileText(this.currentInput)],
416
+ [
417
+ INPUT_TYPE_NAMES.CHECKBOX,
418
+ () => this.renderNileCheckBox(this.currentInput),
419
+ ],
420
+ [
421
+ INPUT_TYPE_NAMES.TEXTAREA,
422
+ () => this.renderNileTextArea(this.currentInput),
423
+ ],
424
+ [
425
+ INPUT_TYPE_NAMES.RADIO,
426
+ () => this.renderNileRadio(this.currentInput),
427
+ ],
428
+ [
429
+ INPUT_TYPE_NAMES.DROPDOWN,
430
+ () => this.renderDropdown(this.currentInput),
431
+ ],
432
+ [
433
+ INPUT_TYPE_NAMES.CONTENTEDITOR,
434
+ () => this.renderContentEditor(this.currentInput),
435
+ ],
436
+ [
437
+ INPUT_TYPE_NAMES.OBJECT_MAPPER,
438
+ () => this.renderObjectMapper(this.currentInput),
439
+ ],
440
+ [
441
+ INPUT_TYPE_NAMES.CODE_EDITOR,
442
+ () => this.renderCodeEditor(this.currentInput),
443
+ ],
444
+ ],
445
+ () => this.renderNileText(this.currentInput)
383
446
  )}
447
+ `;
448
+ }
449
+
450
+ public render(): TemplateResult {
451
+ const hasLabelSlot = this.hasSlotController.test('label');
452
+ const align = this.nileSwitchConfig.align;
453
+ return html`<div
454
+ part="base"
455
+ class=${classMap({
456
+ 'switcher-block': align === POSITIONS.BLOCK,
457
+ 'switcher-inline': align === POSITIONS.INLINE,
458
+ 'switcher-container': true,
459
+ })}
460
+ >
461
+ <div class="label-container">
462
+ ${hasLabelSlot
463
+ ? html`
464
+ <label
465
+ part="switcher-label"
466
+ class="switcher__label"
467
+ for="input"
468
+ >
469
+ <slot name="label"></slot>
470
+ </label>
471
+ </div> `
472
+ : ''}
473
+ ${this.renderIcon()}
474
+ </div>
475
+ ${this.singleFieldSwitcher()}
384
476
  </div>`;
385
477
  }
386
478
  }