@universal-material/web 3.0.40 → 3.0.42

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.
@@ -6,6 +6,7 @@ export declare class UmChipField extends UmTextFieldBase {
6
6
  static styles: CSSResultGroup;
7
7
  input: HTMLInputElement;
8
8
  name: string;
9
+ manual: boolean;
9
10
  formatter: ((value: any) => string) | undefined;
10
11
  leadingIconTemplate: ((value: any) => string) | undefined;
11
12
  get value(): any[];
@@ -1 +1 @@
1
- {"version":3,"file":"chip-field.d.ts","sourceRoot":"","sources":["../../src/chip-field/chip-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAQ,kBAAkB,EAAW,MAAM,KAAK,CAAC;AAMxD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAE/E,qBACa,WAAY,SAAQ,eAAe;;IAC9C,OAAgB,MAAM,EAAE,cAAc,CAGpC;IAEc,KAAK,EAAG,gBAAgB,CAAC;IAC7B,IAAI,EAAG,MAAM,CAAC;IAEd,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5D,mBAAmB,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAI1D,IAAI,KAAK,IAAI,GAAG,EAAE,CAEjB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAGrB;IAED,OAAO,CAAC,YAAY;IAUX,KAAK;IAId,IACa,KAAK,IAAI,OAAO,CAE5B;cAEkB,aAAa,IAAI,kBAAkB;IAgDtD,GAAG,CAAC,KAAK,EAAE,GAAG;IAiBd,OAAO,CAAC,YAAY;CAKrB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
1
+ {"version":3,"file":"chip-field.d.ts","sourceRoot":"","sources":["../../src/chip-field/chip-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAQ,kBAAkB,EAAW,MAAM,KAAK,CAAC;AAMxD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAE/E,qBACa,WAAY,SAAQ,eAAe;;IAC9C,OAAgB,MAAM,EAAE,cAAc,CAGpC;IAEc,KAAK,EAAG,gBAAgB,CAAC;IAC7B,IAAI,EAAG,MAAM,CAAC;IACC,MAAM,UAAS;IAE9B,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5D,mBAAmB,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAI1D,IAAI,KAAK,IAAI,GAAG,EAAE,CAEjB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAGrB;IAED,OAAO,CAAC,YAAY;IAUX,KAAK;IAId,IACa,KAAK,IAAI,OAAO,CAE5B;cAEkB,aAAa,IAAI,kBAAkB;IAgDtD,GAAG,CAAC,KAAK,EAAE,GAAG;IAiBd,OAAO,CAAC,YAAY;CAKrB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -15,7 +15,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
15
15
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
16
16
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
17
17
  };
18
- var _UmChipField_instances, _UmChipField_value, _UmChipField_getChips, _UmChipField_handleBlur, _UmChipField_handleKeyDown, _UmChipField_removeChip, _UmChipField_emit;
18
+ var _UmChipField_instances, _UmChipField_value, _UmChipField_getChips, _UmChipField_handleBlur, _UmChipField_handleKeyDown, _UmChipField_removeChip, _UmChipField_updated;
19
19
  import { html, nothing } from 'lit';
20
20
  import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
21
21
  import { customElement, property, query, state } from 'lit/decorators.js';
@@ -25,10 +25,11 @@ let UmChipField = class UmChipField extends UmTextFieldBase {
25
25
  constructor() {
26
26
  super(...arguments);
27
27
  _UmChipField_instances.add(this);
28
+ this.manual = false;
28
29
  _UmChipField_value.set(this, []);
29
30
  _UmChipField_removeChip.set(this, (index) => () => {
30
31
  this.value.splice(index, 1);
31
- __classPrivateFieldGet(this, _UmChipField_instances, "m", _UmChipField_emit).call(this);
32
+ __classPrivateFieldGet(this, _UmChipField_instances, "m", _UmChipField_updated).call(this);
32
33
  });
33
34
  }
34
35
  get value() {
@@ -65,8 +66,7 @@ let UmChipField = class UmChipField extends UmTextFieldBase {
65
66
  }
66
67
  add(value) {
67
68
  this.value.push(value);
68
- __classPrivateFieldGet(this, _UmChipField_instances, "m", _UmChipField_emit).call(this);
69
- this.requestUpdate();
69
+ __classPrivateFieldGet(this, _UmChipField_instances, "m", _UmChipField_updated).call(this);
70
70
  }
71
71
  getItemLabel(item) {
72
72
  return this.formatter
@@ -96,7 +96,7 @@ _UmChipField_handleBlur = function _UmChipField_handleBlur() {
96
96
  this.requestUpdate();
97
97
  };
98
98
  _UmChipField_handleKeyDown = function _UmChipField_handleKeyDown(e) {
99
- if (e.key === 'Enter') {
99
+ if (!this.manual && e.key === 'Enter') {
100
100
  this.add(this.input.value);
101
101
  this.input.value = '';
102
102
  return;
@@ -106,8 +106,9 @@ _UmChipField_handleKeyDown = function _UmChipField_handleKeyDown(e) {
106
106
  return;
107
107
  }
108
108
  };
109
- _UmChipField_emit = function _UmChipField_emit() {
109
+ _UmChipField_updated = function _UmChipField_updated() {
110
110
  this.setFormValue();
111
+ this.requestUpdate();
111
112
  this.dispatchEvent(new Event('change', { bubbles: true }));
112
113
  };
113
114
  UmChipField.styles = [
@@ -120,6 +121,9 @@ __decorate([
120
121
  __decorate([
121
122
  property()
122
123
  ], UmChipField.prototype, "name", void 0);
124
+ __decorate([
125
+ property({ type: Boolean })
126
+ ], UmChipField.prototype, "manual", void 0);
123
127
  __decorate([
124
128
  property()
125
129
  ], UmChipField.prototype, "formatter", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"chip-field.js","sourceRoot":"","sources":["../../src/chip-field/chip-field.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\nimport { html, HTMLTemplateResult, nothing } from 'lit';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\n\nimport { styles } from './chip-field.styles.js';\n\nimport { UmTextFieldBase } from '../shared/text-field-base/text-field-base.js';\n\n@customElement('u-chip-field')\nexport class UmChipField extends UmTextFieldBase {\n static override styles: CSSResultGroup = [\n UmTextFieldBase.styles,\n styles\n ];\n\n @query('input') input!: HTMLInputElement;\n @property() name!: string;\n\n @property() formatter: ((value: any) => string) | undefined;\n leadingIconTemplate: ((value: any) => string) | undefined;\n\n #value: any[] = [];\n\n get value(): any[] {\n return this.#value;\n }\n set value(value: any[]) {\n this.#value = value;\n this.setFormValue();\n }\n\n private setFormValue() {\n const formData = new FormData();\n\n for (const item of this.value) {\n formData.append(this.name, this.getItemLabel(item));\n }\n\n this.elementInternals.setFormValue(formData);\n }\n\n override focus() {\n this.input.focus();\n }\n\n @state()\n override get empty(): boolean {\n return !this.value?.length && !this.input?.value;\n }\n\n protected override renderContent(): HTMLTemplateResult {\n\n return html`\n ${(this.#getChips())}\n <input \n part=\"input\"\n id=${this.id || nothing}\n aria-labelledby=\"label\"\n ?disabled=${this.disabled}\n placeholder=${this.placeholder || nothing}\n @blur=${this.#handleBlur}\n @keydown=${this.#handleKeyDown}/>`\n }\n\n #getChips() {\n return this.value\n .map((item, index) => {\n const leadingIcon = this.leadingIconTemplate\n ? html`<span slot=\"leading-icon\">${unsafeHTML(this.leadingIconTemplate(item))}</span>`\n : nothing\n\n return html`\n <u-chip\n removable\n @remove=${this.#removeChip(index)}>\n ${leadingIcon}\n ${this.getItemLabel(item)}\n </u-chip>`;\n });\n }\n\n #handleBlur() {\n this.requestUpdate();\n }\n\n #handleKeyDown(e: KeyboardEvent) {\n if (e.key === 'Enter') {\n this.add(this.input.value);\n this.input.value = '';\n return;\n }\n\n if (e.key === 'Backspace' && this.input.selectionStart === 0 && this.input.selectionEnd === 0) {\n this.#removeChip(this.value.length - 1)();\n return;\n }\n }\n\n add(value: any) {\n this.value.push(value);\n this.#emit();\n this.requestUpdate();\n }\n\n #removeChip = (index: number) =>\n () => {\n this.value.splice(index, 1);\n this.#emit();\n }\n\n #emit() {\n this.setFormValue();\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n\n private getItemLabel(item: any) {\n return this.formatter\n ? this.formatter(item)\n : item.toString();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-chip-field': UmChipField;\n }\n}\n"]}
1
+ {"version":3,"file":"chip-field.js","sourceRoot":"","sources":["../../src/chip-field/chip-field.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\nimport { html, HTMLTemplateResult, nothing } from 'lit';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\n\nimport { styles } from './chip-field.styles.js';\n\nimport { UmTextFieldBase } from '../shared/text-field-base/text-field-base.js';\n\n@customElement('u-chip-field')\nexport class UmChipField extends UmTextFieldBase {\n static override styles: CSSResultGroup = [\n UmTextFieldBase.styles,\n styles\n ];\n\n @query('input') input!: HTMLInputElement;\n @property() name!: string;\n @property({type: Boolean}) manual = false;\n\n @property() formatter: ((value: any) => string) | undefined;\n leadingIconTemplate: ((value: any) => string) | undefined;\n\n #value: any[] = [];\n\n get value(): any[] {\n return this.#value;\n }\n set value(value: any[]) {\n this.#value = value;\n this.setFormValue();\n }\n\n private setFormValue() {\n const formData = new FormData();\n\n for (const item of this.value) {\n formData.append(this.name, this.getItemLabel(item));\n }\n\n this.elementInternals.setFormValue(formData);\n }\n\n override focus() {\n this.input.focus();\n }\n\n @state()\n override get empty(): boolean {\n return !this.value?.length && !this.input?.value;\n }\n\n protected override renderContent(): HTMLTemplateResult {\n\n return html`\n ${(this.#getChips())}\n <input \n part=\"input\"\n id=${this.id || nothing}\n aria-labelledby=\"label\"\n ?disabled=${this.disabled}\n placeholder=${this.placeholder || nothing}\n @blur=${this.#handleBlur}\n @keydown=${this.#handleKeyDown}/>`\n }\n\n #getChips() {\n return this.value\n .map((item, index) => {\n const leadingIcon = this.leadingIconTemplate\n ? html`<span slot=\"leading-icon\">${unsafeHTML(this.leadingIconTemplate(item))}</span>`\n : nothing\n\n return html`\n <u-chip\n removable\n @remove=${this.#removeChip(index)}>\n ${leadingIcon}\n ${this.getItemLabel(item)}\n </u-chip>`;\n });\n }\n\n #handleBlur() {\n this.requestUpdate();\n }\n\n #handleKeyDown(e: KeyboardEvent) {\n if (!this.manual && e.key === 'Enter') {\n this.add(this.input.value);\n this.input.value = '';\n return;\n }\n\n if (e.key === 'Backspace' && this.input.selectionStart === 0 && this.input.selectionEnd === 0) {\n this.#removeChip(this.value.length - 1)();\n return;\n }\n }\n\n add(value: any) {\n this.value.push(value);\n this.#updated();\n }\n\n #removeChip = (index: number) =>\n () => {\n this.value.splice(index, 1);\n this.#updated();\n }\n\n #updated() {\n this.setFormValue();\n this.requestUpdate();\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n\n private getItemLabel(item: any) {\n return this.formatter\n ? this.formatter(item)\n : item.toString();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-chip-field': UmChipField;\n }\n}\n"]}