@hotstaq/admin-panel 0.4.0 → 0.4.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.
@@ -1,40 +1,41 @@
1
1
  import { HotStaq, HotAPI, HotComponent, HotComponentOutput } from "hotstaq";
2
2
  /**
3
- * Inline collapsible "Add" panel. Replaces the modal opened by
4
- * <admin-edit hot-type="add">. Built on Bootstrap's collapse so it
5
- * slides down below a trigger button without overlaying the page.
3
+ * Self-contained inline add form. Replaces the modal opened by
4
+ * <admin-edit hot-type="add"> with a Bootstrap-collapse card that
5
+ * lives directly on the page header carries the "+ Add" toggle,
6
+ * body holds the form fields. No cross-component DOM injection.
6
7
  *
7
- * Pairs with <admin-card-table>: the table's "+ Add" button toggles
8
- * this panel via Bootstrap's data-bs-toggle="collapse" data-bs-target.
9
- * Slot for form fields lives at `hot-place-here name="panelBody"`.
8
+ * Place this above an <admin-card-table>; when the user clicks the
9
+ * header toggle, the form panel slides down. On Save, the paired
10
+ * table is asked to refresh via `attached_list`.
10
11
  *
11
12
  * Usage:
12
- * <admin-add-panel name="bankAccountsAdd" hot-title="Add bank account"
13
- * hot-onsave="<(values) => {
14
- * const r = await Hot.jsonRequest(`${config.baseUrl}/v1/bank_accounts/create`,
15
- * { bankAccount: values }, '${jwtToken}');
16
- * if (r && r.error) { alertError(r.error); return false; }
17
- * }Ra>"
18
- * hot-attached_list="bankAccountsList">
13
+ * <admin-add-panel name="bankAccountsAdd"
14
+ * hot-title="Add a bank account"
15
+ * hot-attached_list="bankAccountsList"
16
+ * hot-add_text="+ Add bank account"
17
+ * hot-button_title="Create"
18
+ * hot-onsave="<(values) => {...}Ra>">
19
19
  * <admin-form-field hot-field="name" hot-label="Name" hot-required="1"
20
20
  * hot-col="col-md-6"></admin-form-field>
21
- * ...
21
+ * <admin-form-field hot-field="bankSyncAPIType" hot-label="Sync type"
22
+ * hot-control="select"
23
+ * hot-options="paypal_webhooks:PayPal Webhooks"
24
+ * hot-col="col-md-6"></admin-form-field>
22
25
  * </admin-add-panel>
23
26
  */
