@aquera/nile-elements 0.0.36-3 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.css.js +0 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-content-editor/nile-content-editor.css.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js +5 -73
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.d.ts +17 -39
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js +111 -217
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +340 -454
- package/dist/nile-content-editor/nile-content-editor.css.cjs.js +1 -1
- package/dist/nile-content-editor/nile-content-editor.css.cjs.js.map +1 -1
- package/dist/nile-content-editor/nile-content-editor.css.esm.js +0 -1
- package/dist/nile-switcher/index.cjs.js +1 -1
- package/dist/nile-switcher/index.esm.js +1 -1
- package/dist/nile-switcher/nile-switcher.cjs.js +1 -1
- package/dist/nile-switcher/nile-switcher.cjs.js.map +1 -1
- package/dist/nile-switcher/nile-switcher.css.cjs.js +1 -1
- package/dist/nile-switcher/nile-switcher.css.cjs.js.map +1 -1
- package/dist/nile-switcher/nile-switcher.css.esm.js +7 -75
- package/dist/nile-switcher/nile-switcher.esm.js +51 -101
- package/dist/src/nile-content-editor/nile-content-editor.css.js +0 -1
- package/dist/src/nile-content-editor/nile-content-editor.css.js.map +1 -1
- package/dist/src/nile-switcher/nile-switcher.css.js +5 -73
- package/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
- package/dist/src/nile-switcher/nile-switcher.d.ts +17 -39
- package/dist/src/nile-switcher/nile-switcher.js +111 -217
- package/dist/src/nile-switcher/nile-switcher.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-content-editor/nile-content-editor.css.ts +0 -1
- package/src/nile-switcher/nile-switcher.css.ts +5 -73
- package/src/nile-switcher/nile-switcher.ts +172 -255
@@ -11,14 +11,6 @@ import { styles } from './nile-switcher.css';
|
|
11
11
|
import NileElement from '../internal/nile-element';
|
12
12
|
import { choose } from 'lit/directives/choose.js';
|
13
13
|
import { classMap } from 'lit/directives/class-map.js';
|
14
|
-
import { repeat } from 'lit/directives/repeat.js';
|
15
|
-
import { watch } from '../internal/watch';
|
16
|
-
import { HasSlotController } from '../internal/slot';
|
17
|
-
export var POSITIONS;
|
18
|
-
(function (POSITIONS) {
|
19
|
-
POSITIONS["INLINE"] = "inline";
|
20
|
-
POSITIONS["BLOCK"] = "block";
|
21
|
-
})(POSITIONS || (POSITIONS = {}));
|
22
14
|
export var INPUT_TYPE;
|
23
15
|
(function (INPUT_TYPE) {
|
24
16
|
INPUT_TYPE["DEFAULT"] = "defaultInput";
|
@@ -32,48 +24,19 @@ export var INPUT_TYPE_NAMES;
|
|
32
24
|
INPUT_TYPE_NAMES["TEXTAREA"] = "text-area";
|
33
25
|
INPUT_TYPE_NAMES["RADIO"] = "radio";
|
34
26
|
INPUT_TYPE_NAMES["CONTENTEDITOR"] = "content-editor";
|
35
|
-
INPUT_TYPE_NAMES["OBJECT_MAPPER"] = "object-mapper";
|
36
|
-
INPUT_TYPE_NAMES["CODE_EDITOR"] = "code-editor";
|
37
27
|
})(INPUT_TYPE_NAMES || (INPUT_TYPE_NAMES = {}));
|
38
|
-
export var MODE;
|
39
|
-
(function (MODE) {
|
40
|
-
MODE["CREATE"] = "create";
|
41
|
-
MODE["EDIT"] = "edit";
|
42
|
-
})(MODE || (MODE = {}));
|
43
28
|
let NileSwitcher = class NileSwitcher extends NileElement {
|
44
|
-
constructor() {
|
45
|
-
super(...arguments);
|
46
|
-
this.hasSlotController = new HasSlotController(this, 'label');
|
47
|
-
this.current = 0;
|
48
|
-
this.isToggleSwitch = (item) => {
|
49
|
-
return typeof item === 'undefined' || item;
|
50
|
-
};
|
51
|
-
}
|
52
29
|
connectedCallback() {
|
53
30
|
super.connectedCallback();
|
54
31
|
this.emit('nile-init');
|
55
32
|
}
|
56
|
-
handleSwitcherChange() {
|
57
|
-
this.setCurrentInput();
|
58
|
-
}
|
59
|
-
setCurrentInput() {
|
60
|
-
if (this.nileSwitchConfig?.inputs) {
|
61
|
-
this.currentInput = this.nileSwitchConfig.inputs.filter((input, index) => {
|
62
|
-
return index === this.current;
|
63
|
-
})[0];
|
64
|
-
}
|
65
|
-
}
|
66
33
|
disconnectedCallback() {
|
67
34
|
super.disconnectedCallback();
|
68
35
|
this.emit('nile-destroy');
|
69
36
|
}
|
70
|
-
renderNileText(Input) {
|
71
|
-
const { value, label, placeholder, disabled, required, error, errorMessage, inputType
|
37
|
+
renderNileText(Input, inputType) {
|
38
|
+
const { value, label, placeholder, disabled, required, error, errorMessage, inputType: inputTypeName, } = Input;
|
72
39
|
return html `<nile-input
|
73
|
-
class=${classMap({
|
74
|
-
'switcher-input': true,
|
75
|
-
'switcher-input--noborder': !!noborder,
|
76
|
-
})}
|
77
40
|
.value=${value}
|
78
41
|
.label=${label}
|
79
42
|
.disabled=${disabled}
|
@@ -82,15 +45,13 @@ let NileSwitcher = class NileSwitcher extends NileElement {
|
|
82
45
|
.placeholder=${placeholder}
|
83
46
|
.error=${error}
|
84
47
|
@nile-input=${(e) => {
|
85
|
-
this.handleChange(e, inputType);
|
48
|
+
this.handleChange(e, inputType, inputTypeName);
|
86
49
|
}}
|
87
50
|
></nile-input>`;
|
88
51
|
}
|
89
|
-
renderDropdown(Input) {
|
90
|
-
const { options, multiple, placeholder, disabled, value, error, errorMessage, inputType, } = Input;
|
52
|
+
renderDropdown(Input, inputType) {
|
53
|
+
const { options, multiple, placeholder, disabled, value, error, errorMessage, inputType: inputTypeName, } = Input;
|
91
54
|
return html `<nile-select
|
92
|
-
part="dropdown"
|
93
|
-
class="switcher-dropdown"
|
94
55
|
.placeholder=${placeholder}
|
95
56
|
.disabled="${disabled}"
|
96
57
|
.multiple="${multiple}"
|
@@ -98,7 +59,7 @@ let NileSwitcher = class NileSwitcher extends NileElement {
|
|
98
59
|
.error="${error}"
|
99
60
|
.errorMessage="${errorMessage}"
|
100
61
|
@nile-change=${(e) => {
|
101
|
-
this.handleChange(e, inputType);
|
62
|
+
this.handleChange(e, inputType, inputTypeName);
|
102
63
|
}}
|
103
64
|
>
|
104
65
|
${options?.map((option) => {
|
@@ -106,42 +67,39 @@ let NileSwitcher = class NileSwitcher extends NileElement {
|
|
106
67
|
})}
|
107
68
|
</nile-select>`;
|
108
69
|
}
|
109
|
-
renderNileTextArea(Input) {
|
110
|
-
const { value, disabled, readonly, errorMessage, error, inputType } = Input;
|
70
|
+
renderNileTextArea(Input, inputType) {
|
71
|
+
const { value, disabled, readonly, errorMessage, error, inputType: inputTypeName, } = Input;
|
111
72
|
return html `<nile-textarea
|
112
|
-
class="switcher-textarea"
|
113
73
|
.value=${value}
|
114
74
|
.disabled=${disabled}
|
115
75
|
?readonly=${readonly}
|
116
76
|
.error=${error}
|
117
77
|
.errorMessage=${errorMessage}
|
118
78
|
@nile-input=${(e) => {
|
119
|
-
this.handleChange(e, inputType);
|
79
|
+
this.handleChange(e, inputType, inputTypeName);
|
120
80
|
}}
|
121
81
|
></nile-textarea>`;
|
122
82
|
}
|
123
|
-
renderNileCheckBox(Input) {
|
124
|
-
const { value, label, disabled, inputType } = Input;
|
83
|
+
renderNileCheckBox(Input, inputType) {
|
84
|
+
const { value, label, disabled, inputType: inputTypeName } = Input;
|
125
85
|
return html `<nile-checkbox
|
126
|
-
class="switcher-checkbox"
|
127
86
|
.checked=${value}
|
128
87
|
.label=${label}
|
129
88
|
.disabled=${disabled}
|
130
89
|
@valueChange=${(e) => {
|
131
|
-
this.handleChange(e, inputType);
|
90
|
+
this.handleChange(e, inputType, inputTypeName);
|
132
91
|
}}
|
133
92
|
></nile-checkbox
|
134
93
|
>; `;
|
135
94
|
}
|
136
|
-
renderNileRadio(Input) {
|
137
|
-
const { options, value, disabled, errorMessage,
|
95
|
+
renderNileRadio(Input, inputType) {
|
96
|
+
const { options, value, disabled, inputType: inputTypeName, errorMessage, } = Input;
|
138
97
|
const haserrorMessage = !!errorMessage;
|
139
98
|
return html `<nile-radio-group
|
140
|
-
class="switcher-radio-group"
|
141
99
|
.value=${value}
|
142
100
|
.disabled=${disabled}
|
143
101
|
@change=${(e) => {
|
144
|
-
this.handleChange(e, inputType);
|
102
|
+
this.handleChange(e, inputType, inputTypeName);
|
145
103
|
}}
|
146
104
|
>
|
147
105
|
${options &&
|
@@ -156,10 +114,9 @@ let NileSwitcher = class NileSwitcher extends NileElement {
|
|
156
114
|
<nile-form-error-message>${errorMessage}</nile-form-error-message>
|
157
115
|
`;
|
158
116
|
}
|
159
|
-
renderContentEditor(Input) {
|
160
|
-
let { options, inputType, errorMessage, type, readonly, noborder, value } = Input;
|
117
|
+
renderContentEditor(Input, inputType) {
|
118
|
+
let { options, inputType: inputTypeName, errorMessage, type, readonly, noborder, value, } = Input;
|
161
119
|
return html `<nile-content-editor
|
162
|
-
class="switcher-content-editor"
|
163
120
|
.value=${value}
|
164
121
|
.options=${options}
|
165
122
|
.type=${type}
|
@@ -167,169 +124,115 @@ let NileSwitcher = class NileSwitcher extends NileElement {
|
|
167
124
|
.noborder=${noborder}
|
168
125
|
.errorMessage=${errorMessage}
|
169
126
|
@nile-change=${(e) => {
|
170
|
-
this.handleChange(e, inputType);
|
127
|
+
this.handleChange(e, inputType, inputTypeName);
|
171
128
|
}}
|
172
129
|
>
|
173
130
|
</nile-content-editor>`;
|
174
131
|
}
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
132
|
+
handleChange(event, inputType, inputTypeName) {
|
133
|
+
if (inputTypeName === INPUT_TYPE_NAMES.CHECKBOX) {
|
134
|
+
this.nileSwitchConfig[inputType].value =
|
135
|
+
event.detail.checked;
|
136
|
+
}
|
137
|
+
else {
|
138
|
+
this.nileSwitchConfig[inputType].value =
|
139
|
+
event.detail.value;
|
140
|
+
}
|
141
|
+
event.stopPropagation();
|
142
|
+
this.emit('nile-change', { config: this.nileSwitchConfig });
|
143
|
+
}
|
144
|
+
renderIcon(defaultInput, switchInput) {
|
145
|
+
const defaultHelperText = defaultInput.helperText;
|
146
|
+
const switchHelperText = switchInput.helperText;
|
147
|
+
const icon = !this.nileSwitchConfig.toggleSwitch
|
148
|
+
? 'header-functions'
|
149
|
+
: 'stringinput';
|
150
|
+
const helperText = !this.nileSwitchConfig.toggleSwitch
|
151
|
+
? !!switchHelperText
|
152
|
+
? switchHelperText
|
153
|
+
: `switch to ${switchInput.inputType}`
|
154
|
+
: !!defaultHelperText
|
155
|
+
? defaultHelperText
|
156
|
+
: `switch to ${defaultInput.inputType}`;
|
157
|
+
return html ` <nile-tooltip
|
182
158
|
class=${classMap({
|
183
|
-
'
|
184
|
-
'switcher-object-mapper--noborder': !!noborder,
|
159
|
+
'tooltip-container': true,
|
185
160
|
})}
|
186
|
-
|
187
|
-
|
188
|
-
@click="${(e) => this.handleChange(e, INPUT_TYPE_NAMES.OBJECT_MAPPER)}"
|
161
|
+
content=${helperText}
|
162
|
+
placement="bottom"
|
189
163
|
>
|
190
164
|
<nile-icon
|
191
|
-
|
192
|
-
|
193
|
-
name="collapse"
|
194
|
-
color="#005EA6"
|
195
|
-
size="16"
|
196
|
-
>
|
197
|
-
</nile-icon>
|
198
|
-
</nile-input>`;
|
199
|
-
}
|
200
|
-
renderCodeEditor(Input) {
|
201
|
-
const { value, multiLine, customAutoCompletions, disabled, readonly, errorMessage, error, inputType, noborder, } = Input;
|
202
|
-
return html `<nile-code-editor
|
203
|
-
part="switcher-code-editor"
|
204
|
-
class=${classMap({
|
205
|
-
'code-editor': true,
|
206
|
-
})}
|
207
|
-
@nile-expand="${(e) => this.handleExpand(e, INPUT_TYPE_NAMES.CODE_EDITOR)}"
|
208
|
-
@nile-change="${(e) => this.handleChange(e, INPUT_TYPE_NAMES.CODE_EDITOR)}"
|
209
|
-
.multiline="${multiLine}"
|
210
|
-
.value="${value}"
|
211
|
-
.customOptions="${customAutoCompletions}"
|
212
|
-
></nile-code-editor> `;
|
213
|
-
}
|
214
|
-
handleExpand(event, inputType) {
|
215
|
-
this.currentInput.expand = event.detail.expand;
|
216
|
-
this.emit('nile-change', { input: this.currentInput });
|
217
|
-
}
|
218
|
-
handleChange(event, inputType) {
|
219
|
-
switch (inputType) {
|
220
|
-
case INPUT_TYPE_NAMES.OBJECT_MAPPER:
|
221
|
-
this.currentInput.value = 'clicked';
|
222
|
-
break;
|
223
|
-
case INPUT_TYPE_NAMES.CHECKBOX:
|
224
|
-
this.currentInput.value = event.detail.checked;
|
225
|
-
break;
|
226
|
-
case INPUT_TYPE_NAMES.CODE_EDITOR:
|
227
|
-
this.currentInput.value = event.detail.value;
|
228
|
-
break;
|
229
|
-
default:
|
230
|
-
this.currentInput.value = event.detail.value;
|
231
|
-
}
|
232
|
-
event.stopPropagation();
|
233
|
-
this.emit('nile-change', { input: this.currentInput });
|
234
|
-
}
|
235
|
-
renderIcon() {
|
236
|
-
const inputs = this.nileSwitchConfig.inputs;
|
237
|
-
const toolTipPosition = this.nileSwitchConfig.align === POSITIONS.BLOCK ? 'top' : 'bottom';
|
238
|
-
return html `
|
239
|
-
<div part="icons-container" class="switcher-icons-container">
|
240
|
-
${repeat(inputs, (input, index) => html ` <nile-tooltip
|
241
|
-
class=${classMap({
|
242
|
-
'switcher-tooltip-container': true,
|
243
|
-
})}
|
244
|
-
content=${input.helperText}
|
245
|
-
placement=${toolTipPosition}
|
246
|
-
>
|
247
|
-
<div class=${classMap({
|
248
|
-
'switcher-icon-container': true,
|
249
|
-
current: index === this.current,
|
250
|
-
})}>
|
251
|
-
<nile-icon
|
252
|
-
size="16"
|
253
|
-
class=${classMap({
|
165
|
+
size="14"
|
166
|
+
class=${classMap({
|
254
167
|
'pointer-cursor': true,
|
255
168
|
})}
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
inputClicked: index,
|
269
|
-
currentInput: currentInput,
|
270
|
-
});
|
271
|
-
}
|
272
|
-
singleFieldSwitcher() {
|
273
|
-
if (!this.currentInput) {
|
274
|
-
this.setCurrentInput();
|
169
|
+
.name=${icon}
|
170
|
+
color="#005EA6"
|
171
|
+
@click=${this.toggleField}
|
172
|
+
></nile-icon>
|
173
|
+
</nile-tooltip>`;
|
174
|
+
}
|
175
|
+
toggleField() {
|
176
|
+
if (!this.nileSwitchConfig.confirmation) {
|
177
|
+
this.nileSwitchConfig = {
|
178
|
+
...this.nileSwitchConfig,
|
179
|
+
toggleSwitch: !this.nileSwitchConfig.toggleSwitch,
|
180
|
+
};
|
275
181
|
}
|
182
|
+
this.emit('nile-switch', { config: this.nileSwitchConfig });
|
183
|
+
}
|
184
|
+
singleFieldSwitcher(defaultInput, switchInput, toggleField, disable) {
|
185
|
+
const defaultInputType = defaultInput.inputType;
|
186
|
+
const switchInputType = switchInput.inputType;
|
276
187
|
return html `
|
277
|
-
${
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
],
|
304
|
-
|
188
|
+
${!toggleField
|
189
|
+
? choose(defaultInputType, [
|
190
|
+
[
|
191
|
+
INPUT_TYPE_NAMES.TEXT,
|
192
|
+
() => this.renderNileText(defaultInput, INPUT_TYPE.DEFAULT),
|
193
|
+
],
|
194
|
+
[
|
195
|
+
INPUT_TYPE_NAMES.CHECKBOX,
|
196
|
+
() => this.renderNileCheckBox(defaultInput, INPUT_TYPE.DEFAULT),
|
197
|
+
],
|
198
|
+
[
|
199
|
+
INPUT_TYPE_NAMES.TEXTAREA,
|
200
|
+
() => this.renderNileTextArea(defaultInput, INPUT_TYPE.DEFAULT),
|
201
|
+
],
|
202
|
+
[
|
203
|
+
INPUT_TYPE_NAMES.RADIO,
|
204
|
+
() => this.renderNileRadio(defaultInput, INPUT_TYPE.DEFAULT),
|
205
|
+
],
|
206
|
+
[
|
207
|
+
INPUT_TYPE_NAMES.DROPDOWN,
|
208
|
+
() => this.renderDropdown(this.nileSwitchConfig.defaultInput, INPUT_TYPE.DEFAULT),
|
209
|
+
],
|
210
|
+
[
|
211
|
+
INPUT_TYPE_NAMES.CONTENTEDITOR,
|
212
|
+
() => this.renderContentEditor(this.nileSwitchConfig.defaultInput, INPUT_TYPE.DEFAULT),
|
213
|
+
],
|
214
|
+
], () => this.renderNileText(defaultInput, INPUT_TYPE.DEFAULT))
|
215
|
+
: choose(switchInputType, [
|
216
|
+
[
|
217
|
+
INPUT_TYPE_NAMES.TEXTAREA,
|
218
|
+
() => this.renderNileTextArea(switchInput, INPUT_TYPE.SWITCH),
|
219
|
+
],
|
220
|
+
[
|
221
|
+
INPUT_TYPE_NAMES.TEXT,
|
222
|
+
() => this.renderNileText(switchInput, INPUT_TYPE.SWITCH),
|
223
|
+
],
|
224
|
+
[
|
225
|
+
INPUT_TYPE_NAMES.CONTENTEDITOR,
|
226
|
+
() => this.renderContentEditor(switchInput, INPUT_TYPE.SWITCH),
|
227
|
+
],
|
228
|
+
], () => this.renderNileTextArea(switchInput, INPUT_TYPE.SWITCH))}
|
229
|
+
${!disable ? this.renderIcon(defaultInput, switchInput) : ''}
|
305
230
|
`;
|
306
231
|
}
|
307
232
|
render() {
|
308
|
-
const
|
309
|
-
|
310
|
-
|
311
|
-
part="base"
|
312
|
-
class=${classMap({
|
313
|
-
'switcher-block': align === POSITIONS.BLOCK,
|
314
|
-
'switcher-inline': align === POSITIONS.INLINE,
|
315
|
-
'switcher-container': true,
|
316
|
-
})}
|
317
|
-
>
|
318
|
-
<div class="label-container">
|
319
|
-
${hasLabelSlot
|
320
|
-
? html `
|
321
|
-
<label
|
322
|
-
part="switcher-label"
|
323
|
-
class="switcher__label"
|
324
|
-
for="input"
|
325
|
-
>
|
326
|
-
<slot name="label"></slot>
|
327
|
-
</label>
|
328
|
-
</div> `
|
329
|
-
: ''}
|
330
|
-
${this.renderIcon()}
|
331
|
-
</div>
|
332
|
-
${this.singleFieldSwitcher()}
|
233
|
+
const { toggleSwitch: toggleField, defaultInput, switchInput, disable, } = this.nileSwitchConfig;
|
234
|
+
return html `<div class="input-container">
|
235
|
+
${this.singleFieldSwitcher(defaultInput, switchInput, toggleField, !!disable)}
|
333
236
|
</div>`;
|
334
237
|
}
|
335
238
|
};
|
@@ -341,15 +244,6 @@ NileSwitcher.styles = styles;
|
|
341
244
|
__decorate([
|
342
245
|
property({ type: Object })
|
343
246
|
], NileSwitcher.prototype, "nileSwitchConfig", void 0);
|
344
|
-
__decorate([
|
345
|
-
property({ type: Number })
|
346
|
-
], NileSwitcher.prototype, "current", void 0);
|
347
|
-
__decorate([
|
348
|
-
property({ type: Object })
|
349
|
-
], NileSwitcher.prototype, "currentInput", void 0);
|
350
|
-
__decorate([
|
351
|
-
watch(['current'], { waitUntilFirstUpdate: true })
|
352
|
-
], NileSwitcher.prototype, "handleSwitcherChange", null);
|
353
247
|
NileSwitcher = __decorate([
|
354
248
|
customElement('nile-switcher')
|
355
249
|
], NileSwitcher);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-switcher.js","sourceRoot":"","sources":["../../../src/nile-switcher/nile-switcher.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, TemplateResult } from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport { styles } from './nile-switcher.css';\nimport NileElement from '../internal/nile-element';\nimport { CSSResultGroup } from 'lit';\nimport { choose } from 'lit/directives/choose.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { watch } from '../internal/watch';\nimport { HasSlotController } from '../internal/slot';\n\n/**\n * @summary Allows you to switch between nile elements\n *\n * @dependency nile-icon\n * @dependency nile-input\n * @dependency nile-checkbox\n * @dependency nile-dropdown\n * @dependency nile-textarea\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-switch - Emitted when the nile component is being switched.\n */\n\nexport interface switchconfig {\n [key: string]: any;\n toggleSwitch: boolean;\n disable?: boolean;\n confirmation?: boolean;\n align: 'block' | 'inline';\n inputs: switchInputType[];\n}\n\nexport interface switchInputType {\n inputType:\n | INPUT_TYPE_NAMES.DROPDOWN\n | INPUT_TYPE_NAMES.TEXT\n | INPUT_TYPE_NAMES.CHECKBOX\n | INPUT_TYPE_NAMES.TEXTAREA\n | INPUT_TYPE_NAMES.RADIO\n | INPUT_TYPE_NAMES.CONTENTEDITOR\n | INPUT_TYPE_NAMES.OBJECT_MAPPER\n | INPUT_TYPE_NAMES.CODE_EDITOR;\n value?: String | boolean;\n label?: String;\n readonly?: boolean;\n type?: string;\n icon: string;\n mode?: string;\n placeholder?: string;\n disabled?: boolean;\n required?: boolean;\n error?: boolean;\n errorMessage?: string;\n options?: Array<any>;\n customAutoCompletions?: any;\n helperText?: string;\n multiple?: boolean;\n noborder?: boolean;\n multiLine?: boolean;\n expand?: boolean;\n}\n\nexport enum POSITIONS {\n INLINE = 'inline',\n BLOCK = 'block',\n}\n\nexport enum INPUT_TYPE {\n DEFAULT = 'defaultInput',\n SWITCH = 'switchInput',\n}\n\nexport enum INPUT_TYPE_NAMES {\n DROPDOWN = 'dropdown',\n TEXT = 'text',\n CHECKBOX = 'checkbox',\n TEXTAREA = 'text-area',\n RADIO = 'radio',\n CONTENTEDITOR = 'content-editor',\n OBJECT_MAPPER = 'object-mapper',\n CODE_EDITOR = 'code-editor',\n}\n\nexport enum MODE {\n CREATE = 'create',\n EDIT = 'edit',\n}\n\n@customElement('nile-switcher')\nexport class NileSwitcher extends NileElement {\n /**\n * The styles for nile switcher\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n static styles: CSSResultGroup = styles;\n\n private readonly hasSlotController = new HasSlotController(this, 'label');\n\n @property({ type: Object }) nileSwitchConfig: switchconfig;\n\n @property({ type: Number }) current: Number = 0;\n\n @property({ type: Object }) currentInput: switchInputType;\n\n connectedCallback() {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n @watch(['current'], { waitUntilFirstUpdate: true })\n handleSwitcherChange() {\n this.setCurrentInput();\n }\n\n setCurrentInput() {\n if (this.nileSwitchConfig?.inputs) {\n this.currentInput = this.nileSwitchConfig.inputs.filter(\n (input: switchInputType, index: Number) => {\n return index === this.current;\n }\n )[0];\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n renderNileText(Input: switchInputType) {\n const {\n value,\n label,\n placeholder,\n disabled,\n required,\n error,\n errorMessage,\n inputType,\n noborder,\n } = Input;\n return html`<nile-input\n class=${classMap({\n 'switcher-input': true,\n 'switcher-input--noborder': !!noborder,\n })}\n .value=${value}\n .label=${label}\n .disabled=${disabled}\n .required=${required}\n .errorMessage=${errorMessage}\n .placeholder=${placeholder}\n .error=${error}\n @nile-input=${(e: CustomEvent) => {\n this.handleChange(e, inputType);\n }}\n ></nile-input>`;\n }\n\n renderDropdown(Input: switchInputType) {\n const {\n options,\n multiple,\n placeholder,\n disabled,\n value,\n error,\n errorMessage,\n inputType,\n } = Input;\n\n return html`<nile-select\n part=\"dropdown\"\n class=\"switcher-dropdown\"\n .placeholder=${placeholder}\n .disabled=\"${disabled}\"\n .multiple=\"${multiple}\"\n .value=\"${value}\"\n .error=\"${error}\"\n .errorMessage=\"${errorMessage}\"\n @nile-change=${(e: CustomEvent) => {\n this.handleChange(e, inputType);\n }}\n >\n ${options?.map((option: any) => {\n return html`<nile-option .value=\"${option}\">${option} </nile-option>`;\n })}\n </nile-select>`;\n }\n\n renderNileTextArea(Input: switchInputType) {\n const { value, disabled, readonly, errorMessage, error, inputType } = Input;\n\n return html`<nile-textarea\n class=\"switcher-textarea\"\n .value=${value}\n .disabled=${disabled}\n ?readonly=${readonly}\n .error=${error}\n .errorMessage=${errorMessage}\n @nile-input=${(e: CustomEvent) => {\n this.handleChange(e, inputType);\n }}\n ></nile-textarea>`;\n }\n\n renderNileCheckBox(Input: switchInputType) {\n const { value, label, disabled, inputType } = Input;\n\n return html`<nile-checkbox\n class=\"switcher-checkbox\"\n .checked=${value}\n .label=${label}\n .disabled=${disabled}\n @valueChange=${(e: CustomEvent) => {\n this.handleChange(e, inputType);\n }}\n ></nile-checkbox\n >; `;\n }\n\n renderNileRadio(Input: switchInputType) {\n const { options, value, disabled, errorMessage, inputType } = Input;\n\n const haserrorMessage = !!errorMessage;\n\n return html`<nile-radio-group\n class=\"switcher-radio-group\"\n .value=${value}\n .disabled=${disabled}\n @change=${(e: CustomEvent) => {\n this.handleChange(e, inputType);\n }}\n >\n ${options &&\n options.map((option: any) => {\n return html`<nile-radio .value=\"${option}\">${option} </nile-radio>`;\n })}\n ${haserrorMessage ? this.renderErrorMessage(errorMessage) : ''}\n </nile-radio-group> `;\n }\n\n renderErrorMessage(errorMessage: string) {\n return html`\n <nile-form-error-message>${errorMessage}</nile-form-error-message>\n `;\n }\n\n renderContentEditor(Input: switchInputType) {\n let { options, inputType, errorMessage, type, readonly, noborder, value } =\n Input;\n return html`<nile-content-editor\n class=\"switcher-content-editor\"\n .value=${value}\n .options=${options}\n .type=${type}\n .readonly=${readonly}\n .noborder=${noborder}\n .errorMessage=${errorMessage}\n @nile-change=${(e: CustomEvent) => {\n this.handleChange(e, inputType);\n }}\n >\n </nile-content-editor>`;\n }\n\n renderObjectMapper() {\n const noborder = this.currentInput.noborder;\n const mode = this.currentInput.mode;\n const value =\n this.currentInput.mode === MODE.CREATE\n ? 'Click to Create - Not Mapped'\n : 'Click to Edit';\n\n return html`<nile-input\n class=${classMap({\n 'switcher-object-mapper': true,\n 'switcher-object-mapper--noborder': !!noborder,\n })}\n .value=${value}\n readonly=\"true\"\n @click=\"${(e: CustomEvent) =>\n this.handleChange(e, INPUT_TYPE_NAMES.OBJECT_MAPPER)}\"\n >\n <nile-icon\n class=\"pointer-cursor switcher-object-mapper-icon\"\n slot=\"suffix\"\n name=\"collapse\"\n color=\"#005EA6\"\n size=\"16\"\n >\n </nile-icon>\n </nile-input>`;\n }\n\n renderCodeEditor(Input: switchInputType) {\n const {\n value,\n multiLine,\n customAutoCompletions,\n disabled,\n readonly,\n errorMessage,\n error,\n inputType,\n noborder,\n } = Input;\n return html`<nile-code-editor\n part=\"switcher-code-editor\"\n class=${classMap({\n 'code-editor': true,\n })}\n @nile-expand=\"${(e: CustomEvent) =>\n this.handleExpand(e, INPUT_TYPE_NAMES.CODE_EDITOR)}\"\n @nile-change=\"${(e: CustomEvent) =>\n this.handleChange(e, INPUT_TYPE_NAMES.CODE_EDITOR)}\"\n .multiline=\"${multiLine}\"\n .value=\"${value}\"\n .customOptions=\"${customAutoCompletions}\"\n ></nile-code-editor> `;\n }\n\n handleExpand(event: CustomEvent, inputType: string) {\n this.currentInput.expand = event.detail.expand;\n this.emit('nile-change', { input: this.currentInput });\n }\n\n handleChange(event: CustomEvent, inputType: string) {\n switch (inputType) {\n case INPUT_TYPE_NAMES.OBJECT_MAPPER:\n this.currentInput.value = 'clicked';\n break;\n case INPUT_TYPE_NAMES.CHECKBOX:\n this.currentInput.value = event.detail.checked;\n break;\n case INPUT_TYPE_NAMES.CODE_EDITOR:\n this.currentInput.value = event.detail.value;\n break;\n default:\n this.currentInput.value = event.detail.value;\n }\n event.stopPropagation();\n this.emit('nile-change', { input: this.currentInput });\n }\n\n renderIcon() {\n const inputs = this.nileSwitchConfig.inputs;\n const toolTipPosition =\n this.nileSwitchConfig.align === POSITIONS.BLOCK ? 'top' : 'bottom';\n\n return html`\n <div part=\"icons-container\" class=\"switcher-icons-container\">\n ${repeat(\n inputs,\n (input: any, index: number) => html` <nile-tooltip\n class=${classMap({\n 'switcher-tooltip-container': true,\n })}\n content=${input.helperText}\n placement=${toolTipPosition}\n >\n <div class=${classMap({\n 'switcher-icon-container': true,\n current: index === this.current,\n })}>\n <nile-icon\n size=\"16\"\n class=${classMap({\n 'pointer-cursor': true,\n })}\n .name=${input.icon}\n color=\"#000000\"\n @click=${() => this.toggleField(input, index)}\n ></nile-icon>\n <div>\n \n </nile-tooltip>`\n )}\n </div>\n `;\n }\n\n isToggleSwitch = (item: any) => {\n return typeof item === 'undefined' || item;\n };\n\n toggleField(currentInput: switchInputType, index: Number) {\n this.emit('nile-switch', {\n inputClicked: index,\n currentInput: currentInput,\n });\n }\n\n singleFieldSwitcher() {\n if (!this.currentInput) {\n this.setCurrentInput();\n }\n return html`\n ${choose(\n this.currentInput.inputType,\n [\n [INPUT_TYPE_NAMES.TEXT, () => this.renderNileText(this.currentInput)],\n [\n INPUT_TYPE_NAMES.CHECKBOX,\n () => this.renderNileCheckBox(this.currentInput),\n ],\n [\n INPUT_TYPE_NAMES.TEXTAREA,\n () => this.renderNileTextArea(this.currentInput),\n ],\n [\n INPUT_TYPE_NAMES.RADIO,\n () => this.renderNileRadio(this.currentInput),\n ],\n [\n INPUT_TYPE_NAMES.DROPDOWN,\n () => this.renderDropdown(this.currentInput),\n ],\n [\n INPUT_TYPE_NAMES.CONTENTEDITOR,\n () => this.renderContentEditor(this.currentInput),\n ],\n [INPUT_TYPE_NAMES.OBJECT_MAPPER, () => this.renderObjectMapper()],\n [\n INPUT_TYPE_NAMES.CODE_EDITOR,\n () => this.renderCodeEditor(this.currentInput),\n ],\n ],\n () => this.renderNileText(this.currentInput)\n )}\n `;\n }\n\n public render(): TemplateResult {\n const hasLabelSlot = this.hasSlotController.test('label');\n const align = this.nileSwitchConfig.align;\n return html`<div\n part=\"base\"\n class=${classMap({\n 'switcher-block': align === POSITIONS.BLOCK,\n 'switcher-inline': align === POSITIONS.INLINE,\n 'switcher-container': true,\n })}\n >\n <div class=\"label-container\">\n ${hasLabelSlot\n ? html`\n <label\n part=\"switcher-label\"\n class=\"switcher__label\"\n for=\"input\"\n >\n <slot name=\"label\"></slot>\n </label>\n </div> `\n : ''}\n ${this.renderIcon()}\n </div>\n ${this.singleFieldSwitcher()}\n </div>`;\n }\n}\n\nexport default NileSwitcher;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-switcher': NileSwitcher;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"nile-switcher.js","sourceRoot":"","sources":["../../../src/nile-switcher/nile-switcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAiDvD,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,sCAAwB,CAAA;IACxB,oCAAsB,CAAA;AACxB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,0CAAsB,CAAA;IACtB,mCAAe,CAAA;IACf,oDAAgC,CAAA;AAClC,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAGM,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,WAAW;IAQ3C,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,KAAsB,EAAE,SAAiB;QACtD,MAAM,EACJ,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,SAAS,EAAE,aAAa,GACzB,GAAG,KAAK,CAAC;QACV,OAAO,IAAI,CAAA;eACA,KAAK;eACL,KAAK;kBACF,QAAQ;kBACR,QAAQ;sBACJ,YAAY;qBACb,WAAW;eACjB,KAAK;oBACA,CAAC,CAAc,EAAE,EAAE;YAC/B,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC;mBACY,CAAC;IAClB,CAAC;IAED,cAAc,CAAC,KAAsB,EAAE,SAAiB;QACtD,MAAM,EACJ,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,EACZ,SAAS,EAAE,aAAa,GACzB,GAAG,KAAK,CAAC;QAEV,OAAO,IAAI,CAAA;qBACM,WAAW;mBACb,QAAQ;mBACR,QAAQ;gBACX,KAAK;gBACL,KAAK;uBACE,YAAY;qBACd,CAAC,CAAc,EAAE,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC;;QAEC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;YAC7B,OAAO,IAAI,CAAA,wBAAwB,MAAM,KAAK,MAAM,iBAAiB,CAAC;QACxE,CAAC,CAAC;mBACW,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,KAAsB,EAAE,SAAiB;QAC1D,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,SAAS,EAAE,aAAa,GACzB,GAAG,KAAK,CAAC;QAEV,OAAO,IAAI,CAAA;eACA,KAAK;kBACF,QAAQ;kBACR,QAAQ;eACX,KAAK;sBACE,YAAY;oBACd,CAAC,CAAc,EAAE,EAAE;YAC/B,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC;sBACe,CAAC;IACrB,CAAC;IAED,kBAAkB,CAAC,KAAsB,EAAE,SAAiB;QAC1D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAEnE,OAAO,IAAI,CAAA;mBACI,KAAK;iBACP,KAAK;oBACF,QAAQ;uBACL,CAAC,CAAc,EAAE,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC;;UAEC,CAAC;IACT,CAAC;IAED,eAAe,CAAC,KAAsB,EAAE,SAAiB;QACvD,MAAM,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,EAAE,aAAa,EACxB,YAAY,GACb,GAAG,KAAK,CAAC;QAEV,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;QAEvC,OAAO,IAAI,CAAA;eACA,KAAK;kBACF,QAAQ;gBACV,CAAC,CAAc,EAAE,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC;;QAEC,OAAO;YACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;gBAC1B,OAAO,IAAI,CAAA,uBAAuB,MAAM,KAAK,MAAM,gBAAgB,CAAC;YACtE,CAAC,CAAC;QACA,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;yBAC3C,CAAC;IACxB,CAAC;IAED,kBAAkB,CAAC,YAAoB;QACrC,OAAO,IAAI,CAAA;iCACkB,YAAY;KACxC,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,KAAsB,EAAE,SAAiB;QAC3D,IAAI,EACF,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,GACN,GAAG,KAAK,CAAC;QACV,OAAO,IAAI,CAAA;eACA,KAAK;iBACH,OAAO;cACV,IAAI;kBACA,QAAQ;kBACR,QAAQ;sBACJ,YAAY;qBACb,CAAC,CAAc,EAAE,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC;;2BAEoB,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,KAAkB,EAAE,SAAiB,EAAE,aAAqB;QACvE,IAAI,aAAa,KAAK,gBAAgB,CAAC,QAAQ,EAAE;YAC/C,IAAI,CAAC,gBAAgB,CAAC,SAA+B,CAAC,CAAC,KAAK;gBAC1D,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,SAA+B,CAAC,CAAC,KAAK;gBAC1D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;SACtB;QACD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,YAA6B,EAAE,WAA4B;QACpE,MAAM,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC;QAClD,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC;QAEhD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY;YAC9C,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,aAAa,CAAC;QAElB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY;YACpD,CAAC,CAAC,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,aAAa,WAAW,CAAC,SAAS,EAAE;YACxC,CAAC,CAAC,CAAC,CAAC,iBAAiB;gBACrB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,aAAa,YAAY,CAAC,SAAS,EAAE,CAAC;QAE1C,OAAO,IAAI,CAAA;cACD,QAAQ,CAAC;YACf,mBAAmB,EAAE,IAAI;SAC1B,CAAC;gBACQ,UAAU;;;;;gBAKV,QAAQ,CAAC;YACf,gBAAgB,EAAE,IAAI;SACvB,CAAC;gBACM,IAAI;;iBAEH,IAAI,CAAC,WAAW;;oBAEb,CAAC;IACnB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;YACvC,IAAI,CAAC,gBAAgB,GAAG;gBACtB,GAAG,IAAI,CAAC,gBAAgB;gBACxB,YAAY,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY;aAClD,CAAC;SACH;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,mBAAmB,CACjB,YAA6B,EAC7B,WAA4B,EAC5B,WAAoB,EACpB,OAAgB;QAEhB,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC;QAChD,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;QAC9C,OAAO,IAAI,CAAA;QACP,CAAC,WAAW;YACZ,CAAC,CAAC,MAAM,CACJ,gBAAgB,EAChB;gBACE;oBACE,gBAAgB,CAAC,IAAI;oBACrB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC;iBAC5D;gBACD;oBACE,gBAAgB,CAAC,QAAQ;oBACzB,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC;iBAChE;gBACD;oBACE,gBAAgB,CAAC,QAAQ;oBACzB,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC;iBAChE;gBACD;oBACE,gBAAgB,CAAC,KAAK;oBACtB,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC;iBAC7D;gBACD;oBACE,gBAAgB,CAAC,QAAQ;oBACzB,GAAG,EAAE,CACH,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAClC,UAAU,CAAC,OAAO,CACnB;iBACJ;gBACD;oBACE,gBAAgB,CAAC,aAAa;oBAC9B,GAAG,EAAE,CACH,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAClC,UAAU,CAAC,OAAO,CACnB;iBACJ;aACF,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,CAC5D;YACH,CAAC,CAAC,MAAM,CACJ,eAAe,EACf;gBACE;oBACE,gBAAgB,CAAC,QAAQ;oBACzB,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC;iBAC9D;gBACD;oBACE,gBAAgB,CAAC,IAAI;oBACrB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC;iBAC1D;gBACD;oBACE,gBAAgB,CAAC,aAAa;oBAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC;iBAC/D;aACF,EAED,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAC9D;QACH,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7D,CAAC;IACJ,CAAC;IACM,MAAM;QACX,MAAM,EACJ,YAAY,EAAE,WAAW,EACzB,YAAY,EACZ,WAAW,EACX,OAAO,GACR,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE1B,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,mBAAmB,CACxB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,CAAC,CAAC,OAAO,CACV;WACI,CAAC;IACV,CAAC;;AAlTD;;;GAGG;AACI,mBAAM,GAAmB,MAAM,CAAC;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDAAgC;AANhD,YAAY;IADxB,aAAa,CAAC,eAAe,CAAC;GAClB,YAAY,CAoTxB;SApTY,YAAY;AAsTzB,eAAe,YAAY,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, TemplateResult } from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport { styles } from './nile-switcher.css';\nimport NileElement from '../internal/nile-element';\nimport { CSSResultGroup } from 'lit';\nimport { choose } from 'lit/directives/choose.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * @summary Allows you to switch between nile elements\n\n * @dependency nile-icon\n * @dependency nile-input\n * @dependency nile-checkbox\n * @dependency nile-dropdown\n * @dependency nile-textarea\n *\n \n * @event nile-change - Emitted when the control's value changes.\n * @event nile-switch - Emitted when the nile component is being switched.\n \n */\n\nexport interface switchconfig {\n [key: string]: any;\n toggleSwitch: boolean;\n disable?: boolean;\n confirmation?: boolean;\n defaultInput: switchInputType;\n switchInput: switchInputType;\n}\n\nexport interface switchInputType {\n inputType:\n | INPUT_TYPE_NAMES.DROPDOWN\n | INPUT_TYPE_NAMES.TEXT\n | INPUT_TYPE_NAMES.CHECKBOX\n | INPUT_TYPE_NAMES.TEXTAREA\n | INPUT_TYPE_NAMES.RADIO\n | INPUT_TYPE_NAMES.CONTENTEDITOR;\n value?: String | boolean;\n label?: String;\n readonly?: boolean;\n type?: string;\n placeholder?: string;\n disabled?: boolean;\n required?: boolean;\n error?: boolean;\n errorMessage?: string;\n options?: Array<any>;\n helperText?: string;\n multiple?: boolean;\n noborder?: boolean;\n}\n\nexport enum INPUT_TYPE {\n DEFAULT = 'defaultInput',\n SWITCH = 'switchInput',\n}\n\nexport enum INPUT_TYPE_NAMES {\n DROPDOWN = 'dropdown',\n TEXT = 'text',\n CHECKBOX = 'checkbox',\n TEXTAREA = 'text-area',\n RADIO = 'radio',\n CONTENTEDITOR = 'content-editor',\n}\n\n@customElement('nile-switcher')\nexport class NileSwitcher extends NileElement {\n /**\n * The styles for nile switcher\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n static styles: CSSResultGroup = styles;\n @property({ type: Object }) nileSwitchConfig: switchconfig;\n\n connectedCallback() {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n renderNileText(Input: switchInputType, inputType: string) {\n const {\n value,\n label,\n placeholder,\n disabled,\n required,\n error,\n errorMessage,\n inputType: inputTypeName,\n } = Input;\n return html`<nile-input\n .value=${value}\n .label=${label}\n .disabled=${disabled}\n .required=${required}\n .errorMessage=${errorMessage}\n .placeholder=${placeholder}\n .error=${error}\n @nile-input=${(e: CustomEvent) => {\n this.handleChange(e, inputType, inputTypeName);\n }}\n ></nile-input>`;\n }\n\n renderDropdown(Input: switchInputType, inputType: string) {\n const {\n options,\n multiple,\n placeholder,\n disabled,\n value,\n error,\n errorMessage,\n inputType: inputTypeName,\n } = Input;\n\n return html`<nile-select\n .placeholder=${placeholder}\n .disabled=\"${disabled}\"\n .multiple=\"${multiple}\"\n .value=\"${value}\"\n .error=\"${error}\"\n .errorMessage=\"${errorMessage}\"\n @nile-change=${(e: CustomEvent) => {\n this.handleChange(e, inputType, inputTypeName);\n }}\n >\n ${options?.map((option: any) => {\n return html`<nile-option .value=\"${option}\">${option} </nile-option>`;\n })}\n </nile-select>`;\n }\n\n renderNileTextArea(Input: switchInputType, inputType: string) {\n const {\n value,\n disabled,\n readonly,\n errorMessage,\n error,\n inputType: inputTypeName,\n } = Input;\n\n return html`<nile-textarea\n .value=${value}\n .disabled=${disabled}\n ?readonly=${readonly}\n .error=${error}\n .errorMessage=${errorMessage}\n @nile-input=${(e: CustomEvent) => {\n this.handleChange(e, inputType, inputTypeName);\n }}\n ></nile-textarea>`;\n }\n\n renderNileCheckBox(Input: switchInputType, inputType: string) {\n const { value, label, disabled, inputType: inputTypeName } = Input;\n\n return html`<nile-checkbox\n .checked=${value}\n .label=${label}\n .disabled=${disabled}\n @valueChange=${(e: CustomEvent) => {\n this.handleChange(e, inputType, inputTypeName);\n }}\n ></nile-checkbox\n >; `;\n }\n\n renderNileRadio(Input: switchInputType, inputType: string) {\n const {\n options,\n value,\n disabled,\n inputType: inputTypeName,\n errorMessage,\n } = Input;\n\n const haserrorMessage = !!errorMessage;\n\n return html`<nile-radio-group\n .value=${value}\n .disabled=${disabled}\n @change=${(e: CustomEvent) => {\n this.handleChange(e, inputType, inputTypeName);\n }}\n >\n ${options &&\n options.map((option: any) => {\n return html`<nile-radio .value=\"${option}\">${option} </nile-radio>`;\n })}\n ${haserrorMessage ? this.renderErrorMessage(errorMessage) : ''}\n </nile-radio-group> `;\n }\n\n renderErrorMessage(errorMessage: string) {\n return html`\n <nile-form-error-message>${errorMessage}</nile-form-error-message>\n `;\n }\n\n renderContentEditor(Input: switchInputType, inputType: string) {\n let {\n options,\n inputType: inputTypeName,\n errorMessage,\n type,\n readonly,\n noborder,\n value,\n } = Input;\n return html`<nile-content-editor\n .value=${value}\n .options=${options}\n .type=${type}\n .readonly=${readonly}\n .noborder=${noborder}\n .errorMessage=${errorMessage}\n @nile-change=${(e: CustomEvent) => {\n this.handleChange(e, inputType, inputTypeName);\n }}\n >\n </nile-content-editor>`;\n }\n\n handleChange(event: CustomEvent, inputType: string, inputTypeName: string) {\n if (inputTypeName === INPUT_TYPE_NAMES.CHECKBOX) {\n this.nileSwitchConfig[inputType as keyof switchconfig].value =\n event.detail.checked;\n } else {\n this.nileSwitchConfig[inputType as keyof switchconfig].value =\n event.detail.value;\n }\n event.stopPropagation();\n this.emit('nile-change', { config: this.nileSwitchConfig });\n }\n\n renderIcon(defaultInput: switchInputType, switchInput: switchInputType) {\n const defaultHelperText = defaultInput.helperText;\n const switchHelperText = switchInput.helperText;\n\n const icon = !this.nileSwitchConfig.toggleSwitch\n ? 'header-functions'\n : 'stringinput';\n\n const helperText = !this.nileSwitchConfig.toggleSwitch\n ? !!switchHelperText\n ? switchHelperText\n : `switch to ${switchInput.inputType}`\n : !!defaultHelperText\n ? defaultHelperText\n : `switch to ${defaultInput.inputType}`;\n\n return html` <nile-tooltip\n class=${classMap({\n 'tooltip-container': true,\n })}\n content=${helperText}\n placement=\"bottom\"\n >\n <nile-icon\n size=\"14\"\n class=${classMap({\n 'pointer-cursor': true,\n })}\n .name=${icon}\n color=\"#005EA6\"\n @click=${this.toggleField}\n ></nile-icon>\n </nile-tooltip>`;\n }\n\n toggleField() {\n if (!this.nileSwitchConfig.confirmation) {\n this.nileSwitchConfig = {\n ...this.nileSwitchConfig,\n toggleSwitch: !this.nileSwitchConfig.toggleSwitch,\n };\n }\n this.emit('nile-switch', { config: this.nileSwitchConfig });\n }\n\n singleFieldSwitcher(\n defaultInput: switchInputType,\n switchInput: switchInputType,\n toggleField: boolean,\n disable: boolean\n ) {\n const defaultInputType = defaultInput.inputType;\n const switchInputType = switchInput.inputType;\n return html`\n ${!toggleField\n ? choose(\n defaultInputType,\n [\n [\n INPUT_TYPE_NAMES.TEXT,\n () => this.renderNileText(defaultInput, INPUT_TYPE.DEFAULT),\n ],\n [\n INPUT_TYPE_NAMES.CHECKBOX,\n () => this.renderNileCheckBox(defaultInput, INPUT_TYPE.DEFAULT),\n ],\n [\n INPUT_TYPE_NAMES.TEXTAREA,\n () => this.renderNileTextArea(defaultInput, INPUT_TYPE.DEFAULT),\n ],\n [\n INPUT_TYPE_NAMES.RADIO,\n () => this.renderNileRadio(defaultInput, INPUT_TYPE.DEFAULT),\n ],\n [\n INPUT_TYPE_NAMES.DROPDOWN,\n () =>\n this.renderDropdown(\n this.nileSwitchConfig.defaultInput,\n INPUT_TYPE.DEFAULT\n ),\n ],\n [\n INPUT_TYPE_NAMES.CONTENTEDITOR,\n () =>\n this.renderContentEditor(\n this.nileSwitchConfig.defaultInput,\n INPUT_TYPE.DEFAULT\n ),\n ],\n ],\n () => this.renderNileText(defaultInput, INPUT_TYPE.DEFAULT)\n )\n : choose(\n switchInputType,\n [\n [\n INPUT_TYPE_NAMES.TEXTAREA,\n () => this.renderNileTextArea(switchInput, INPUT_TYPE.SWITCH),\n ],\n [\n INPUT_TYPE_NAMES.TEXT,\n () => this.renderNileText(switchInput, INPUT_TYPE.SWITCH),\n ],\n [\n INPUT_TYPE_NAMES.CONTENTEDITOR,\n () => this.renderContentEditor(switchInput, INPUT_TYPE.SWITCH),\n ],\n ],\n\n () => this.renderNileTextArea(switchInput, INPUT_TYPE.SWITCH)\n )}\n ${!disable ? this.renderIcon(defaultInput, switchInput) : ''}\n `;\n }\n public render(): TemplateResult {\n const {\n toggleSwitch: toggleField,\n defaultInput,\n switchInput,\n disable,\n } = this.nileSwitchConfig;\n\n return html`<div class=\"input-container\">\n ${this.singleFieldSwitcher(\n defaultInput,\n switchInput,\n toggleField,\n !!disable\n )}\n </div>`;\n }\n}\n\nexport default NileSwitcher;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-switcher': NileSwitcher;\n }\n}\n"]}
|