@progressive-development/pd-forms 0.7.1 → 0.7.3

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.
@@ -55,6 +55,7 @@ export declare abstract class PdBaseUIInput extends PdBaseUI {
55
55
  static styles: CSSResultGroup;
56
56
  update(changedProps: PropertyValues<this>): void;
57
57
  firstUpdated(): void;
58
+ disconnectedCallback(): void;
58
59
  get errorMsg(): string;
59
60
  set errorMsg(msg: string);
60
61
  get value(): string;
@@ -64,6 +65,7 @@ export declare abstract class PdBaseUIInput extends PdBaseUI {
64
65
  reset(): void;
65
66
  clear(): void;
66
67
  protected _registerAtContainer(valid: boolean): void;
68
+ protected _unRegisterAtContainer(): void;
67
69
  private _collectValidators;
68
70
  protected _handleChangedValue(newValue: string, event: Event | undefined, dispatchEvent?: boolean, checkReturn?: boolean, callback?: () => void): void;
69
71
  protected _dispatchChange(value: string, eventName?: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pd-base-ui-input.d.ts","sourceRoot":"","sources":["../src/pd-base-ui-input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pd-base-ui-input.d.ts","sourceRoot":"","sources":["../src/pd-base-ui-input.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,10 @@ const _PdBaseUIInput = class _PdBaseUIInput extends PdBaseUI {
66
66
  this._registerAtContainer(result);
67
67
  });
68
68
  }
69
+ disconnectedCallback() {
70
+ this._unRegisterAtContainer();
71
+ super.disconnectedCallback();
72
+ }
69
73
  get errorMsg() {
70
74
  return this._errorMsg;
71
75
  }
@@ -138,6 +142,26 @@ const _PdBaseUIInput = class _PdBaseUIInput extends PdBaseUI {
138
142
  })
139
143
  );
140
144
  }
