@aquera/nile-elements 0.0.35 → 0.0.36-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 (54) hide show
  1. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.css.js +12 -5
  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 +9 -4
  4. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/nile-code-editor.js +98 -39
  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-code-editor/theme.d.ts +9 -0
  7. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/theme.js +10 -0
  8. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-code-editor/theme.js.map +1 -0
  9. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js +12 -6
  10. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
  11. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.d.ts +1 -0
  12. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js +14 -6
  13. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-switcher/nile-switcher.js.map +1 -1
  14. package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
  15. package/dist/index.cjs.js +1 -1
  16. package/dist/index.esm.js +1 -1
  17. package/dist/index.iife.js +236 -213
  18. package/dist/nile-code-editor/index.cjs.js +1 -1
  19. package/dist/nile-code-editor/index.esm.js +1 -1
  20. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  21. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  22. package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
  23. package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
  24. package/dist/nile-code-editor/nile-code-editor.css.esm.js +14 -7
  25. package/dist/nile-code-editor/nile-code-editor.esm.js +17 -9
  26. package/dist/nile-code-editor/theme.cjs.js +2 -0
  27. package/dist/nile-code-editor/theme.cjs.js.map +1 -0
  28. package/dist/nile-code-editor/theme.esm.js +1 -0
  29. package/dist/nile-switcher/nile-switcher.cjs.js +1 -1
  30. package/dist/nile-switcher/nile-switcher.cjs.js.map +1 -1
  31. package/dist/nile-switcher/nile-switcher.css.cjs.js +1 -1
  32. package/dist/nile-switcher/nile-switcher.css.cjs.js.map +1 -1
  33. package/dist/nile-switcher/nile-switcher.css.esm.js +12 -6
  34. package/dist/nile-switcher/nile-switcher.esm.js +29 -27
  35. package/dist/src/nile-code-editor/nile-code-editor.css.js +12 -5
  36. package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
  37. package/dist/src/nile-code-editor/nile-code-editor.d.ts +9 -4
  38. package/dist/src/nile-code-editor/nile-code-editor.js +98 -39
  39. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  40. package/dist/src/nile-code-editor/theme.d.ts +9 -0
  41. package/dist/src/nile-code-editor/theme.js +10 -0
  42. package/dist/src/nile-code-editor/theme.js.map +1 -0
  43. package/dist/src/nile-switcher/nile-switcher.css.js +12 -6
  44. package/dist/src/nile-switcher/nile-switcher.css.js.map +1 -1
  45. package/dist/src/nile-switcher/nile-switcher.d.ts +1 -0
  46. package/dist/src/nile-switcher/nile-switcher.js +14 -6
  47. package/dist/src/nile-switcher/nile-switcher.js.map +1 -1
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/package.json +1 -1
  50. package/src/nile-code-editor/nile-code-editor.css.ts +12 -5
  51. package/src/nile-code-editor/nile-code-editor.ts +93 -42
  52. package/src/nile-code-editor/theme.ts +9 -0
  53. package/src/nile-switcher/nile-switcher.css.ts +12 -6
  54. package/src/nile-switcher/nile-switcher.ts +15 -7
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.0.35",
6
+ "version": "0.0.36-1",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
@@ -19,7 +19,13 @@ export const styles = css`
19
19
  display: flex;
20
20
  justify-content: flex-end;
21
21
  flex-direction: row-reverse;
22
- gap: 0.6rem;
22
+ padding: 5px;
23
+ border-radius: 5px;
24
+ border: 1px solid rgb(204, 204, 204);
25
+ }
26
+
27
+ .error {
28
+ border-color: #e5434d;
23
29
  }
24
30
 
25
31
  .cm-editor {
@@ -33,11 +39,12 @@ export const styles = css`
33
39
  }
34
40
 
35
41
  .code-editor__icon__container {
36
- cursor: pointer;
42
+ display: none;
37
43
  }
