@hotstaq/admin-panel 0.4.0 → 0.4.2

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.
@@ -32,10 +32,12 @@
32
32
 
33
33
  /* ---- admin-card-table ---- */
34
34
  .fl-card-table {
35
+ background: var(--flap-surface);
35
36
  border-color: var(--flap-border);
37
+ color: var(--flap-text);
36
38
  }
37
39
 
38
- .fl-card-table .card-header {
40
+ .fl-card-table > .card-header {
39
41
  background: var(--flap-surface-2);
40
42
  border-bottom: 1px solid var(--flap-border);
41
43
  font-weight: 600;
@@ -99,9 +101,22 @@
99
101
  }
100
102
 
101
103
  /* ---- admin-add-panel ---- */
102
- .fl-add-panel-body {
103
- border-top: 1px solid var(--flap-border);
104
+ .fl-add-panel {
105
+ background: var(--flap-surface);
106
+ border-color: var(--flap-border);
107
+ color: var(--flap-text);
108
+ }
109
+
110
+ .fl-add-panel > .card-header {
104
111
  background: var(--flap-surface-2);
112
+ border-bottom: 1px solid var(--flap-border);
113
+ color: var(--flap-text);
114
+ }
115
+
116
+ .fl-add-panel-body .card-body {
117
+ background: var(--flap-surface);
118
+ color: var(--flap-text);
119
+ border-top: 1px solid var(--flap-border);
105
120
  }
106
121
 
107
122
  .fl-add-panel-title {
@@ -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,19 @@ 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
+ *
49
+ * Also relocates any child elements (admin-form-fields, etc.) that
50
+ * the framework appended to the card root into the collapse panel's
51
+ * form-row. Without this, children would render OUTSIDE the
52
+ * collapsible body (siblings of the card-header and the collapse
53
+ * div), visible on the page even when the panel is collapsed.
48
54
  */
49
55
  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;
56
+ protected collectFieldValues(root: HTMLElement): any;
57
+ protected resetFields(root: HTMLElement): void;
53
58
  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
59
  protected refreshAttachedList(): void;
60
60
  output(): string | HotComponentOutput[];
61
61
  }
@@ -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;;;;;;;;;OASG;IACH,WAAW,CAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW;IAqEnF,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,51 @@ 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.
54
+ *
55
+ * Also relocates any child elements (admin-form-fields, etc.) that
56
+ * the framework appended to the card root into the collapse panel's
57
+ * form-row. Without this, children would render OUTSIDE the
58
+ * collapsible body (siblings of the card-header and the collapse
59
+ * div), visible on the page even when the panel is collapsed.
53
60
  */
54
61
  onPostPlace(parentHtmlElement, htmlElement) {
55
62
  const self = this;
56
- const panel = document.getElementById(this.panelId);
57
- if (panel == null)
63
+ const root = document.getElementById(this.name);
64
+ if (root == null)
58
65
  return (null);
59
- const submitBtn = panel.querySelector(`.fl-add-panel-submit`);
60
- const cancelBtn = panel.querySelector(`.fl-add-panel-cancel`);
66
+ const submitBtn = root.querySelector(".fl-add-panel-submit");
67
+ const cancelBtn = root.querySelector(".fl-add-panel-cancel");
68
+ // Auto-relocate stray children into the form-row. The framework
69
+ // appends children that lack `hot-place-parent` directly under
70
+ // compHtmlElement2 (the card root). Move them inside the form.
71
+ const row = root.querySelector(".fl-add-panel-form .row");
72
+ const collapse = document.getElementById(this.panelId);
73
+ const header = root.querySelector(":scope > .card-header");
74
+ if (row != null) {
75
+ Array.from(root.children).forEach((child) => {
76
+ if (child === header || child === collapse)
77
+ return;
78
+ row.appendChild(child);
79
+ });
80
+ }
61
81
  if (submitBtn != null) {
62
82
  submitBtn.addEventListener("click", (e) => __awaiter(this, void 0, void 0, function* () {
63
83
  e.preventDefault();
64
- const values = self.collectFieldValues(panel);
84
+ const values = self.collectFieldValues(root);
65
85
  submitBtn.disabled = true;
66
86
  try {
67
87
  let keepOpen = false;
68
88
  if (typeof self.onsave === "function")
69
89
  keepOpen = yield self.onsave(values);
70
90
  if (keepOpen === false || keepOpen == null) {
71
- self.resetFields(panel);
91
+ self.resetFields(root);
72
92
  self.collapsePanel();
73
93
  self.refreshAttachedList();
74
94
  }
@@ -84,16 +104,15 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
84
104
  if (cancelBtn != null) {
85
105
  cancelBtn.addEventListener("click", (e) => {
86
106
  e.preventDefault();
87
- self.resetFields(panel);
107
+ self.resetFields(root);
88
108
  self.collapsePanel();
89
109
  });
90
110
  }
91
111
  return (null);
92
112
  }
93
- /** Read every hot-field-marked input inside the panel into a plain object. */
94
- collectFieldValues(panel) {
113
+ collectFieldValues(root) {
95
114
  const out = {};
96
- const nodes = panel.querySelectorAll("[hot-field]");
115
+ const nodes = root.querySelectorAll("[hot-field]");
97
116
  for (let i = 0; i < nodes.length; i++) {
98
117
  const el = nodes[i];
99
118
  const field = el.getAttribute("hot-field");
@@ -108,8 +127,8 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
108
127
  }
109
128
  return (out);
110
129
  }
111
- resetFields(panel) {
112
- const nodes = panel.querySelectorAll("[hot-field]");
130
+ resetFields(root) {
131
+ const nodes = root.querySelectorAll("[hot-field]");
113
132
  for (let i = 0; i < nodes.length; i++) {
114
133
  const el = nodes[i];
115
134
  if (el instanceof HTMLInputElement && el.type === "checkbox")
@@ -124,18 +143,10 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
124
143
  const panel = document.getElementById(this.panelId);
125
144
  if (panel == null)
126
145
  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
146
  panel.classList.remove("show");
131
147
  const triggers = document.querySelectorAll(`[data-bs-target="#${this.panelId}"]`);
132
148
  triggers.forEach(t => t.setAttribute("aria-expanded", "false"));
133
149
  }
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
150
  refreshAttachedList() {
140
151
  if (this.attached_list === "")
141
152
  return;
@@ -149,42 +160,36 @@ class AdminAddPanel extends hotstaq_1.HotComponent {
149
160
  this.panelId = `${this.name}Panel`;
150
161
  this.formId = `${this.name}Form`;
151
162
  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>` : "";
163
+ const ariaExp = showClass ? "true" : "false";
164
+ const titleHtml = this.title ? `<strong class="fl-add-panel-title">${this.title}</strong>` : `<span></span>`;
153
165
  const cancelHtml = this.cancel_text
154
166
  ? `<button type="button" class="btn btn-sm btn-link text-muted fl-add-panel-cancel">${this.cancel_text}</button>`
155
167
  : "";
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">
168
+ // Single self-contained card. Header has the toggle, body is the
169
+ // collapse panel containing the form. Bootstrap's data-bs-toggle
170
+ // drives the open/close — no JS wiring needed for that.
171
+ return (`
172
+ <div id="${this.name}" class="card fl-add-panel mb-3">
173
+ <div class="card-header d-flex justify-content-between align-items-center">
159
174
  ${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>
175
+ <button type="button" class="btn btn-sm btn-primary fl-add-panel-toggle"
176
+ data-bs-toggle="collapse" data-bs-target="#${this.panelId}"
177
+ aria-expanded="${ariaExp}" aria-controls="${this.panelId}">${this.add_text}</button>
169
178
  </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);
179
+ <div id="${this.panelId}" class="collapse fl-add-panel-body${showClass}">
180
+ <div class="card-body border-top">
181
+ <form id="${this.formId}" class="fl-add-panel-form">
182
+ <div class="row g-2 align-items-end">
183
+ <hot-place-here name="panelBody"></hot-place-here>
184
+ </div>
185
+ <div class="d-flex justify-content-end gap-2 mt-3">
186
+ ${cancelHtml}
187
+ <button type="submit" class="btn btn-sm btn-success fl-add-panel-submit">${this.button_title}</button>
188
+ </div>
189
+ </form>
190
+ </div>
191
+ </div>
192
+ </div>`);
188
193
  }
189
194
  }
190
195
  exports.AdminAddPanel = AdminAddPanel;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-add-panel.js","sourceRoot":"","sources":["../../src/components/admin-add-panel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAiF;AAEjF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,aAAc,SAAQ,sBAAY;IAsB9C,YAAa,IAA4B,EAAE,GAAW;QAErD,KAAK,CAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC,GAAG,GAAe,iBAAiB,CAAC;QACzC,IAAI,CAAC,KAAK,GAAa,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAM,MAAM,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAO,QAAQ,CAAC;QAChC,IAAI,CAAC,aAAa,GAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAU,OAAO,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAQ,GAAG,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAY,IAAI,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAE,iBAA8B,EAAE,WAAwB;QAEpE,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,KAAK,IAAI,IAAI;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QAEf,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAE,sBAAsB,CAA6B,CAAC;QAC3F,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAE,sBAAsB,CAA6B,CAAC;QAE3F,IAAI,SAAS,IAAI,IAAI,EACrB,CAAC;YACA,SAAS,CAAC,gBAAgB,CAAE,OAAO,EAAE,CAAO,CAAC,EAAE,EAAE;gBAE/C,CAAC,CAAC,cAAc,EAAG,CAAC;gBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAE,KAAK,CAAC,CAAC;gBAC/C,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC1B,IACA,CAAC;oBACA,IAAI,QAAQ,GAAQ,KAAK,CAAC;oBAC1B,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU;wBACpC,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAE,MAAM,CAAC,CAAC;oBAEvC,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,IAAI,IAAI,EAC1C,CAAC;wBACA,IAAI,CAAC,WAAW,CAAE,KAAK,CAAC,CAAC;wBACzB,IAAI,CAAC,aAAa,EAAG,CAAC;wBACtB,IAAI,CAAC,mBAAmB,EAAG,CAAC;oBAC7B,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,EACT,CAAC;oBACA,OAAO,CAAC,KAAK,CAAE,+BAA+B,EAAE,EAAE,CAAC,CAAC;gBACrD,CAAC;wBAED,CAAC;oBACA,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC5B,CAAC;YACF,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,EACrB,CAAC;YACA,SAAS,CAAC,gBAAgB,CAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBAEzC,CAAC,CAAC,cAAc,EAAG,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAE,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,aAAa,EAAG,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,8EAA8E;IACpE,kBAAkB,CAAE,KAAkB;QAE/C,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAE,aAAa,CAAC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EACrC,CAAC;YACA,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAA+D,CAAC;YAClF,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAE,WAAW,CAAC,CAAC;YAC5C,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;gBAAE,SAAS;YAE5C,IAAI,EAAE,YAAY,gBAAgB,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU;gBAC3D,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;iBACpB,IAAI,EAAE,YAAY,gBAAgB,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAC9D,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAE,EAAE,CAAC,KAAK,CAAC,CAAC;;gBAExD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QACxB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAES,WAAW,CAAE,KAAkB;QAExC,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAE,aAAa,CAAC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EACrC,CAAC;YACA,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAA+D,CAAC;YAClF,IAAI,EAAE,YAAY,gBAAgB,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU;gBAAE,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;iBAC5E,IAAI,EAAE,YAAY,iBAAiB;gBAAE,EAAE,CAAC,aAAa,GAAG,CAAC,CAAC;;gBAC1D,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAES,aAAa;QAEtB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO;QAC1B,iEAAiE;QACjE,gEAAgE;QAChE,yBAAyB;QACzB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAE,MAAM,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAE,qBAAqB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QACnF,QAAQ,CAAC,OAAO,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACO,mBAAmB;QAE5B,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE;YAAE,OAAO;QACtC,MAAM,IAAI,GAAQ,QAAQ,CAAC,cAAc,CAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU;YACzD,IAAI,CAAC,WAAW,EAAG,CAAC;IACtB,CAAC;IAED,MAAM;QAEL,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE;YACnB,MAAM,IAAI,KAAK,CAAE,mCAAmC,CAAC,CAAC;QAEvD,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC;QACnC,IAAI,CAAC,MAAM,GAAI,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC;QAElC,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,0CAA0C,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW;YAClC,CAAC,CAAC,oFAAoF,IAAI,CAAC,WAAW,WAAW;YACjH,CAAC,CAAC,EAAE,CAAC;QAEN,MAAM,SAAS,GAAG;cACN,IAAI,CAAC,OAAO,iCAAiC,SAAS;;OAE7D,SAAS;iBACC,IAAI,CAAC,MAAM;;;;;SAKnB,UAAU;kFAC+D,IAAI,CAAC,YAAY;;;;UAIzF,CAAC;QAET,MAAM,OAAO,GAAyB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtF,kEAAkE;QAClE,gEAAgE;QAChE,MAAM,SAAS,GAAG,uHAAuH,IAAI,CAAC,OAAO,oBAAoB,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,oBAAoB,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,WAAW,CAAC;QAEnQ,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAC7B,CAAC;YACA,OAAO,CAAC,IAAI,CAAE;gBACb,IAAI,EAAE,SAAS;gBACf,gBAAgB,EAAE,8BAA8B,IAAI,CAAC,aAAa,IAAI;aACtE,CAAC,CAAC;QACJ,CAAC;aACI,IAAI,IAAI,CAAC,cAAc,KAAK,EAAE,EACnC,CAAC;YACA,OAAO,CAAC,IAAI,CAAE;gBACb,IAAI,EAAE,SAAS;gBACf,gBAAgB,EAAE,wBAAwB,IAAI,CAAC,cAAc,IAAI;aACjE,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC;CACD;AA/MD,sCA+MC"}
1
+ {"version":3,"file":"admin-add-panel.js","sourceRoot":"","sources":["../../src/components/admin-add-panel.ts"],"names":[],"mappings":"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"}