@aquera/nile-elements 0.0.37 → 0.0.38-1

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