38
-
39
- .code-editor__icon__container {
40
- padding-right: 5px;
44
+ .code-mirror:hover > .code-editor__icon__container {
45
+ cursor: pointer;
46
+ display: flex;
47
+ padding-right: 10px;
41
48
  }
42
49
  `;
43
50
 
@@ -11,6 +11,7 @@ import {
11
11
  property,
12
12
  CSSResultArray,
13
13
  TemplateResult,
14
+ PropertyValueMap,
14
15
  } from 'lit-element';
15
16
  import { customElement, query } from 'lit/decorators.js';
16
17
  import { styles } from './nile-code-editor.css';
@@ -27,6 +28,10 @@ import { autocompletion } from '@codemirror/autocomplete';
27
28
  import { CompletionContext, Completion } from '@codemirror/autocomplete';
28
29
  import NileElement from '../internal/nile-element';
29
30
  import { basicSetup } from './extensionSetup';
31
+ import { watch } from '../internal/watch';
32
+ import { PropertyValues } from 'lit';
33
+ import { classMap } from 'lit/directives/class-map.js';
34
+ import { Theme } from './theme';
30
35
 
31
36
  // Choose the appropriate mode for your use case
32
37
 
@@ -39,10 +44,12 @@ import { basicSetup } from './extensionSetup';
39
44
  @customElement('nile-code-editor')
40
45
  export class NileCodeEditor extends NileElement {
41
46
  @query('.code-mirror') codeEditor: HTMLInputElement;
42
- @property({ type: Boolean }) multiline: true;
43
- @property({ type: String }) value: true;
44
- @property({ type: String }) customOptions: any;
45
- @property({ type: String }) showLineNumbers: any;
47
+ @property({ type: Boolean, reflect: true }) multiline = false;
48
+ @property({ type: String }) value = '';
49
+ @property({ type: String }) customOptions: any = {};
50
+ @property({ type: Boolean }) updateValue: any = false;
51
+ @property({ attribute: 'error-message' }) errorMessage = '';
52
+ @property({ attribute: 'error' }) error = false;
46
53
 
47
54
  /**
48
55
  * The styles for CodeEditor
@@ -64,33 +71,61 @@ export class NileCodeEditor extends NileElement {
64
71
  }
65
72
  lineNumbersComp = new Compartment();
66
73
 
67
- updated() {
68
- const customAutoCompletions = javascriptLanguage.data.of({
69
- autocomplete: scopeCompletionSource(this.customOptions),
70
- });
71
- let startState = EditorState.create({
72
- doc: !this.multiline ? this.convertToSingleLine(this.value) : this.value,
73
- extensions: [
74
- basicSetup({
75
- lineNumbers: !!this.showLineNumbers,
76
- foldGutter: !this.multiline ? false : true,
77
- }),
78
- customAutoCompletions,
79
- autocompletion(),
80
- javascript(),
81
- !this.multiline ? this.restrictSingleLine() : [],
82
- EditorView.updateListener.of((v: ViewUpdate) => {
83
- if (v.docChanged) {
84
- this.emitValues(this.view.state.doc.toString());
85
- }
86
- }),
87
- ],
88
- });
89
-
90
- this.view = new EditorView({
91
- state: startState,
92
- parent: this.codeEditor,
93
- });
74
+ @watch(['value'], { waitUntilFirstUpdate: true })
75
+ handleValueChange() {}
76
+
77
+ firstUpdated(changedProperties: PropertyValues) {
78
+ super.updated(changedProperties);
79
+ if (changedProperties.has('value')) {
80
+ const customAutoCompletions = javascriptLanguage.data.of({
81
+ autocomplete: scopeCompletionSource(this.customOptions),
82
+ });
83
+ if (!this.view) {
84
+ let startState = EditorState.create({
85
+ doc: !this.multiline
86
+ ? this.convertToSingleLine(this.value)
87
+ : this.value,
88
+ extensions: [
89
+ basicSetup({
90
+ lineNumbers: !!this.multiline,
91
+ highlightActiveLine: false,
92
+ foldGutter: !!this.multiline,
93
+ }),
94
+ customAutoCompletions,
95
+ autocompletion(),
96
+ javascript(),
97
+ this.setTheme(),
98
+ !this.multiline ? this.restrictSingleLine() : [],
99
+ EditorView.updateListener.of((v: ViewUpdate) => {
100
+ if (v.docChanged) {
101
+ this.emitValues(this.view.state.doc.toString());
102
+ }
103
+ }),
104
+ ],
105
+ });
106
+
107
+ this.view = new EditorView({
108
+ state: startState,
109
+ parent: this.codeEditor,
110
+ });
111
+ } else {
112
+ // Editor has already been initialized, update its state
113
+ this.view.dispatch({
114
+ changes: {
115
+ from: 0,
116
+ to: this.view.state.doc.length,
117
+ insert: !this.multiline
118
+ ? this.convertToSingleLine(this.value)
119
+ : this.value,
120
+ },
121
+ });
122
+ }
123
+ }
124
+
125
+ }
126
+
127
+ setTheme() {
128
+ return EditorView.theme(Theme);
94
129
  }
95
130
 
96
131
  emitValues(value: string) {
@@ -107,17 +142,33 @@ export class NileCodeEditor extends NileElement {
107
142
  );
108
143
  }
109
144
  public render(): TemplateResult {
110
- return html`<div class="code-mirror">
111
- ${!this.multiline
112
- ? html`<nile-icon
113
- name="fullscreenshrink"
114
- class="code-editor__icon__container"
115
- size="16"
116
- color="black"
117
- @click="${(e: CustomEvent) => this.expandCodeEditor()}"
118
- ></nile-icon>`
119
- : ''}
120
- </div>`;
145
+ const hasErrorMessage = !!this.errorMessage;
146
+ const hasError = !!this.error;
147
+ return html`<div
148
+ part="code-editor-base"
149
+ class=${classMap({
150
+ 'code-mirror': true,
151
+ error: hasError || hasErrorMessage,
152
+ 'code-mirror__singleline': !this.multiline,
153
+ })}
154
+ >
155
+ ${!this.multiline
156
+ ? html` <nile-icon
157
+ name="fullscreenshrink"
158
+ class="code-editor__icon__container"
159
+ size="16"
160
+ color="black"
161
+ @click="${(e: CustomEvent) => this.expandCodeEditor()}"
162
+ ></nile-icon>`
163
+ : ''}
164
+ </div>
165
+ ${hasErrorMessage
166
+ ? html`
167
+ <nile-form-error-message
168
+ >${this.errorMessage}</nile-form-error-message
169
+ >
170
+ `
171
+ : ``}`;
121
172
  }
122
173
 
123
174
  /* #endregion */
@@ -0,0 +1,9 @@
1
+ export const Theme = {
2
+ '&': {
3
+ fontSize: '14px',
4
+ fontFamily: 'Colfax-regular',
5
+ fontWeight: '400',
6
+ },
7
+ '.cm-content': {},
8
+ '.cm-scroller': {},
9
+ };
@@ -16,6 +16,10 @@ export const styles = css`
16
16
  box-sizing: border-box;
17
17
  }
