@foxy.io/elements 1.23.0-beta.2 → 1.23.0-beta.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.
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +1 -1
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-api-browser.js +2 -3
- package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-card.js +1 -1
- package/dist/cdn/foxy-cart-form.js +1 -1
- package/dist/cdn/foxy-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-detail-card.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-card.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +1 -1
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-builder.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-discount-detail-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-downloadable-card.js +1 -1
- package/dist/cdn/foxy-downloadable-form.js +1 -1
- package/dist/cdn/foxy-email-template-card.js +1 -1
- package/dist/cdn/foxy-email-template-form.js +1 -1
- package/dist/cdn/foxy-error-entry-card.js +1 -1
- package/dist/cdn/foxy-form-dialog.js +1 -1
- package/dist/cdn/foxy-generate-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n-editor.js +2 -2
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-integration-card.js +1 -1
- package/dist/cdn/foxy-integration-form.js +1 -1
- package/dist/cdn/foxy-item-card.js +1 -1
- package/dist/cdn/foxy-item-category-card.js +1 -1
- package/dist/cdn/foxy-item-category-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +1 -1
- package/dist/cdn/foxy-item-option-card.js +1 -1
- package/dist/cdn/foxy-item-option-form.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +1 -1
- package/dist/cdn/foxy-reports-table.js +1 -1
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +1 -1
- package/dist/cdn/foxy-store-card.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +3 -3
- package/dist/cdn/foxy-subscription-settings-form.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-table.js +1 -1
- package/dist/cdn/foxy-tax-card.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-config-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-template-set-card.js +1 -1
- package/dist/cdn/foxy-template-set-form.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +1 -1
- package/dist/cdn/foxy-user-card.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/foxy-webhook-card.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/foxy-webhook-log-card.js +1 -1
- package/dist/cdn/foxy-webhook-status-card.js +1 -1
- package/dist/cdn/{shared-5570ac69.js → shared-03b39ec4.js} +1 -1
- package/dist/cdn/{shared-df1816e8.js → shared-0543c6e0.js} +1 -1
- package/dist/cdn/{shared-14bb06d4.js → shared-068480a3.js} +1 -1
- package/dist/cdn/{shared-049d80d0.js → shared-08ff9a8d.js} +1 -1
- package/dist/cdn/{shared-b39fce1b.js → shared-0c02b4ee.js} +1 -1
- package/dist/cdn/{shared-3d6f0788.js → shared-0dc1d012.js} +1 -1
- package/dist/cdn/{shared-04634a6f.js → shared-16b542bc.js} +1 -1
- package/dist/cdn/{shared-0dd25feb.js → shared-1e5292a1.js} +1 -1
- package/dist/cdn/{shared-faad86eb.js → shared-23923638.js} +1 -1
- package/dist/cdn/{shared-bed220d3.js → shared-29aa4bca.js} +1 -1
- package/dist/cdn/{shared-a7347e96.js → shared-380db651.js} +1 -1
- package/dist/cdn/{shared-7fd77eed.js → shared-39761436.js} +1 -1
- package/dist/cdn/{shared-07e32de2.js → shared-3a252ccd.js} +1 -1
- package/dist/cdn/{shared-491c9063.js → shared-3a82d3f5.js} +1 -1
- package/dist/cdn/{shared-bb226a47.js → shared-43520428.js} +1 -1
- package/dist/cdn/shared-49d978e1.js +1 -0
- package/dist/cdn/{shared-ac05532a.js → shared-4abfda9b.js} +1 -1
- package/dist/cdn/{shared-98eec370.js → shared-4c9f96ec.js} +1 -1
- package/dist/cdn/{shared-40638f2c.js → shared-4db2c7b1.js} +4 -4
- package/dist/cdn/{shared-f19f05e1.js → shared-53fee01f.js} +1 -1
- package/dist/cdn/{shared-50908853.js → shared-5dd31b4e.js} +1 -1
- package/dist/cdn/{shared-cf65fcc7.js → shared-61a510d8.js} +1 -1
- package/dist/cdn/{shared-0237bfae.js → shared-6b53ef85.js} +2 -2
- package/dist/cdn/{shared-163e5fdb.js → shared-6bfa699d.js} +1 -1
- package/dist/cdn/{shared-ab69c97b.js → shared-6eb7dc77.js} +1 -1
- package/dist/cdn/{shared-4494ebfa.js → shared-6f465111.js} +1 -1
- package/dist/cdn/{shared-ec3332b9.js → shared-6fb923d5.js} +1 -1
- package/dist/cdn/{shared-f0c8a5bd.js → shared-7a290f36.js} +1 -1
- package/dist/cdn/{shared-394c2425.js → shared-7bf46d6d.js} +1 -1
- package/dist/cdn/{shared-c7954521.js → shared-7c5754a4.js} +1 -1
- package/dist/cdn/{shared-f23627ae.js → shared-8349938a.js} +1 -1
- package/dist/cdn/{shared-af7cde22.js → shared-85bc54a6.js} +1 -1
- package/dist/cdn/{shared-d1c45954.js → shared-86768244.js} +1 -1
- package/dist/cdn/{shared-a959c0d9.js → shared-8b73191b.js} +1 -1
- package/dist/cdn/{shared-726c0b56.js → shared-9048c076.js} +1 -1
- package/dist/cdn/{shared-539cde4d.js → shared-939fc890.js} +1 -1
- package/dist/cdn/{shared-80792dc8.js → shared-9e60ef60.js} +1 -1
- package/dist/cdn/{shared-bbb8ec69.js → shared-a6518411.js} +1 -1
- package/dist/cdn/{shared-ffd03d7b.js → shared-ad396f3c.js} +1 -1
- package/dist/cdn/{shared-64f2d6de.js → shared-aeec3cab.js} +1 -1
- package/dist/cdn/{shared-00b50abf.js → shared-b88e35b7.js} +1 -1
- package/dist/cdn/{shared-bdd5c908.js → shared-b95ef318.js} +1 -1
- package/dist/cdn/{shared-d2384b7b.js → shared-bb009254.js} +1 -1
- package/dist/cdn/{shared-694297c2.js → shared-bd81cc08.js} +1 -1
- package/dist/cdn/{shared-8ac00abe.js → shared-c3c67413.js} +1 -1
- package/dist/cdn/{shared-27d23dfd.js → shared-c40d85dc.js} +1 -1
- package/dist/cdn/{shared-313a39ef.js → shared-ca58ef47.js} +1 -1
- package/dist/cdn/{shared-025cab8b.js → shared-cb6f2388.js} +1 -1
- package/dist/cdn/{shared-520be2e9.js → shared-cd096e97.js} +1 -1
- package/dist/cdn/{shared-1e55acbb.js → shared-d493355a.js} +1 -1
- package/dist/cdn/{shared-797b6161.js → shared-dcbaa1c5.js} +1 -1
- package/dist/cdn/{shared-acda8da2.js → shared-e28f16db.js} +1 -1
- package/dist/cdn/{shared-77a700fe.js → shared-e5c19ea3.js} +1 -1
- package/dist/cdn/shared-e6066f46.js +2 -0
- package/dist/cdn/{shared-e7ce4e47.js → shared-eb4b4597.js} +1 -1
- package/dist/cdn/{shared-b34bef61.js → shared-ee13d1a6.js} +1 -1
- package/dist/cdn/{shared-7c761c65.js → shared-f3f5e87e.js} +1 -1
- package/dist/cdn/{shared-3206f265.js → shared-fbfb0943.js} +1 -1
- package/dist/cdn/translations/api-browser/en.json +4 -0
- package/dist/cdn/translations/email-template-form/en.json +9 -7
- package/dist/cdn/translations/template-form/en.json +9 -7
- package/dist/elements/internal/InternalSourceControl/InternalSourceControl.d.ts +18 -0
- package/dist/elements/internal/InternalSourceControl/InternalSourceControl.js +160 -0
- package/dist/elements/internal/InternalSourceControl/InternalSourceControl.js.map +1 -0
- package/dist/elements/internal/InternalSourceControl/index.d.ts +3 -0
- package/dist/elements/internal/InternalSourceControl/index.js +5 -0
- package/dist/elements/internal/InternalSourceControl/index.js.map +1 -0
- package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.d.ts +0 -2
- package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js +27 -43
- package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js.map +1 -1
- package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.d.ts +1 -0
- package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.js +1 -0
- package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.d.ts +9 -7
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +66 -60
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/index.d.ts +1 -1
- package/dist/elements/public/EmailTemplateForm/index.js +1 -1
- package/dist/elements/public/EmailTemplateForm/index.js.map +1 -1
- package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.d.ts +0 -4
- package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js +66 -118
- package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js.map +1 -1
- package/dist/elements/public/TemplateConfigForm/index.d.ts +1 -1
- package/dist/elements/public/TemplateConfigForm/index.js +1 -1
- package/dist/elements/public/TemplateConfigForm/index.js.map +1 -1
- package/dist/elements/public/TemplateForm/TemplateForm.d.ts +4 -3
- package/dist/elements/public/TemplateForm/TemplateForm.js +49 -50
- package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
- package/dist/elements/public/TemplateForm/index.d.ts +1 -1
- package/dist/elements/public/TemplateForm/index.js +1 -1
- package/dist/elements/public/TemplateForm/index.js.map +1 -1
- package/dist/mixins/themeable.js +14 -4
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-44594184.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"cache": "
|
|
2
|
+
"cache": "Sync",
|
|
3
3
|
"cancel": "Cancel",
|
|
4
4
|
"create": "Create",
|
|
5
5
|
"date": "{{value, date}}",
|
|
@@ -10,12 +10,14 @@
|
|
|
10
10
|
"delete_prompt": "This resource will be permanently removed. Are you sure?",
|
|
11
11
|
"description": "Description",
|
|
12
12
|
"template": "Template",
|
|
13
|
-
"template_clipboard": "
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
13
|
+
"template_clipboard": "Upload source code",
|
|
14
|
+
"template_default": "Use default template",
|
|
15
|
+
"template_url": "Pull from public URL",
|
|
16
|
+
"url": "URL",
|
|
17
|
+
"url_source_label": "Cached source",
|
|
18
|
+
"url_source_placeholder": "Template markup will appear here once cached",
|
|
19
|
+
"clipboard_source_label": "Source",
|
|
20
|
+
"clipboard_source_placeholder": "Enter your template markup here",
|
|
19
21
|
"spinner": {
|
|
20
22
|
"loading_busy": "Loading",
|
|
21
23
|
"loading_error": "Failed to load"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
2
|
+
import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
|
|
3
|
+
/**
|
|
4
|
+
* Internal control displaying editable source code.
|
|
5
|
+
*
|
|
6
|
+
* @since 1.23.0
|
|
7
|
+
* @element foxy-internal-source-control
|
|
8
|
+
*/
|
|
9
|
+
export declare class InternalSourceControl extends InternalEditableControl {
|
|
10
|
+
static get properties(): PropertyDeclarations;
|
|
11
|
+
static get styles(): CSSResultArray;
|
|
12
|
+
private __hovered;
|
|
13
|
+
private __focused;
|
|
14
|
+
renderControl(): TemplateResult;
|
|
15
|
+
updated(changes: Map<keyof this, unknown>): void;
|
|
16
|
+
protected get _value(): string;
|
|
17
|
+
protected set _value(newValue: string);
|
|
18
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
|
|
2
|
+
import { html, css } from 'lit-element';
|
|
3
|
+
import { repeat } from 'lit-html/directives/repeat';
|
|
4
|
+
/**
|
|
5
|
+
* Internal control displaying editable source code.
|
|
6
|
+
*
|
|
7
|
+
* @since 1.23.0
|
|
8
|
+
* @element foxy-internal-source-control
|
|
9
|
+
*/
|
|
10
|
+
export class InternalSourceControl extends InternalEditableControl {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.__hovered = false;
|
|
14
|
+
this.__focused = false;
|
|
15
|
+
}
|
|
16
|
+
static get properties() {
|
|
17
|
+
return {
|
|
18
|
+
...super.properties,
|
|
19
|
+
__hovered: { attribute: false },
|
|
20
|
+
__focused: { attribute: false },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
static get styles() {
|
|
24
|
+
return [
|
|
25
|
+
...super.styles,
|
|
26
|
+
css `.monospace{
|
|
27
|
+
font-family:monospace;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.resize-none{
|
|
31
|
+
resize:none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.max-h-16em{
|
|
35
|
+
max-height:16em;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
textarea::selection{
|
|
39
|
+
background:var(--lumo-contrast-10pct);
|
|
40
|
+
}
|
|
41
|
+
`,
|
|
42
|
+
];
|
|
43
|
+
}
|
|
44
|
+
renderControl() {
|
|
45
|
+
var _a;
|
|
46
|
+
let lineNumbersClass;
|
|
47
|
+
let helperTextClass;
|
|
48
|
+
let containerClass;
|
|
49
|
+
let textAreaClass;
|
|
50
|
+
let labelClass;
|
|
51
|
+
if (this.disabled) {
|
|
52
|
+
lineNumbersClass = 'bg-contrast-5 text-disabled';
|
|
53
|
+
helperTextClass = 'text-disabled';
|
|
54
|
+
textAreaClass = 'text-disabled';
|
|
55
|
+
labelClass = 'text-disabled';
|
|
56
|
+
if (this.readonly) {
|
|
57
|
+
lineNumbersClass += ' border-dashed border-contrast-20';
|
|
58
|
+
containerClass = 'border-dashed border-contrast-30';
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
lineNumbersClass += ' border-transparent';
|
|
62
|
+
containerClass = 'border-contrast-10';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (this.readonly) {
|
|
66
|
+
lineNumbersClass = 'border-dashed border-contrast-30 bg-transparent text-secondary';
|
|
67
|
+
helperTextClass = 'text-secondary';
|
|
68
|
+
containerClass = 'border-dashed border-contrast-30';
|
|
69
|
+
textAreaClass = 'text-secondary';
|
|
70
|
+
labelClass = 'text-secondary';
|
|
71
|
+
if (this.__focused)
|
|
72
|
+
containerClass += ' ring-2 ring-primary-50';
|
|
73
|
+
}
|
|
74
|
+
else if (this.__focused) {
|
|
75
|
+
lineNumbersClass = 'border-transparent bg-contrast-10 text-tertiary';
|
|
76
|
+
helperTextClass = 'text-secondary';
|
|
77
|
+
containerClass = 'border-primary-50 ring-1 ring-primary-50';
|
|
78
|
+
textAreaClass = 'text-body';
|
|
79
|
+
labelClass = 'text-primary';
|
|
80
|
+
}
|
|
81
|
+
else if (this.__hovered) {
|
|
82
|
+
lineNumbersClass = 'border-transparent bg-contrast-20 text-tertiary';
|
|
83
|
+
helperTextClass = 'text-body';
|
|
84
|
+
containerClass = 'border-contrast-20';
|
|
85
|
+
textAreaClass = 'text-body';
|
|
86
|
+
labelClass = 'text-body';
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
lineNumbersClass = 'border-transparent bg-contrast-10 text-tertiary';
|
|
90
|
+
helperTextClass = 'text-secondary';
|
|
91
|
+
containerClass = 'border-contrast-10';
|
|
92
|
+
textAreaClass = 'text-body';
|
|
93
|
+
labelClass = 'text-secondary';
|
|
94
|
+
}
|
|
95
|
+
return html `
|
|
96
|
+
<label
|
|
97
|
+
class="block h-full"
|
|
98
|
+
@mouseenter=${() => (this.__hovered = true)}
|
|
99
|
+
@mouseleave=${() => (this.__hovered = false)}
|
|
100
|
+
>
|
|
101
|
+
<div
|
|
102
|
+
class="mb-xs transition-colors leading-none text-s font-medium ${labelClass}"
|
|
103
|
+
part="label"
|
|
104
|
+
>
|
|
105
|
+
${this.label}
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<div
|
|
109
|
+
class="max-h-16em h-full transition-colors flex-1 flex bg-base rounded overflow-auto border ${containerClass}"
|
|
110
|
+
part="editor"
|
|
111
|
+
>
|
|
112
|
+
<div
|
|
113
|
+
class="h-full transition-colors monospace leading-s text-s p-m text-right border-r ${lineNumbersClass}"
|
|
114
|
+
>
|
|
115
|
+
${repeat((_a = this._value.split('\n')) !== null && _a !== void 0 ? _a : [], (_, i) => String(i), (_, i) => html `<div>${i + 1}</div>`)}
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<textarea
|
|
119
|
+
placeholder=${this.placeholder}
|
|
120
|
+
class="bg-base whitespace-pre leading-s text-s focus-outline-none monospace resize-none p-m block w-full select-text transition-colors ${textAreaClass}"
|
|
121
|
+
rows="1"
|
|
122
|
+
.value=${this._value}
|
|
123
|
+
?disabled=${this.disabled}
|
|
124
|
+
?readonly=${this.readonly}
|
|
125
|
+
@focus=${() => (this.__focused = true)}
|
|
126
|
+
@blur=${() => (this.__focused = false)}
|
|
127
|
+
@input=${(evt) => {
|
|
128
|
+
const textarea = evt.currentTarget;
|
|
129
|
+
this._value = textarea.value;
|
|
130
|
+
}}
|
|
131
|
+
>
|
|
132
|
+
</textarea>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
<div
|
|
136
|
+
class="mt-xs transition-colors leading-xs text-xs ${helperTextClass}"
|
|
137
|
+
part="helper-text"
|
|
138
|
+
>
|
|
139
|
+
${this.helperText}
|
|
140
|
+
</div>
|
|
141
|
+
</label>
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
updated(changes) {
|
|
145
|
+
super.updated(changes);
|
|
146
|
+
this.renderRoot.querySelectorAll('textarea').forEach(textarea => {
|
|
147
|
+
textarea.style.height = 'auto';
|
|
148
|
+
textarea.style.height = `${textarea.scrollHeight}px`;
|
|
149
|
+
textarea.style.overflowY = 'hidden';
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
get _value() {
|
|
153
|
+
var _a;
|
|
154
|
+
return (_a = super._value) !== null && _a !== void 0 ? _a : '';
|
|
155
|
+
}
|
|
156
|
+
set _value(newValue) {
|
|
157
|
+
super._value = newValue;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=InternalSourceControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalSourceControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSourceControl/InternalSourceControl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,uBAAuB;IAAlE;;QAgCU,cAAS,GAAG,KAAK,CAAC;QAElB,cAAS,GAAG,KAAK,CAAC;IAuH5B,CAAC;IAxJC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAC/B,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO;YACL,GAAG,KAAK,CAAC,MAAM;YACf,GAAG;;;;;;;;;;;;;;;OAgBF;SACF,CAAC;IACJ,CAAC;IAMD,aAAa;;QACX,IAAI,gBAAwB,CAAC;QAC7B,IAAI,eAAuB,CAAC;QAC5B,IAAI,cAAsB,CAAC;QAC3B,IAAI,aAAqB,CAAC;QAC1B,IAAI,UAAkB,CAAC;QAEvB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,gBAAgB,GAAG,6BAA6B,CAAC;YACjD,eAAe,GAAG,eAAe,CAAC;YAClC,aAAa,GAAG,eAAe,CAAC;YAChC,UAAU,GAAG,eAAe,CAAC;YAE7B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,gBAAgB,IAAI,mCAAmC,CAAC;gBACxD,cAAc,GAAG,kCAAkC,CAAC;aACrD;iBAAM;gBACL,gBAAgB,IAAI,qBAAqB,CAAC;gBAC1C,cAAc,GAAG,oBAAoB,CAAC;aACvC;SACF;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxB,gBAAgB,GAAG,gEAAgE,CAAC;YACpF,eAAe,GAAG,gBAAgB,CAAC;YACnC,cAAc,GAAG,kCAAkC,CAAC;YACpD,aAAa,GAAG,gBAAgB,CAAC;YACjC,UAAU,GAAG,gBAAgB,CAAC;YAC9B,IAAI,IAAI,CAAC,SAAS;gBAAE,cAAc,IAAI,yBAAyB,CAAC;SACjE;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,gBAAgB,GAAG,iDAAiD,CAAC;YACrE,eAAe,GAAG,gBAAgB,CAAC;YACnC,cAAc,GAAG,0CAA0C,CAAC;YAC5D,aAAa,GAAG,WAAW,CAAC;YAC5B,UAAU,GAAG,cAAc,CAAC;SAC7B;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,gBAAgB,GAAG,iDAAiD,CAAC;YACrE,eAAe,GAAG,WAAW,CAAC;YAC9B,cAAc,GAAG,oBAAoB,CAAC;YACtC,aAAa,GAAG,WAAW,CAAC;YAC5B,UAAU,GAAG,WAAW,CAAC;SAC1B;aAAM;YACL,gBAAgB,GAAG,iDAAiD,CAAC;YACrE,eAAe,GAAG,gBAAgB,CAAC;YACnC,cAAc,GAAG,oBAAoB,CAAC;YACtC,aAAa,GAAG,WAAW,CAAC;YAC5B,UAAU,GAAG,gBAAgB,CAAC;SAC/B;QAED,OAAO,IAAI,CAAA;;;sBAGO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;sBAC7B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;;;2EAGuB,UAAU;;;YAGzE,IAAI,CAAC,KAAK;;;;wGAIkF,cAAc;;;;iGAIrB,gBAAgB;;cAEnG,MAAM,OACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,EAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACnB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,CACpC;;;;0BAIa,IAAI,CAAC,WAAW;qJAC2G,aAAa;;qBAE7I,IAAI,CAAC,MAAM;wBACR,IAAI,CAAC,QAAQ;wBACb,IAAI,CAAC,QAAQ;qBAChB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC9B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBAC7B,CAAC,GAAe,EAAE,EAAE;YAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAoC,CAAC;YAC1D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC/B,CAAC;;;;;;8DAMiD,eAAe;;;YAGjE,IAAI,CAAC,UAAU;;;KAGtB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAAiC;QACvC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC9D,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC/B,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC;YACrD,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, css } from 'lit-element';\nimport { repeat } from 'lit-html/directives/repeat';\n\n/**\n * Internal control displaying editable source code.\n *\n * @since 1.23.0\n * @element foxy-internal-source-control\n */\nexport class InternalSourceControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __hovered: { attribute: false },\n __focused: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n ...super.styles,\n css`\n .monospace {\n font-family: monospace;\n }\n\n .resize-none {\n resize: none;\n }\n\n .max-h-16em {\n max-height: 16em;\n }\n\n textarea::selection {\n background: var(--lumo-contrast-10pct);\n }\n `,\n ];\n }\n\n private __hovered = false;\n\n private __focused = false;\n\n renderControl(): TemplateResult {\n let lineNumbersClass: string;\n let helperTextClass: string;\n let containerClass: string;\n let textAreaClass: string;\n let labelClass: string;\n\n if (this.disabled) {\n lineNumbersClass = 'bg-contrast-5 text-disabled';\n helperTextClass = 'text-disabled';\n textAreaClass = 'text-disabled';\n labelClass = 'text-disabled';\n\n if (this.readonly) {\n lineNumbersClass += ' border-dashed border-contrast-20';\n containerClass = 'border-dashed border-contrast-30';\n } else {\n lineNumbersClass += ' border-transparent';\n containerClass = 'border-contrast-10';\n }\n } else if (this.readonly) {\n lineNumbersClass = 'border-dashed border-contrast-30 bg-transparent text-secondary';\n helperTextClass = 'text-secondary';\n containerClass = 'border-dashed border-contrast-30';\n textAreaClass = 'text-secondary';\n labelClass = 'text-secondary';\n if (this.__focused) containerClass += ' ring-2 ring-primary-50';\n } else if (this.__focused) {\n lineNumbersClass = 'border-transparent bg-contrast-10 text-tertiary';\n helperTextClass = 'text-secondary';\n containerClass = 'border-primary-50 ring-1 ring-primary-50';\n textAreaClass = 'text-body';\n labelClass = 'text-primary';\n } else if (this.__hovered) {\n lineNumbersClass = 'border-transparent bg-contrast-20 text-tertiary';\n helperTextClass = 'text-body';\n containerClass = 'border-contrast-20';\n textAreaClass = 'text-body';\n labelClass = 'text-body';\n } else {\n lineNumbersClass = 'border-transparent bg-contrast-10 text-tertiary';\n helperTextClass = 'text-secondary';\n containerClass = 'border-contrast-10';\n textAreaClass = 'text-body';\n labelClass = 'text-secondary';\n }\n\n return html`\n <label\n class=\"block h-full\"\n @mouseenter=${() => (this.__hovered = true)}\n @mouseleave=${() => (this.__hovered = false)}\n >\n <div\n class=\"mb-xs transition-colors leading-none text-s font-medium ${labelClass}\"\n part=\"label\"\n >\n ${this.label}\n </div>\n\n <div\n class=\"max-h-16em h-full transition-colors flex-1 flex bg-base rounded overflow-auto border ${containerClass}\"\n part=\"editor\"\n >\n <div\n class=\"h-full transition-colors monospace leading-s text-s p-m text-right border-r ${lineNumbersClass}\"\n >\n ${repeat(\n this._value.split('\\n') ?? [],\n (_, i) => String(i),\n (_, i) => html`<div>${i + 1}</div>`\n )}\n </div>\n\n <textarea\n placeholder=${this.placeholder}\n class=\"bg-base whitespace-pre leading-s text-s focus-outline-none monospace resize-none p-m block w-full select-text transition-colors ${textAreaClass}\"\n rows=\"1\"\n .value=${this._value}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @focus=${() => (this.__focused = true)}\n @blur=${() => (this.__focused = false)}\n @input=${(evt: InputEvent) => {\n const textarea = evt.currentTarget as HTMLTextAreaElement;\n this._value = textarea.value;\n }}\n >\n </textarea>\n </div>\n\n <div\n class=\"mt-xs transition-colors leading-xs text-xs ${helperTextClass}\"\n part=\"helper-text\"\n >\n ${this.helperText}\n </div>\n </label>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n this.renderRoot.querySelectorAll('textarea').forEach(textarea => {\n textarea.style.height = 'auto';\n textarea.style.height = `${textarea.scrollHeight}px`;\n textarea.style.overflowY = 'hidden';\n });\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSourceControl/index.ts"],"names":[],"mappings":"AAAA,6CAA0C;AAE1C,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAEhE,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import '../InternalEditableControl/index';\n\nimport { InternalSourceControl } from './InternalSourceControl';\n\ncustomElements.define('foxy-internal-source-control', InternalSourceControl);\n\nexport { InternalSourceControl };\n"]}
|
|
@@ -19,9 +19,7 @@ export declare class InternalApiBrowserResourceForm extends InternalApiBrowserRe
|
|
|
19
19
|
/** Same as the "open" attribute/property of the details element. */
|
|
20
20
|
open: boolean;
|
|
21
21
|
renderBody(): TemplateResult;
|
|
22
|
-
updated(changes: Map<keyof this, unknown>): void;
|
|
23
22
|
protected _fetch<TResult = any>(...args: Parameters<Window['fetch']>): Promise<TResult>;
|
|
24
|
-
private __setTextAreaHeight;
|
|
25
23
|
private __renderTitle;
|
|
26
24
|
private __renderForm;
|
|
27
25
|
private get __links();
|
|
@@ -26,15 +26,7 @@ export class InternalApiBrowserResourceForm extends TranslatableMixin(InternalFo
|
|
|
26
26
|
static get styles() {
|
|
27
27
|
return [
|
|
28
28
|
...super.styles,
|
|
29
|
-
css `.
|
|
30
|
-
font-family:monospace;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.resize-none{
|
|
34
|
-
resize:none;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.resource{
|
|
29
|
+
css `.resource{
|
|
38
30
|
display:grid;
|
|
39
31
|
grid-template-columns:repeat(auto-fill, minmax(calc(18.75 * var(--lumo-space-m)), 1fr));
|
|
40
32
|
grid-gap:1px;
|
|
@@ -45,8 +37,25 @@ export class InternalApiBrowserResourceForm extends TranslatableMixin(InternalFo
|
|
|
45
37
|
grid-column-end:-2;
|
|
46
38
|
}
|
|
47
39
|
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
foxy-internal-source-control::part(editor){
|
|
41
|
+
border-radius:0;
|
|
42
|
+
max-height:none;
|
|
43
|
+
box-shadow:none;
|
|
44
|
+
border:none;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
foxy-internal-source-control::part(label),
|
|
48
|
+
foxy-internal-source-control::part(helper-text){
|
|
49
|
+
position:absolute;
|
|
50
|
+
width:1px;
|
|
51
|
+
height:1px;
|
|
52
|
+
padding-top:0px;
|
|
53
|
+
margin-top:-1px;
|
|
54
|
+
overflow-x:hidden;
|
|
55
|
+
overflow-y:hidden;
|
|
56
|
+
clip:rect(0px, 0px, 0px, 0px);
|
|
57
|
+
white-space:nowrap;
|
|
58
|
+
border-top-width:0px;
|
|
50
59
|
}
|
|
51
60
|
`,
|
|
52
61
|
];
|
|
@@ -114,10 +123,6 @@ textarea::selection{
|
|
|
114
123
|
</details>
|
|
115
124
|
`;
|
|
116
125
|
}
|
|
117
|
-
updated(changes) {
|
|
118
|
-
super.updated(changes);
|
|
119
|
-
this.__setTextAreaHeight();
|
|
120
|
-
}
|
|
121
126
|
async _fetch(...args) {
|
|
122
127
|
var _a;
|
|
123
128
|
try {
|
|
@@ -131,14 +136,6 @@ textarea::selection{
|
|
|
131
136
|
throw ['invalid_json'];
|
|
132
137
|
}
|
|
133
138
|
}
|
|
134
|
-
__setTextAreaHeight() {
|
|
135
|
-
const textarea = this.renderRoot.querySelector('textarea');
|
|
136
|
-
if (textarea) {
|
|
137
|
-
textarea.style.height = 'auto';
|
|
138
|
-
textarea.style.height = `${textarea.scrollHeight}px`;
|
|
139
|
-
textarea.style.overflowY = 'hidden';
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
139
|
__renderTitle() {
|
|
143
140
|
if (!this.href) {
|
|
144
141
|
return html `
|
|
@@ -177,26 +174,13 @@ textarea::selection{
|
|
|
177
174
|
return html `
|
|
178
175
|
<div class="bg-base">
|
|
179
176
|
<div class="${this.data ? 'resource' : ''} border-t border-contrast-5 bg-contrast-10">
|
|
180
|
-
<
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
'whitespace-pre leading-s text-s focus-outline-none': true,
|
|
188
|
-
'monospace resize-none p-m block w-full select-text': true,
|
|
189
|
-
'bg-error-10': this.errors.length > 0,
|
|
190
|
-
'bg-base': this.errors.length === 0,
|
|
191
|
-
})}
|
|
192
|
-
.value=${this.__formAsString}
|
|
193
|
-
@input=${(evt) => {
|
|
194
|
-
const textarea = evt.currentTarget;
|
|
195
|
-
this.__formAsString = textarea.value;
|
|
196
|
-
}}
|
|
197
|
-
>
|
|
198
|
-
</textarea>
|
|
199
|
-
</div>
|
|
177
|
+
<foxy-internal-source-control
|
|
178
|
+
infer="editor"
|
|
179
|
+
class="flex-1 bg-base"
|
|
180
|
+
.getValue=${() => this.__formAsString}
|
|
181
|
+
.setValue=${(newValue) => (this.__formAsString = newValue)}
|
|
182
|
+
>
|
|
183
|
+
</foxy-internal-source-control>
|
|
200
184
|
|
|
201
185
|
${this.data
|
|
202
186
|
? html `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalApiBrowserResourceForm.js","sourceRoot":"","sources":["../../../../../../src/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../../../NucleonElement/types';\nimport type { Data } from '../../types';\n\nimport { TranslatableMixin } from '../../../../../mixins/translatable';\nimport { InternalForm } from '../../../../internal/InternalForm/InternalForm';\nimport { classMap } from '../../../../../utils/class-map';\nimport { html } from 'lit-html';\nimport { css } from 'lit-element';\n\nconst InvalidValueSymbol = Symbol() as symbol;\nconst ValidValueSymbol = Symbol() as symbol;\n\n/**\n * Internal raw resource JSON editor for use with ApiBrowser.\n *\n * @element foxy-internal-api-browser-resource-form\n * @since 1.17.0\n */\nexport class InternalApiBrowserResourceForm extends TranslatableMixin(InternalForm)<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n open: { type: Boolean, reflect: true },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n ...super.styles,\n css`\n .monospace {\n font-family: monospace;\n }\n\n .resize-none {\n resize: none;\n }\n\n .resource {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(calc(18.75 * var(--lumo-space-m)), 1fr));\n grid-gap: 1px;\n }\n\n .resource > :first-child {\n grid-column-start: 1;\n grid-column-end: -2;\n }\n\n textarea::selection {\n background: var(--lumo-contrast-10pct);\n }\n `,\n ];\n }\n\n static get v8n(): NucleonV8N<any> {\n return [\n ...super.v8n,\n v => (typeof (v as any)[InvalidValueSymbol] === 'string' ? 'invalid_json' : true),\n ];\n }\n\n /** Same as the \"open\" attribute/property of the details element. */\n open = false;\n\n renderBody(): TemplateResult {\n return html`\n <details\n class=\"select-none rounded-t-l rounded-b-l overflow-hidden border border-contrast-10\"\n ?open=${this.open}\n @toggle=${(evt: Event) => {\n const details = evt.currentTarget as HTMLDetailsElement;\n this.open = details.open;\n }}\n >\n <summary\n class=${classMap({\n 'ring-inset ring-primary-50 rounded-t-l': true,\n 'focus-outline-none focus-ring-2': true,\n 'rounded-b-l': !this.open,\n })}\n >\n <div\n class=\"flex items-center space-x-s p-s pr-m transition-colors cursor-pointer bg-contrast-5 hover-bg-contrast-10\"\n >\n <foxy-copy-to-clipboard infer=\"copy-to-clipboard\" text=${this.href || this.parent}>\n </foxy-copy-to-clipboard>\n\n <span class=\"font-medium truncate\">${this.__renderTitle()}</span>\n <span class=\"flex-1\"></span>\n\n ${this.in({ idle: { snapshot: 'dirty' } }) || this.in({ idle: 'template' })\n ? html`\n <foxy-internal-create-control infer=\"create\" theme=\"tertiary-inline success\">\n </foxy-internal-create-control>\n `\n : ''}\n ${this.in({ idle: { snapshot: 'dirty' } }) || this.in({ idle: { template: 'dirty' } })\n ? html`\n <vaadin-button\n data-testid=\"undo\"\n theme=\"tertiary-inline contrast\"\n class=\"px-xs\"\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"undo\"></foxy-i18n>\n </vaadin-button>\n `\n : ''}\n ${this.in({ idle: 'snapshot' })\n ? html`\n <foxy-internal-delete-control infer=\"delete\" theme=\"tertiary-inline error\">\n </foxy-internal-delete-control>\n `\n : ''}\n </div>\n </summary>\n\n ${this.open ? this.__renderForm() : ''}\n </details>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n this.__setTextAreaHeight();\n }\n\n protected async _fetch<TResult = any>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n const request = args[0] instanceof Request ? args[0] : new Request(...args);\n if (request.method !== 'POST') return await super._fetch(...args);\n\n const body = (this.form as any)[ValidValueSymbol] ?? JSON.stringify(this.form);\n return await super._fetch(request.url, { method: 'POST', body });\n } catch (err) {\n throw ['invalid_json'];\n }\n }\n\n private __setTextAreaHeight() {\n const textarea = this.renderRoot.querySelector<HTMLTextAreaElement>('textarea');\n\n if (textarea) {\n textarea.style.height = 'auto';\n textarea.style.height = `${textarea.scrollHeight}px`;\n textarea.style.overflowY = 'hidden';\n }\n }\n\n private __renderTitle() {\n if (!this.href) {\n return html`\n <span class=\"text-tertiary\">POST</span>\n <span>${this.parent}</span>\n `;\n }\n\n let pathname = '';\n let identifier = '';\n let search = '';\n\n try {\n const url = new URL(this.href);\n\n pathname = url.pathname;\n if (pathname.startsWith('/')) pathname = pathname.substring(1);\n\n const splitPathname = pathname.split('/');\n pathname = splitPathname.slice(0, splitPathname.length - 1).join('/');\n\n if (splitPathname.length > 1) {\n pathname = `${pathname}/`;\n identifier = splitPathname[splitPathname.length - 1];\n }\n\n search = url.search;\n } catch {\n pathname = this.href;\n }\n\n return html`\n ${[\n html`<span>${pathname}</span>`,\n html`<span class=\"text-primary\">${identifier}</span>`,\n html`<span class=\"text-tertiary\">${search}</span>`,\n ]}\n `;\n }\n\n private __renderForm() {\n return html`\n <div class=\"bg-base\">\n <div class=\"${this.data ? 'resource' : ''} border-t border-contrast-5 bg-contrast-10\">\n <div class=\"flex-1 flex bg-base\">\n <div class=\"monospace bg-contrast-5 leading-s text-s p-m text-tertiary text-right\">\n ${this.__formAsString.split('\\n').map((_, index) => html`<div>${index + 1}</div>`)}\n </div>\n\n <textarea\n class=${classMap({\n 'whitespace-pre leading-s text-s focus-outline-none': true,\n 'monospace resize-none p-m block w-full select-text': true,\n 'bg-error-10': this.errors.length > 0,\n 'bg-base': this.errors.length === 0,\n })}\n .value=${this.__formAsString}\n @input=${(evt: InputEvent) => {\n const textarea = evt.currentTarget as HTMLTextAreaElement;\n this.__formAsString = textarea.value;\n }}\n >\n </textarea>\n </div>\n\n ${this.data\n ? html`\n <div class=\"bg-base\">\n <ul class=\"bg-contrast-5 p-xs h-full\">\n ${this.__links.map(([curie, link]) =>\n this.__renderLink(curie, link.href, link.title)\n )}\n </ul>\n </div>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n private get __links() {\n const linksAsEntries = Object.entries(this.data?._links ?? {});\n const relevantLinks = linksAsEntries.filter(\n ([curie, link]) => curie !== 'self' && !Array.isArray(link) && !(link as any).templated\n );\n\n try {\n relevantLinks.sort(([curie1], [curie2]) => curie1.localeCompare(curie2, this.lang));\n } catch {\n relevantLinks.sort(([curie1], [curie2]) => curie1.localeCompare(curie2));\n }\n\n return relevantLinks;\n }\n\n private get __formAsString() {\n const form = this.form as any;\n const validValue = form[ValidValueSymbol];\n const invalidValue = form[InvalidValueSymbol];\n\n if (typeof invalidValue === 'string') return invalidValue;\n if (typeof validValue === 'string') return validValue;\n\n return JSON.stringify(form, (key, value) => (key.startsWith('_') ? undefined : value), 2);\n }\n\n private set __formAsString(newValue: string) {\n this.undo();\n\n try {\n const parsedNewValue = JSON.parse(newValue);\n if (typeof parsedNewValue === 'object') this.edit(parsedNewValue);\n this.edit({ [ValidValueSymbol]: newValue });\n } catch {\n this.edit({ [InvalidValueSymbol]: newValue });\n }\n }\n\n private __renderLink(curie: string, href: string, title?: string) {\n return html`\n <li\n data-testclass=\"link\"\n class=\"m-xs rounded overflow-hidden transition-colors hover-bg-contrast-5\"\n >\n <foxy-swipe-actions>\n <button\n class=${classMap({\n 'rounded leading-none space-y-xs block text-left w-full py-s': true,\n 'ring-inset ring-primary-50': true,\n 'focus-outline-none focus-ring-2 ': true,\n })}\n @click=${() => {\n const evt = new CustomEvent('navigate:get', { bubbles: true, detail: href });\n this.dispatchEvent(evt);\n }}\n >\n <div class=\"flex items-center\">\n <div class=\"flex-1 space-y-xs px-s min-w-0 text-s\">\n <div class=\"truncate font-medium\">${title || href}</div>\n <div class=\"opacity-75 truncate\">${curie}</div>\n </div>\n\n <iron-icon\n class=\"icon-inline text-xl text-tertiary mr-s flex-shrink-0\"\n icon=\"icons:chevron-right\"\n >\n </iron-icon>\n </div>\n </button>\n\n <div slot=\"action\" class=\"h-full flex\">\n <vaadin-button\n theme=\"secondary success\"\n class=\"h-full rounded-none\"\n @click=${() => {\n const evt = new CustomEvent('navigate:post', { bubbles: true, detail: href });\n this.dispatchEvent(evt);\n }}\n >\n POST\n </vaadin-button>\n </div>\n </foxy-swipe-actions>\n </li>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalApiBrowserResourceForm.js","sourceRoot":"","sources":["../../../../../../src/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../../../NucleonElement/types';\nimport type { Data } from '../../types';\n\nimport { TranslatableMixin } from '../../../../../mixins/translatable';\nimport { InternalForm } from '../../../../internal/InternalForm/InternalForm';\nimport { classMap } from '../../../../../utils/class-map';\nimport { html } from 'lit-html';\nimport { css } from 'lit-element';\n\nconst InvalidValueSymbol = Symbol() as symbol;\nconst ValidValueSymbol = Symbol() as symbol;\n\n/**\n * Internal raw resource JSON editor for use with ApiBrowser.\n *\n * @element foxy-internal-api-browser-resource-form\n * @since 1.17.0\n */\nexport class InternalApiBrowserResourceForm extends TranslatableMixin(InternalForm)<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n open: { type: Boolean, reflect: true },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n ...super.styles,\n css`\n .resource {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(calc(18.75 * var(--lumo-space-m)), 1fr));\n grid-gap: 1px;\n }\n\n .resource > :first-child {\n grid-column-start: 1;\n grid-column-end: -2;\n }\n\n foxy-internal-source-control::part(editor) {\n border-radius: 0;\n max-height: none;\n box-shadow: none;\n border: none;\n }\n\n foxy-internal-source-control::part(label),\n foxy-internal-source-control::part(helper-text) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding-top: 0px;\n margin-top: -1px;\n overflow-x: hidden;\n overflow-y: hidden;\n clip: rect(0px, 0px, 0px, 0px);\n white-space: nowrap;\n border-top-width: 0px;\n }\n `,\n ];\n }\n\n static get v8n(): NucleonV8N<any> {\n return [\n ...super.v8n,\n v => (typeof (v as any)[InvalidValueSymbol] === 'string' ? 'invalid_json' : true),\n ];\n }\n\n /** Same as the \"open\" attribute/property of the details element. */\n open = false;\n\n renderBody(): TemplateResult {\n return html`\n <details\n class=\"select-none rounded-t-l rounded-b-l overflow-hidden border border-contrast-10\"\n ?open=${this.open}\n @toggle=${(evt: Event) => {\n const details = evt.currentTarget as HTMLDetailsElement;\n this.open = details.open;\n }}\n >\n <summary\n class=${classMap({\n 'ring-inset ring-primary-50 rounded-t-l': true,\n 'focus-outline-none focus-ring-2': true,\n 'rounded-b-l': !this.open,\n })}\n >\n <div\n class=\"flex items-center space-x-s p-s pr-m transition-colors cursor-pointer bg-contrast-5 hover-bg-contrast-10\"\n >\n <foxy-copy-to-clipboard infer=\"copy-to-clipboard\" text=${this.href || this.parent}>\n </foxy-copy-to-clipboard>\n\n <span class=\"font-medium truncate\">${this.__renderTitle()}</span>\n <span class=\"flex-1\"></span>\n\n ${this.in({ idle: { snapshot: 'dirty' } }) || this.in({ idle: 'template' })\n ? html`\n <foxy-internal-create-control infer=\"create\" theme=\"tertiary-inline success\">\n </foxy-internal-create-control>\n `\n : ''}\n ${this.in({ idle: { snapshot: 'dirty' } }) || this.in({ idle: { template: 'dirty' } })\n ? html`\n <vaadin-button\n data-testid=\"undo\"\n theme=\"tertiary-inline contrast\"\n class=\"px-xs\"\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"undo\"></foxy-i18n>\n </vaadin-button>\n `\n : ''}\n ${this.in({ idle: 'snapshot' })\n ? html`\n <foxy-internal-delete-control infer=\"delete\" theme=\"tertiary-inline error\">\n </foxy-internal-delete-control>\n `\n : ''}\n </div>\n </summary>\n\n ${this.open ? this.__renderForm() : ''}\n </details>\n `;\n }\n\n protected async _fetch<TResult = any>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n const request = args[0] instanceof Request ? args[0] : new Request(...args);\n if (request.method !== 'POST') return await super._fetch(...args);\n\n const body = (this.form as any)[ValidValueSymbol] ?? JSON.stringify(this.form);\n return await super._fetch(request.url, { method: 'POST', body });\n } catch (err) {\n throw ['invalid_json'];\n }\n }\n\n private __renderTitle() {\n if (!this.href) {\n return html`\n <span class=\"text-tertiary\">POST</span>\n <span>${this.parent}</span>\n `;\n }\n\n let pathname = '';\n let identifier = '';\n let search = '';\n\n try {\n const url = new URL(this.href);\n\n pathname = url.pathname;\n if (pathname.startsWith('/')) pathname = pathname.substring(1);\n\n const splitPathname = pathname.split('/');\n pathname = splitPathname.slice(0, splitPathname.length - 1).join('/');\n\n if (splitPathname.length > 1) {\n pathname = `${pathname}/`;\n identifier = splitPathname[splitPathname.length - 1];\n }\n\n search = url.search;\n } catch {\n pathname = this.href;\n }\n\n return html`\n ${[\n html`<span>${pathname}</span>`,\n html`<span class=\"text-primary\">${identifier}</span>`,\n html`<span class=\"text-tertiary\">${search}</span>`,\n ]}\n `;\n }\n\n private __renderForm() {\n return html`\n <div class=\"bg-base\">\n <div class=\"${this.data ? 'resource' : ''} border-t border-contrast-5 bg-contrast-10\">\n <foxy-internal-source-control\n infer=\"editor\"\n class=\"flex-1 bg-base\"\n .getValue=${() => this.__formAsString}\n .setValue=${(newValue: string) => (this.__formAsString = newValue)}\n >\n </foxy-internal-source-control>\n\n ${this.data\n ? html`\n <div class=\"bg-base\">\n <ul class=\"bg-contrast-5 p-xs h-full\">\n ${this.__links.map(([curie, link]) =>\n this.__renderLink(curie, link.href, link.title)\n )}\n </ul>\n </div>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n private get __links() {\n const linksAsEntries = Object.entries(this.data?._links ?? {});\n const relevantLinks = linksAsEntries.filter(\n ([curie, link]) => curie !== 'self' && !Array.isArray(link) && !(link as any).templated\n );\n\n try {\n relevantLinks.sort(([curie1], [curie2]) => curie1.localeCompare(curie2, this.lang));\n } catch {\n relevantLinks.sort(([curie1], [curie2]) => curie1.localeCompare(curie2));\n }\n\n return relevantLinks;\n }\n\n private get __formAsString() {\n const form = this.form as any;\n const validValue = form[ValidValueSymbol];\n const invalidValue = form[InvalidValueSymbol];\n\n if (typeof invalidValue === 'string') return invalidValue;\n if (typeof validValue === 'string') return validValue;\n\n return JSON.stringify(form, (key, value) => (key.startsWith('_') ? undefined : value), 2);\n }\n\n private set __formAsString(newValue: string) {\n this.undo();\n\n try {\n const parsedNewValue = JSON.parse(newValue);\n if (typeof parsedNewValue === 'object') this.edit(parsedNewValue);\n this.edit({ [ValidValueSymbol]: newValue });\n } catch {\n this.edit({ [InvalidValueSymbol]: newValue });\n }\n }\n\n private __renderLink(curie: string, href: string, title?: string) {\n return html`\n <li\n data-testclass=\"link\"\n class=\"m-xs rounded overflow-hidden transition-colors hover-bg-contrast-5\"\n >\n <foxy-swipe-actions>\n <button\n class=${classMap({\n 'rounded leading-none space-y-xs block text-left w-full py-s': true,\n 'ring-inset ring-primary-50': true,\n 'focus-outline-none focus-ring-2 ': true,\n })}\n @click=${() => {\n const evt = new CustomEvent('navigate:get', { bubbles: true, detail: href });\n this.dispatchEvent(evt);\n }}\n >\n <div class=\"flex items-center\">\n <div class=\"flex-1 space-y-xs px-s min-w-0 text-s\">\n <div class=\"truncate font-medium\">${title || href}</div>\n <div class=\"opacity-75 truncate\">${curie}</div>\n </div>\n\n <iron-icon\n class=\"icon-inline text-xl text-tertiary mr-s flex-shrink-0\"\n icon=\"icons:chevron-right\"\n >\n </iron-icon>\n </div>\n </button>\n\n <div slot=\"action\" class=\"h-full flex\">\n <vaadin-button\n theme=\"secondary success\"\n class=\"h-full rounded-none\"\n @click=${() => {\n const evt = new CustomEvent('navigate:post', { bubbles: true, detail: href });\n this.dispatchEvent(evt);\n }}\n >\n POST\n </vaadin-button>\n </div>\n </foxy-swipe-actions>\n </li>\n `;\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import '@polymer/iron-icons';
|
|
|
3
3
|
import '@polymer/iron-icon';
|
|
4
4
|
import '../../../../internal/InternalDeleteControl/index';
|
|
5
5
|
import '../../../../internal/InternalCreateControl/index';
|
|
6
|
+
import '../../../../internal/InternalSourceControl/index';
|
|
6
7
|
import '../../../../internal/InternalForm/index';
|
|
7
8
|
import '../../../CopyToClipboard/index';
|
|
8
9
|
import '../../../SwipeActions/index';
|
|
@@ -3,6 +3,7 @@ import '@polymer/iron-icons';
|
|
|
3
3
|
import '@polymer/iron-icon';
|
|
4
4
|
import "../../../../internal/InternalDeleteControl/index.js";
|
|
5
5
|
import "../../../../internal/InternalCreateControl/index.js";
|
|
6
|
+
import "../../../../internal/InternalSourceControl/index.js";
|
|
6
7
|
import "../../../../internal/InternalForm/index.js";
|
|
7
8
|
import "../../../CopyToClipboard/index.js";
|
|
8
9
|
import "../../../SwipeActions/index.js";
|
package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAE5B,6DAA0D;AAC1D,6DAA0D;AAC1D,oDAAiD;AACjD,2CAAwC;AACxC,wCAAqC;AACrC,gCAA6B;AAE7B,OAAO,EAAE,8BAA8B,IAAI,IAAI,EAAE,4CAAyC;AAE1F,cAAc,CAAC,MAAM,CAAC,yCAAyC,EAAE,IAAI,CAAC,CAAC;AAEvE,OAAO,EAAE,IAAI,IAAI,8BAA8B,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\nimport '@polymer/iron-icons';\nimport '@polymer/iron-icon';\n\nimport '../../../../internal/InternalDeleteControl/index';\nimport '../../../../internal/InternalCreateControl/index';\nimport '../../../../internal/InternalForm/index';\nimport '../../../CopyToClipboard/index';\nimport '../../../SwipeActions/index';\nimport '../../../I18n/index';\n\nimport { InternalApiBrowserResourceForm as Form } from './InternalApiBrowserResourceForm';\n\ncustomElements.define('foxy-internal-api-browser-resource-form', Form);\n\nexport { Form as InternalApiBrowserResourceForm };\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAE5B,6DAA0D;AAC1D,6DAA0D;AAC1D,6DAA0D;AAC1D,oDAAiD;AACjD,2CAAwC;AACxC,wCAAqC;AACrC,gCAA6B;AAE7B,OAAO,EAAE,8BAA8B,IAAI,IAAI,EAAE,4CAAyC;AAE1F,cAAc,CAAC,MAAM,CAAC,yCAAyC,EAAE,IAAI,CAAC,CAAC;AAEvE,OAAO,EAAE,IAAI,IAAI,8BAA8B,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\nimport '@polymer/iron-icons';\nimport '@polymer/iron-icon';\n\nimport '../../../../internal/InternalDeleteControl/index';\nimport '../../../../internal/InternalCreateControl/index';\nimport '../../../../internal/InternalSourceControl/index';\nimport '../../../../internal/InternalForm/index';\nimport '../../../CopyToClipboard/index';\nimport '../../../SwipeActions/index';\nimport '../../../I18n/index';\n\nimport { InternalApiBrowserResourceForm as Form } from './InternalApiBrowserResourceForm';\n\ncustomElements.define('foxy-internal-api-browser-resource-form', Form);\n\nexport { Form as InternalApiBrowserResourceForm };\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
2
|
+
import type { ScopedElementsMap } from '@open-wc/scoped-elements';
|
|
3
|
+
import type { Data, Templates } from './types';
|
|
4
4
|
import { NucleonElement } from '../NucleonElement/NucleonElement';
|
|
5
5
|
declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
6
6
|
defaultNS: string;
|
|
7
7
|
} & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & {
|
|
8
|
-
styles: CSSResultArray;
|
|
8
|
+
styles: import("lit-element").CSSResultArray;
|
|
9
9
|
} & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/src/types").ScopedElementsHost>;
|
|
10
10
|
/**
|
|
11
11
|
* Form element for creating or editing email templates (`fx:email_template`).
|
|
@@ -33,13 +33,15 @@ declare const Base: typeof NucleonElement & import("lit-element").Constructor<im
|
|
|
33
33
|
*/
|
|
34
34
|
export declare class EmailTemplateForm extends Base<Data> {
|
|
35
35
|
static get properties(): PropertyDeclarations;
|
|
36
|
-
static get styles(): CSSResultArray;
|
|
37
36
|
static get scopedElements(): ScopedElementsMap;
|
|
38
37
|
templates: Templates;
|
|
39
|
-
private __cacheState;
|
|
40
|
-
private __contentChoice;
|
|
41
38
|
private __templateLanguageOptions;
|
|
39
|
+
private __textContentChoice;
|
|
40
|
+
private __htmlContentChoice;
|
|
41
|
+
private __cacheState;
|
|
42
42
|
render(): TemplateResult;
|
|
43
|
+
protected _sendPost(edits: Partial<Data>): Promise<Data>;
|
|
44
|
+
protected _sendPatch(edits: Partial<Data>): Promise<Data>;
|
|
43
45
|
private __renderDescription;
|
|
44
46
|
private __renderContent;
|
|
45
47
|
private __renderContentVariant;
|