145
+ _unRegisterAtContainer() {
146
+ this.dispatchEvent(
147
+ new CustomEvent("pd-form-element-unregister", {
148
+ detail: {
149
+ name: this.valueName || this.id || "field",
150
+ value: this._getInitialValue(),
151
+ state: {
152
+ pristine: this._pristine,
153
+ dirty: this._dirty,
154
+ touched: this._touched,
155
+ focused: this._focused,
156
+ valid: this._valid,
157
+ invalid: this._invalid
158
+ }
159
+ },
160
+ bubbles: true,
161
+ composed: true
162
+ })
163
+ );
164
+ }
141
165
  _collectValidators() {
142
166
  const validators = [];
143
167
  if (this.required) {
@@ -21,6 +21,7 @@ export declare class PdFormContainer extends PdBaseUI {
21
21
  render(): TemplateResult;
22
22
  private _renderValidationInfo;
23
23
  private _onRegister;
24
+ private _onUnRegister;
24
25
  private _onChange;
25
26
  private _onBlur;
26
27
  private _onFocus;
@@ -1 +1 @@
1
- {"version":3,"file":"pd-form-container.d.ts","sourceRoot":"","sources":["../src/pd-form-container.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,qBACa,eAAgB,SAAQ,QAAQ;IAC3C;;OAEG;IAEH,iBAAiB,UAAS;IAE1B;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAEH,WAAW,SAAM;IAGjB,OAAO,CAAC,OAAO,CAA+C;IAE9D,OAAgB,MAAM,EAAE,cAAc,CAgCpC;IAEO,iBAAiB,IAAI,IAAI;IAoBzB,oBAAoB,IAAI,IAAI;IAoB5B,MAAM,IAAI,cAAc;IASjC,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,WAAW,CAqBjB;IAEF,OAAO,CAAC,SAAS,CA0Bf;IAEF,OAAO,CAAC,OAAO,CAQb;IAEF,OAAO,CAAC,QAAQ,CAOd;IAEF,OAAO,CAAC,mBAAmB;IASd,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAYzC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAYhC,KAAK,IAAI,IAAI;IAMb,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAIpD,IAAI,KAAK,YAER;CACF"}
1
+ {"version":3,"file":"pd-form-container.d.ts","sourceRoot":"","sources":["../src/pd-form-container.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,qBACa,eAAgB,SAAQ,QAAQ;IAC3C;;OAEG;IAEH,iBAAiB,UAAS;IAE1B;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAEH,WAAW,SAAM;IAGjB,OAAO,CAAC,OAAO,CAA+C;IAE9D,OAAgB,MAAM,EAAE,cAAc,CAgCpC;IAEO,iBAAiB,IAAI,IAAI;IAwBzB,oBAAoB,IAAI,IAAI;IAwB5B,MAAM,IAAI,cAAc;IAWjC,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,WAAW,CA6BjB;IAEF,OAAO,CAAC,aAAa,CAkBnB;IAEF,OAAO,CAAC,SAAS,CA0Bf;IAEF,OAAO,CAAC,OAAO,CAQb;IAEF,OAAO,CAAC,QAAQ,CAOd;IAEF,OAAO,CAAC,mBAAmB;IAad,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAYzC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAYhC,KAAK,IAAI,IAAI;IAMb,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAIpD,IAAI,KAAK,YAER;CACF"}
@@ -36,6 +36,29 @@ let PdFormContainer = class extends PdBaseUI {
36
36
  element: e.target
37
37
  });
38
38
  this.requestUpdate();
39
+ this.dispatchEvent(
40
+ new CustomEvent("pd-form-change", {
41
+ detail: {
42
+ overallValidity: this._getOverallValidity()
43
+ }
44
+ })
45
+ );
46
+ }
47
+ e.stopPropagation();
48
+ };
49
+ this._onUnRegister = (e) => {
50
+ const { name, value, state: state2 } = e.detail;
51
+ console.debug("###### _onUnRegister", name, value, state2);
52
+ if (this._fields.has(name)) {
53
+ this._fields.delete(name);
54
+ this.requestUpdate();
55
+ this.dispatchEvent(
56
+ new CustomEvent("pd-form-change", {
57
+ detail: {
58
+ overallValidity: this._getOverallValidity()
59
+ }
60
+ })
61
+ );
39
62
  }
40
63
  e.stopPropagation();
41
64
  };
@@ -89,6 +112,10 @@ let PdFormContainer = class extends PdBaseUI {
89
112
  "pd-form-element-register",
90
113
  this._onRegister
91
114
  );
115
+ this.addEventListener(
116
+ "pd-form-element-unregister",
117
+ this._onUnRegister
118
+ );
92
119
  this.addEventListener(
93
120
  "pd-form-element-change",
94
121
  this._onChange
@@ -108,6 +135,10 @@ let PdFormContainer = class extends PdBaseUI {
108
135
  "pd-form-element-register",
109
136
  this._onRegister
110
137
  );
138
+ this.removeEventListener(
139
+ "pd-form-element-unregister",
140
+ this._onUnRegister
141
+ );
111
142
  this.removeEventListener(
112
143
  "pd-form-element-change",
113
144
  this._onChange
@@ -125,7 +156,7 @@ let PdFormContainer = class extends PdBaseUI {
125
156
  return html`
126
157
  <form>
127
158
  <slot></slot>
128
- ${this.requiredFieldInfo ? this._renderValidationInfo() : ""}
159
+ ${this.requiredFieldInfo || this.commonError ? this._renderValidationInfo() : ""}
129
160
  </form>
130
161
  `;
131
162
  }
@@ -140,6 +171,9 @@ let PdFormContainer = class extends PdBaseUI {
140
171
  `;
141
172
  }
142
173
  _getOverallValidity() {
174
+ if (this._fields.size === 0) {
175
+ return false;
176
+ }
143
177
  for (const field of this._fields.values()) {
144
178
  if (field.invalid) {
145
179
  return false;
@@ -5,6 +5,9 @@ export declare class PdIconPanelButton extends PdBaseUI {
5
5
  buttonText: string;
6
6
  value?: string;
7
7
  panelButton: boolean;
8
+ loading: boolean;
9
+ disableOnClickTime: number;
10
+ private _timerDisabled;
8
11
  private _panelOpen;
9
12
  static styles: CSSResultGroup;
10
13
  connectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pd-icon-panel-button.d.ts","sourceRoot":"","sources":["../src/pd-icon-panel-button.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGhD,OAAO,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,qBACa,iBAAkB,SAAQ,QAAQ;IAE7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAQ;IAG1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,OAAO,CAAS;IAG7B,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAgB,MAAM,EAAE,cAAc,CAuIpC;IAEF,iBAAiB;IAKjB,oBAAoB;IAKpB,OAAO,CAAC,WAAW,CAEjB;IAGF,MAAM;IAgCN,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,YAAY;CAQrB"}
1
+ {"version":3,"file":"pd-icon-panel-button.d.ts","sourceRoot":"","sources":["../src/pd-icon-panel-button.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGhD,OAAO,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,qBACa,iBAAkB,SAAQ,QAAQ;IAE7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAQ;IAG1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,OAAO,CAAS;IAG7B,OAAO,EAAE,OAAO,CAAS;IAGzB,kBAAkB,EAAE,MAAM,CAAM;IAGhC,OAAO,CAAC,cAAc,CAAkB;IAGxC,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAgB,MAAM,EAAE,cAAc,CA+KpC;IAEF,iBAAiB;IAKjB,oBAAoB;IAKpB,OAAO,CAAC,WAAW,CAEjB;IAGF,MAAM;IAkCN,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;CAQrB"}
@@ -2,6 +2,7 @@ import { css, html } from "lit";
2
2
  import { property, state, customElement } from "lit/decorators.js";
3
3
  import "@progressive-development/pd-icon/pd-icon";
4
4
  import { PdBaseUI } from "./pd-base-ui.js";
5
+ import { PdColorStyles, PdFontStyles } from "@progressive-development/pd-shared-styles";
5
6
  var __defProp = Object.defineProperty;
6
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -17,6 +18,9 @@ let PdIconPanelButton = class extends PdBaseUI {
17
18
  super(...arguments);
18
19
  this.buttonText = "Ok";
19
20
  this.panelButton = false;
21
+ this.loading = false;
22
+ this.disableOnClickTime = -1;
23
+ this._timerDisabled = false;
20
24
  this._panelOpen = false;
21
25
  this._closePanel = () => {
22
26
  this._panelOpen = false;
@@ -40,13 +44,13 @@ let PdIconPanelButton = class extends PdBaseUI {
40
44
  @click="${this._buttonClicked}"
41
45
  @keydown="${this._onKeyDown}"
42
46
  >
43
- ${this.pdButtonIcon ? html`
44
- <pd-icon
45
- class="icon action-icon-color"
46
- icon="${this.pdButtonIcon}"
47
- activeIcon
48
- ></pd-icon>
49
- ` : ""}
47
+ ${this.loading ? html`<div class="loader"></div>` : this.pdButtonIcon ? html`
48
+ <pd-icon
49
+ class="icon action-icon-color"
50
+ icon="${this.pdButtonIcon}"
51
+ activeIcon
52
+ ></pd-icon>
53
+ ` : ""}
50
54
  <span>${this.buttonText}</span>
51
55
  </div>
52
56
 
@@ -70,6 +74,12 @@ let PdIconPanelButton = class extends PdBaseUI {
70
74
  if (this.panelButton) {
71
75
  this._togglePanel();
72
76
  } else {
77
+ if (this.disableOnClickTime > 0) {
78
+ this._timerDisabled = true;
79
+ window.setTimeout(() => {
80
+ this._timerDisabled = false;
81
+ }, this.disableOnClickTime);
82
+ }
73
83
  this.dispatchEvent(
74
84
  new CustomEvent("button-clicked", {
75
85
  detail: this.value,
@@ -89,14 +99,18 @@ let PdIconPanelButton = class extends PdBaseUI {
89
99
  }
90
100
  };
91
101
  PdIconPanelButton.styles = [
102
+ PdColorStyles,
103
+ PdFontStyles,
92
104
  css`
93
105
  :host {
94
106
  display: inline-block; /* Verhindert, dass :host die volle Breite bekommt */
95
107
  position: relative;
96
108
  width: var(--pd-icon-button-width, auto);
109
+ font-family: var(--pd-default-font-title-family);
97
110
  }
98
111
 
99
- :host([disabled]) {
112
+ :host([disabled]),
113
+ :host([_timerDisabled]) {
100
114
  pointer-events: none;
101
115
  }
102
116
 
@@ -106,14 +120,15 @@ PdIconPanelButton.styles = [
106
120
  --pd-icon-button-bg,
107
121
  #58a linear-gradient(hsla(0, 0%, 100%, 0.2), transparent)
108
122
  );
109
- background-color: var(--pd-icon-button-bgcol, #0c6fc5);
123
+ background-color: var(--pd-icon-button-bgcol, var(--pd-default-col));
110
124
  padding: 0.3em 0.8em;
111
- border: 1px solid var(--pd-icon-button-bordercol, rgba(0, 0, 0, 0.5));
125
+ border: 1px solid
126
+ var(--pd-icon-button-bordercol, var(--pd-default-dark-col));
112
127
  border-radius: var(--pd-icon-button-border-radius, 0.2em);
113
128
  transition: background-color 0.3s ease;
114
- --pd-icon-size: 20px;
129
+ --pd-icon-size: 24px;
115
130
  color: var(--pd-icon-button-txtcol, white);
116
- text-shadow: 0 - 0.05em 0.05em rgba(0, 0, 0, 0.5);
131
+ text-shadow: 0 -0.05em 0.05em rgba(0, 0, 0, 0.5);
117
132
  font-size: var(--pd-icon-button-font-size, 125%);
118
133
  line-height: var(--pd-icon-button-line-height, 1.5);
119
134
  height: var(--pd-icon-button-height, auto);
@@ -123,31 +138,43 @@ PdIconPanelButton.styles = [
123
138
  text-align: center;
124
139
  }
125
140
 
126
- :host(:not([disabled])) .icon-button-style:hover {
127
- background-color: var(--pd-icon-button-bgcol-hover, #fdae03f3);
141
+ :host(:not([disabled]):not([_timerDisabled])) .icon-button-style:hover {
142
+ background-color: var(
143
+ --pd-icon-button-bgcol-hover,
144
+ var(--pd-default-hover-col)
145
+ );
128
146
  cursor: pointer;
129
147
  }
130
148
 
131
- :host([disabled]) .icon-button-style {
149
+ :host([disabled]) .icon-button-style,
150
+ :host([_timerDisabled]) .icon-button-style {
132
151
  background: linear-gradient(
133
152
  to bottom,
134
153
  #e0e0e0,
135
154
  #c4c4c4
136
155
  ); /* Matte, deaktivierte Optik */
137
- color: #696868; /* Text weniger dominant */
138
- border-color: #b0b0b0; /* Weniger Kontrast */
156
+ color: var(--pd-default-disabled-dark-col);
157
+ border-color: var(--pd-default-disabled-col);
139
158
  cursor: not-allowed;
140
159
  opacity: 0.6; /* Leichter "inaktiv"-Effekt */
141
- text-shadow: none; /* Kein 3D-Effekt */
160
+ text-shadow: none;
142
161
  }
143
162
 
144
- :host(:not([disabled])[primary]) .icon-button-style {
145
- background-color: var(--pd-icon-button-primary-bgcol, #044176);
146
- color: var(--pd-icon-button-primary-txtcol, white);
163
+ :host(:not([disabled]):not([_timerDisabled])[primary])
164
+ .icon-button-style {
165
+ background-color: var(
166
+ --pd-icon-button-primary-bgcol,
167
+ var(--pd-secondary-col)
168
+ );
169
+ color: var(
170
+ --pd-icon-button-primary-txtcol,
171
+ var(--pd-default-darkest-col)
172
+ );
147
173
  }
148
174
 
149
- :host(:not([disabled])[primary]) .icon-button-style:hover {
150
- background-color: var(--pd-icon-button-primary-bgcol-hover, #fdae03f3);
175
+ :host(:not([disabled]):not([_timerDisabled])[primary])
176
+ .icon-button-style:hover {
177
+ background-color: var(--pd-secondary-dark-col);
151
178
  cursor: pointer;
152
179
  }
153
180
 
@@ -157,7 +184,10 @@ PdIconPanelButton.styles = [
157
184
  min-width: 120%; /* Panel wird etwas breiter als der Button */
158
185
  max-width: 300px; /* Optional: Maximale Breite */
159
186
  transform: scaleY(0);
160
- background: var(--pd-panel-bg, white);
187
+ background: var(
188
+ --pd-icon-button-panel-bg-col,
189
+ var(--pd-default-bg-col)
190
+ );
161
191
  border-radius: 5px;
162
192
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
163
193
  transition:
@@ -183,7 +213,7 @@ PdIconPanelButton.styles = [
183
213
  right: 5px;
184
214
  background: transparent;
185
215
  border: none;
186
- color: #555;
216
+ color: var(--pd-default-dark-col);
187
217
  font-size: 1.2rem;
188
218
  cursor: pointer;
189
219
  padding: 5px;
@@ -192,7 +222,7 @@ PdIconPanelButton.styles = [
192
222
  }
193
223
 
194
224
  .close-button:hover {
195
- color: black;
225
+ color: var(--pd-default-darkest-col);
196
226
  }
197
227
 
198
228
  /* Standard (nach unten öffnend, linksbündig) */
@@ -222,6 +252,26 @@ PdIconPanelButton.styles = [
222
252
  bottom: 100%; /* Panel öffnet sich nach oben */
223
253
  transform-origin: bottom right;
224
254
  }
255
+
256
+ .loader {
257
+ border: 12px solid var(--pd-secondary-col);
258
+ border-top: 12px solid var(--pd-secondary-light-col);
259
+ border-radius: 50%;
260
+ width: 12px;
261
+ height: 12px;
262
+ animation: spin 2s linear infinite;
263
+
264
+ margin-right: 1rem;
265
+ }
266
+
267
+ @keyframes spin {
268
+ 0% {
269
+ transform: rotate(0deg);
270
+ }
271
+ 100% {
272
+ transform: rotate(360deg);
273
+ }
274
+ }
225
275
  `
226
276
  ];
227
277
  __decorateClass([
@@ -236,6 +286,15 @@ __decorateClass([
236
286
  __decorateClass([
237
287
  property({ type: Boolean })
238
288
  ], PdIconPanelButton.prototype, "panelButton", 2);
289
+ __decorateClass([
290
+ property({ type: Boolean, reflect: true })
291
+ ], PdIconPanelButton.prototype, "loading", 2);
292
+ __decorateClass([
293
+ property({ type: Number })
294
+ ], PdIconPanelButton.prototype, "disableOnClickTime", 2);
295
+ __decorateClass([
296
+ property({ type: Boolean, reflect: true })
297
+ ], PdIconPanelButton.prototype, "_timerDisabled", 2);
239
298
  __decorateClass([
240
299
  state()
241
300
  ], PdIconPanelButton.prototype, "_panelOpen", 2);
@@ -8,5 +8,6 @@ export declare class PdRadioGroup extends PdBaseUIInput {
8
8
  private _onInternalFocus;
9
9
  private _onInternalChange;
10
10
  private _onInternalRegister;
11
+ private _onInternalUnRegister;
11
12
  }
12
13
  //# sourceMappingURL=pd-radio-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pd-radio-group.d.ts","sourceRoot":"","sources":["../src/pd-radio-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,qBACa,YAAa,SAAQ,aAAa;IAC7C,OAAgB,MAAM,EAAE,cAAc,CAmBpC;IAEO,YAAY,IAAI,IAAI;IAuBpB,MAAM;IAmBf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,mBAAmB;CAsB5B"}
1
+ {"version":3,"file":"pd-radio-group.d.ts","sourceRoot":"","sources":["../src/pd-radio-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,qBACa,YAAa,SAAQ,aAAa;IAC7C,OAAgB,MAAM,EAAE,cAAc,CAmBpC;IAEO,YAAY,IAAI,IAAI;IA2BpB,MAAM;IAmBf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;CAmB9B"}
@@ -13,6 +13,10 @@ var __decorateClass = (decorators, target, key, kind) => {
13
13
  let PdRadioGroup = class extends PdBaseUIInput {
14
14
  firstUpdated() {
15
15
  this.addEventListener("pd-form-element-register", this._onInternalRegister);
16
+ this.addEventListener(
17
+ "pd-form-element-unregister",
18
+ this._onInternalUnRegister
19
+ );
16
20
  this.addEventListener("pd-form-element-change", this._onInternalChange);
17
21
  this.addEventListener("pd-form-element-focus", this._onInternalFocus);
18
22
  this.addEventListener("pd-form-element-blur", this._onInternalBlur);
@@ -67,6 +71,11 @@ let PdRadioGroup = class extends PdBaseUIInput {
67
71
  }
68
72
  }
69
73
  }
74
+ _onInternalUnRegister(e) {
75
+ if (e.target !== this) {
76
+ e.stopPropagation();
77
+ }
78
+ }
70
79
  /*
71
80
  public reset(): void {
72
81
  const checkboxes = this.querySelectorAll("pd-checkbox");
@@ -13,12 +13,15 @@ declare const meta: {
13
13
  control: "boolean";
14
14
  };
15
15
  };
16
+ tags: string[];
16
17
  };
17
18
  export default meta;
18
19
  type Story = StoryObj;
19
20
  export declare const DefaultButton: Story;
20
21
  export declare const DefaulIcontButton: Story;
21
22
  export declare const DefaulIcontButtonDisabled: Story;
23
+ export declare const DefaulIcontButtonTimerDisabled: Story;
24
+ export declare const DefaulIcontButtonLoading: Story;
22
25
  export declare const DefaulIcontButtonPrimary: Story;
23
26
  export declare const DefaulIcontButtonPrimaryDisabled: Story;
24
27
  export declare const DefaulTextIcontButton: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"pd-icon-button.stories.d.ts","sourceRoot":"","sources":["../../src/stories/pd-icon-button.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,4BAA4B,CAAC;AAGpC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;CAoBM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAGtB,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,KAO/B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAQvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAQtC,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,KAS9C,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,KAMnC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,KAgBpC,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,KAiBzC,CAAC;AAGF,eAAO,MAAM,wBAAwB,EAAE,KAiBtC,CAAC;AAGF,eAAO,MAAM,6BAA6B,EAAE,KAkB3C,CAAC"}
1
+ {"version":3,"file":"pd-icon-button.stories.d.ts","sourceRoot":"","sources":["../../src/stories/pd-icon-button.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,4BAA4B,CAAC;AAGpC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;CAuBM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAGtB,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,KAO/B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAQvC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,KAQ5C,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAQtC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAQtC,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,KAS9C,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,KAMnC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,KAgBpC,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,KAiBzC,CAAC;AAGF,eAAO,MAAM,wBAAwB,EAAE,KAiBtC,CAAC;AAGF,eAAO,MAAM,6BAA6B,EAAE,KAkB3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progressive-development/pd-forms",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "description": "Webcomponent pd-forms for rendering form input elements.",
5
5
  "author": "PD Progressive Development",
6
6
  "license": "SEE LICENSE IN LICENSE",