24
27
  export declare class AdminAddPanel extends HotComponent {
25
- /** Title shown at the top of the panel. */
28
+ /** Title shown in the card header (next to the toggle button). */
26
29
  title: string;
27
30
  /** Submit button label. */
28
31
  button_title: string;
29
- /** Cancel button label. Empty disables the cancel button. */
32
+ /** Cancel button label. Empty hides the cancel button. */
30
33
  cancel_text: string;
31
- /** Optional id of the related <admin-card-table>; the toggle button gets injected into its header. */
34
+ /** Optional id of the partner <admin-card-table>; refreshList() is called after a successful save. */
32
35
  attached_list: string;
33
- /** Where to render the toggle button (a hot-place-here name on the page). Leave blank when attached_list is set. */
34
- add_place_here: string;
35
- /** Text shown on the toggle button. */
36
+ /** Text shown on the header toggle button. */
36
37
  add_text: string;
37
- /** When set to "1" / "true", panel starts expanded. */
38
+ /** "1" / "true" panel starts expanded. */
38
39
  start_open: string;
39
40
  /** What to run when the user clicks Save. Receives a values object built from hot-field inputs. Return false to keep the panel open. */
40
41
  onsave: (values: any) => Promise<boolean | void>;
@@ -42,20 +43,13 @@ export declare class AdminAddPanel extends HotComponent {
42
43
  protected formId: string;
43
44
  constructor(copy: HotComponent | HotStaq, api: HotAPI);
44
45
  /**
45
- * Wires the submit + cancel handlers after the DOM is in place.
46
- * Browsers handle the collapse open/close via Bootstrap data-attrs
47
- * on the toggle button — we don't need to manage that ourselves.
46
+ * Wire submit + cancel handlers after the DOM is in place.
47
+ * Bootstrap's data-bs-toggle handles open/close automatically.
48
48
  */
49
49
  onPostPlace(parentHtmlElement: HTMLElement, htmlElement: HTMLElement): HTMLElement;
50
- /** Read every hot-field-marked input inside the panel into a plain object. */
51
- protected collectFieldValues(panel: HTMLElement): any;
52
- protected resetFields(panel: HTMLElement): void;
50
+ protected collectFieldValues(root: HTMLElement): any;
51
+ protected resetFields(root: HTMLElement): void;
53
52
  protected collapsePanel(): void;
54
- /**
55
- * Best-effort refresh of the paired <admin-card-table>. The table
56
- * exposes a `refreshList` method on the rendered element when its
57
- * data is loaded; calling it re-fetches without a page reload.
58
- */
59
53
  protected refreshAttachedList(): void;
60
54
  output(): string | HotComponentOutput[];
61
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"admin-add-panel.d.ts","sourceRoot":"","sources":["../../src/components/admin-add-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAO,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAE9C,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,aAAa,EAAE,MAAM,CAAC;IACtB,oHAAoH;IACpH,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,wIAAwI;IACxI,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAEjD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE,YAAY,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM;IAetD;;;;OAIG;IACH,WAAW,CAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAsDnF,8EAA8E;IAC9E,SAAS,CAAC,kBAAkB,CAAE,KAAK,EAAE,WAAW,GAAG,GAAG;IAoBtD,SAAS,CAAC,WAAW,CAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAYhD,SAAS,CAAC,aAAa,IAAK,IAAI;IAYhC;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAK,IAAI;IAQtC,MAAM,IAAK,MAAM,GAAG,kBAAkB,EAAE;CAqDxC"}
1
+ {"version":3,"file":"admin-add-panel.d.ts","sourceRoot":"","sources":["../../src/components/admin-add-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAO,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAE9C,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,wIAAwI;IACxI,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAEjD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE,YAAY,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM;IActD;;;OAGG;IACH,WAAW,CAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAsDnF,SAAS,CAAC,kBAAkB,CAAE,IAAI,EAAE,WAAW,GAAG,GAAG;IAoBrD,SAAS,CAAC,WAAW,CAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAY/C,SAAS,CAAC,aAAa,IAAK,IAAI;IAShC,SAAS,CAAC,mBAAmB,IAAK,IAAI;IAQtC,MAAM,IAAK,MAAM,GAAG,kBAAkB,EAAE;CAyCxC"}
@@ -12,25 +12,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AdminAddPanel = void 0;
13
13
  const hotstaq_1 = require("hotstaq");
14
14
  /**
15
- * Inline collapsible "Add" panel. Replaces the modal opened by
16
- * <admin-edit hot-type="add">. Built on Bootstrap's collapse so it
17
- * slides down below a trigger button without overlaying the page.
15
+ * Self-contained inline add form. Replaces the modal opened by
16
+ * <admin-edit hot-type="add"> with a Bootstrap-collapse card that
17
+ * lives directly on the page header carries the "+ Add" toggle,
18
+ * body holds the form fields. No cross-component DOM injection.
18
19
  *
19
- * Pairs with <admin-card-table>: the table's "+ Add" button toggles
20
- * this panel via Bootstrap's data-bs-toggle="collapse" data-bs-target.
21
- * Slot for form fields lives at `hot-place-here name="panelBody"`.
20
+ * Place this above an <admin-card-table>; when the user clicks the
21
+ * header toggle, the form panel slides down. On Save, the paired
22
+ * table is asked to refresh via `attached_list`.
22
23
  *
23
24
  * Usage:
24
- * <admin-add-panel name="bankAccountsAdd" hot-title="Add bank account"
25
- * hot-onsave="<(values) => {
26
- * const r = await Hot.jsonRequest(`${config.baseUrl}/v1/bank_accounts/create`,
27
- * { bankAccount: values }, '${jwtToken}');
28
- * if (r && r.error) { alertError(r.error); return false; }
29
- * }Ra>"
30
- * hot-attached_list="bankAccountsList">
25
+ * <admin-add-panel name="bankAccountsAdd"
26
+ * hot-title="Add a bank account"
27
+ * hot-attached_list="bankAccountsList"
28
+ * hot-add_text="+ Add bank account"
29
+ * hot-button_title="Create"
30
+ * hot-onsave="<(values) => {...}Ra>">
31
31
  * <admin-form-field hot-field="name" hot-label="Name" hot-required="1"
32
32
  * hot-col="col-md-6"></admin-form-field>
33
- * ...
33
+ * <admin-form-field hot-field="bankSyncAPIType" hot-label="Sync type"
34
+ * hot-control="select"
35
+ * hot-options="paypal_webhooks:PayPal Webhooks"
36
+ * hot-col="col-md-6"></admin-form-field>
34
37
  * </admin-add-panel>
35
38
  */
36
39
  class AdminAddPanel extends hotstaq_1.HotComponent {
@@ -41,34 +44,32 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
41
44
  this.button_title = "Save";
42
45
  this.cancel_text = "Cancel";
43
46
  this.attached_list = "";
44
- this.add_place_here = "";
45
47
  this.add_text = "+ Add";
46
48
  this.start_open = "0";
47
49
  this.onsave = null;
48
50
  }
49
51
  /**
50
- * Wires the submit + cancel handlers after the DOM is in place.
51
- * Browsers handle the collapse open/close via Bootstrap data-attrs
52
- * on the toggle button — we don't need to manage that ourselves.
52
+ * Wire submit + cancel handlers after the DOM is in place.
53
+ * Bootstrap's data-bs-toggle handles open/close automatically.
53
54
  */
54
55
  onPostPlace(parentHtmlElement, htmlElement) {
55
56
  const self = this;
56
- const panel = document.getElementById(this.panelId);
57
- if (panel == null)
57
+ const root = document.getElementById(this.name);
58
+ if (root == null)
58
59
  return (null);
59
- const submitBtn = panel.querySelector(`.fl-add-panel-submit`);
60
- const cancelBtn = panel.querySelector(`.fl-add-panel-cancel`);
60
+ const submitBtn = root.querySelector(".fl-add-panel-submit");
61
+ const cancelBtn = root.querySelector(".fl-add-panel-cancel");
61
62
  if (submitBtn != null) {
62
63
  submitBtn.addEventListener("click", (e) => __awaiter(this, void 0, void 0, function* () {
63
64
  e.preventDefault();
64
- const values = self.collectFieldValues(panel);
65
+ const values = self.collectFieldValues(root);
65
66
  submitBtn.disabled = true;
66
67
  try {
67
68
  let keepOpen = false;
68
69
  if (typeof self.onsave === "function")
69
70
  keepOpen = yield self.onsave(values);
70
71
  if (keepOpen === false || keepOpen == null) {
71
- self.resetFields(panel);
72
+ self.resetFields(root);
72
73
  self.collapsePanel();
73
74
  self.refreshAttachedList();
74
75
  }
@@ -84,16 +85,15 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
84
85
  if (cancelBtn != null) {
85
86
  cancelBtn.addEventListener("click", (e) => {
86
87
  e.preventDefault();
87
- self.resetFields(panel);
88
+ self.resetFields(root);
88
89
  self.collapsePanel();
89
90
  });
90
91
  }
91
92
  return (null);
92
93
  }
93
- /** Read every hot-field-marked input inside the panel into a plain object. */
94
- collectFieldValues(panel) {
94
+ collectFieldValues(root) {
95
95
  const out = {};
96
- const nodes = panel.querySelectorAll("[hot-field]");
96
+ const nodes = root.querySelectorAll("[hot-field]");
97
97
  for (let i = 0; i < nodes.length; i++) {
98
98
  const el = nodes[i];
99
99
  const field = el.getAttribute("hot-field");
@@ -108,8 +108,8 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
108
108
  }
109
109
  return (out);
110
110
  }
111
- resetFields(panel) {
112
- const nodes = panel.querySelectorAll("[hot-field]");
111
+ resetFields(root) {
112
+ const nodes = root.querySelectorAll("[hot-field]");
113
113
  for (let i = 0; i < nodes.length; i++) {
114
114
  const el = nodes[i];
115
115
  if (el instanceof HTMLInputElement && el.type === "checkbox")
@@ -124,18 +124,10 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
124
124
  const panel = document.getElementById(this.panelId);
125
125
  if (panel == null)
126
126
  return;
127
- // Bootstrap collapse hide — works without importing Bootstrap JS
128
- // directly by toggling the .show class and aria-expanded on any
129
- // trigger pointed at us.
130
127
  panel.classList.remove("show");
131
128
  const triggers = document.querySelectorAll(`[data-bs-target="#${this.panelId}"]`);
132
129
  triggers.forEach(t => t.setAttribute("aria-expanded", "false"));
133
130
  }
134
- /**
135
- * Best-effort refresh of the paired <admin-card-table>. The table
136
- * exposes a `refreshList` method on the rendered element when its
137
- * data is loaded; calling it re-fetches without a page reload.
138
- */
139
131
  refreshAttachedList() {
140
132
  if (this.attached_list === "")
141
133
  return;
@@ -149,42 +141,36 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
149
141
  this.panelId = `${this.name}Panel`;
150
142
  this.formId = `${this.name}Form`;
151
143
  const showClass = (this.start_open === "1" || this.start_open === "true") ? " show" : "";
152
- const titleHtml = this.title ? `<h2 class="h6 fl-add-panel-title mb-3">${this.title}</h2>` : "";
144
+ const ariaExp = showClass ? "true" : "false";
145
+ const titleHtml = this.title ? `<strong class="fl-add-panel-title">${this.title}</strong>` : `<span></span>`;
153
146
  const cancelHtml = this.cancel_text
154
147
  ? `<button type="button" class="btn btn-sm btn-link text-muted fl-add-panel-cancel">${this.cancel_text}</button>`
155
148
  : "";
156
- const panelHtml = `
157
- <div id="${this.panelId}" class="collapse fl-add-panel${showClass}">
158
- <div class="card-body border-top bg-body-tertiary fl-add-panel-body">
149
+ // Single self-contained card. Header has the toggle, body is the
150
+ // collapse panel containing the form. Bootstrap's data-bs-toggle
151
+ // drives the open/close — no JS wiring needed for that.
152
+ return (`
153
+ <div id="${this.name}" class="card fl-add-panel mb-3">
154
+ <div class="card-header d-flex justify-content-between align-items-center">
159
155
  ${titleHtml}
160
- <form id="${this.formId}" class="fl-add-panel-form">
161
- <div class="row g-2 align-items-end">
162
- <hot-place-here name="panelBody"></hot-place-here>
163
- </div>
164
- <div class="d-flex justify-content-end gap-2 mt-3">
165
- ${cancelHtml}
166
- <button type="submit" class="btn btn-sm btn-success fl-add-panel-submit">${this.button_title}</button>
167
- </div>
168
- </form>
156
+ <button type="button" class="btn btn-sm btn-primary fl-add-panel-toggle"
157
+ data-bs-toggle="collapse" data-bs-target="#${this.panelId}"
158
+ aria-expanded="${ariaExp}" aria-controls="${this.panelId}">${this.add_text}</button>
169
159
  </div>
170
- </div>`;
171
- const outputs = [{ html: panelHtml, documentSelector: "body" }];
172
- // If a partner card-table is named, inject the toggle button into
173
- // its header slot. Otherwise honour an explicit add_place_here.
174
- const toggleBtn = `<button type="button" class="btn btn-sm btn-primary fl-add-panel-toggle" data-bs-toggle="collapse" data-bs-target="#${this.panelId}" aria-expanded="${showClass ? "true" : "false"}" aria-controls="${this.panelId}">${this.add_text}</button>`;
175
- if (this.attached_list !== "") {
176
- outputs.push({
177
- html: toggleBtn,
178
- documentSelector: `[data-card-table-add-slot="${this.attached_list}"]`
179
- });
180
- }
181
- else if (this.add_place_here !== "") {
182
- outputs.push({
183
- html: toggleBtn,
184
- documentSelector: `hot-place-here[name="${this.add_place_here}"]`
185
- });
186
- }
187
- return (outputs);
160
+ <div id="${this.panelId}" class="collapse fl-add-panel-body${showClass}">
161
+ <div class="card-body border-top">
162
+ <form id="${this.formId}" class="fl-add-panel-form">
163
+ <div class="row g-2 align-items-end">
164
+ <hot-place-here name="panelBody"></hot-place-here>
165
+ </div>
166
+ <div class="d-flex justify-content-end gap-2 mt-3">
167
+ ${cancelHtml}
168
+ <button type="submit" class="btn btn-sm btn-success fl-add-panel-submit">${this.button_title}</button>
169
+ </div>
170
+ </form>
171
+ </div>
172
+ </div>
173
+ </div>`);
188
174
  }
189
175
  }
190
176
  exports.AdminAddPanel = AdminAddPanel;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-add-panel.js","sourceRoot":"","sources":["../../src/components/admin-add-panel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-add-panel.js","sourceRoot":"","sources":["../../src/components/admin-add-panel.ts"],"names":[],"mappings":"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"}