18
18
 
19
+ .pointer-cursor {
20
+ cursor: pointer;
21
+ }
22
+
19
23
  .switcher__label {
20
24
  display: flex;
21
25
  align-items: center;
@@ -29,6 +33,9 @@ export const styles = css`
29
33
  letter-spacing: 0.2px;
30
34
  }
31
35
 
36
+ switcher-object-mapper:hover {
37
+ display: flex;
38
+ }
32
39
  .switcher-icon-container.current {
33
40
  background: var(--nile-colors-blue-400);
34
41
  }
@@ -82,15 +89,14 @@ export const styles = css`
82
89
 
83
90
  nile-code-editor {
84
91
  overflow: hidden;
85
- padding-top: 2px;
86
- border-radius: 5px;
87
- border: 1px solid rgb(204, 204, 204);
88
92
  }
89
93
 
90
- .code-editor__no-border {
91
- border: none;
94
+ .switcher-object-mapper-icon {
95
+ display: none;
96
+ }
97
+ .switcher-object-mapper:hover > .switcher-object-mapper-icon {
98
+ display: block;
92
99
  }
93
-
94
100
  .switcher-object-mapper::part(input) {
95
101
  color: var(--nile-colors-primary-600);
96
102
  cursor: pointer;
@@ -105,8 +105,7 @@ export class NileSwitcher extends NileElement {
105
105
  private readonly hasSlotController = new HasSlotController(this, 'label');
106
106
 
107
107
  @property({ type: Object }) nileSwitchConfig: switchconfig;
108
-
109
- @property({ type: Number }) current: Number = 0;
108
+ @property({ type: Number }) current: Number = 1;
110
109
 
111
110
  @property({ type: Object }) currentInput: switchInputType;
112
111
 
@@ -177,6 +176,7 @@ export class NileSwitcher extends NileElement {
177
176
  } = Input;
178
177
 
179
178
  return html`<nile-select
179
+ part="dropdown"
180
180
  class="switcher-dropdown"
181
181
  .placeholder=${placeholder}
182
182
  .disabled="${disabled}"
@@ -276,7 +276,7 @@ export class NileSwitcher extends NileElement {
276
276
  const value =
277
277
  this.currentInput.mode === MODE.CREATE
278
278
  ? 'Click to Create - Not Mapped'
279
- : '';
279
+ : 'Click to Edit';
280
280
 
281
281
  return html`<nile-input
282
282
  class=${classMap({
@@ -312,9 +312,9 @@ export class NileSwitcher extends NileElement {
312
312
  noborder,
313
313
  } = Input;
314
314
  return html`<nile-code-editor
315
+ part="switcher-code-editor"
315
316
  class=${classMap({
316
317
  'code-editor': true,
317
- 'code-editor__no-border': !!noborder,
318
318
  })}
319
319
  @nile-expand="${(e: CustomEvent) =>
320
320
  this.handleExpand(e, INPUT_TYPE_NAMES.CODE_EDITOR)}"
@@ -323,7 +323,6 @@ export class NileSwitcher extends NileElement {
323
323
  .multiline="${multiLine}"
324
324
  .value="${value}"
325
325
  .customOptions="${customAutoCompletions}"
326
- .showLineNumbers="false"
327
326
  ></nile-code-editor> `;
328
327
  }
329
328
 
@@ -387,11 +386,19 @@ export class NileSwitcher extends NileElement {
387
386
  `;
388
387
  }
389
388
 
389
+ isToggleSwitch = (item: any) => {
390
+ return typeof item === 'undefined' || item;
391
+ };
392
+
390
393
  toggleField(currentInput: switchInputType, index: Number) {
391
- if (this.nileSwitchConfig.confirmation) {
394
+ if (this.isToggleSwitch(this.nileSwitchConfig.confirmation)) {
392
395
  this.current = index;
393
396
  }
394
- this.emit('nile-switch', { input: this.currentInput });
397
+ this.updateComplete.then(res => {
398
+ if (res) {
399
+ this.emit('nile-switch', { input: this.currentInput });
400
+ }
401
+ });
395
402
  }
396
403
 
397
404
  singleFieldSwitcher() {
@@ -438,6 +445,7 @@ export class NileSwitcher extends NileElement {
438
445
  const hasLabelSlot = this.hasSlotController.test('label');
439
446
  const align = this.nileSwitchConfig.align;
440
447
  return html`<div
448
+ part="base"
441
449
  class=${classMap({
442
450
  'switcher-block': align === POSITIONS.BLOCK,
443
451
  'switcher-inline': align === POSITIONS.INLINE,