@foxy.io/elements 1.8.0-beta.1 → 1.8.1-beta.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.
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +2 -2
- package/dist/cdn/foxy-address-form.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-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-customer-api.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +3 -3
- package/dist/cdn/foxy-customer-portal.js +14 -14
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-donation.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-i18n.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-nucleon-element.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +230 -1
- package/dist/cdn/foxy-spinner.js +2 -2
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +2 -2
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-table.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/{shared-3747bcc6.js → shared-090432b4.js} +1 -1
- package/dist/cdn/shared-1d0ef57d.js +1 -0
- package/dist/cdn/{shared-720656e1.js → shared-23966eed.js} +1 -1
- package/dist/cdn/{shared-0fab8117.js → shared-497fd63c.js} +1 -1
- package/dist/cdn/{shared-963eb150.js → shared-4b33c6d2.js} +2 -2
- package/dist/cdn/{shared-18f51b0f.js → shared-525dd8c8.js} +1 -1
- package/dist/cdn/{shared-654b4125.js → shared-6872bf5c.js} +1 -1
- package/dist/cdn/shared-69d0ca61.js +1 -0
- package/dist/cdn/{shared-0073399d.js → shared-6f84ea16.js} +1 -1
- package/dist/cdn/{shared-3fbdd8df.js → shared-77bdf956.js} +1 -1
- package/dist/cdn/shared-8057ee9c.js +1 -0
- package/dist/cdn/{shared-67b701fa.js → shared-84203d52.js} +1 -1
- package/dist/cdn/shared-851b97ef.js +1 -0
- package/dist/cdn/{shared-3eee4ff4.js → shared-8f34ce95.js} +1 -1
- package/dist/cdn/{shared-75c1b56a.js → shared-92d03925.js} +1 -1
- package/dist/cdn/{shared-4d16f087.js → shared-96de56d4.js} +1 -1
- package/dist/cdn/{shared-090ed5f4.js → shared-9f78e096.js} +1 -1
- package/dist/cdn/{shared-c7566461.js → shared-a5fbfdc7.js} +1 -1
- package/dist/cdn/{shared-4b3d6aeb.js → shared-a7709d26.js} +1 -1
- package/dist/cdn/{shared-b817761e.js → shared-aac9fed8.js} +1 -1
- package/dist/cdn/{shared-4b7b3564.js → shared-b13a5ed3.js} +1 -1
- package/dist/cdn/{shared-a67a2bc1.js → shared-bba615b8.js} +1 -1
- package/dist/cdn/{shared-3e548f74.js → shared-bf28ab5e.js} +1 -1
- package/dist/cdn/shared-c70d9713.js +1 -0
- package/dist/cdn/{shared-5bfca1d2.js → shared-e058cb87.js} +1 -1
- package/dist/cdn/{shared-97fc8fd7.js → shared-f06d08d5.js} +1 -1
- package/dist/cdn/translations/shared/en.json +3 -0
- package/dist/cdn/translations/shared/es.json +3 -0
- package/dist/elements/private/Dialog/DialogWindow.d.ts +3 -2
- package/dist/elements/private/Dialog/DialogWindow.js +11 -1
- package/dist/elements/private/Dialog/DialogWindow.js.map +1 -1
- package/dist/elements/public/CustomerApi/cookieStorage.js +2 -1
- package/dist/elements/public/CustomerApi/cookieStorage.js.map +1 -1
- package/dist/elements/public/CustomerPortalSettings/private/DisallowedDates/DisallowedDates.js +1 -1
- package/dist/elements/public/CustomerPortalSettings/private/DisallowedDates/DisallowedDates.js.map +1 -1
- package/dist/elements/public/CustomerPortalSettings/private/FrequencyList/FrequencyList.js +3 -2
- package/dist/elements/public/CustomerPortalSettings/private/FrequencyList/FrequencyList.js.map +1 -1
- package/dist/elements/public/CustomerPortalSettings/private/NextDateModificationRule/NextDateModificationRule.js +2 -2
- package/dist/elements/public/CustomerPortalSettings/private/NextDateModificationRule/NextDateModificationRule.js.map +1 -1
- package/dist/elements/public/CustomerPortalSettings/private/OriginsList/OriginsList.js +2 -1
- package/dist/elements/public/CustomerPortalSettings/private/OriginsList/OriginsList.js.map +1 -1
- package/dist/elements/public/SignInForm/SignInForm.d.ts +7 -0
- package/dist/elements/public/SignInForm/SignInForm.js +57 -2
- package/dist/elements/public/SignInForm/SignInForm.js.map +1 -1
- package/dist/elements/public/SignInForm/index.d.ts +1 -0
- package/dist/elements/public/SignInForm/index.js +1 -0
- package/dist/elements/public/SignInForm/index.js.map +1 -1
- package/dist/elements/public/SignInForm/types.d.ts +3 -0
- package/dist/elements/public/SignInForm/types.js.map +1 -1
- package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +2 -2
- package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
- package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +1 -1
- package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
- package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js +8 -2
- package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js.map +1 -1
- package/dist/mixins/themeable.js +30 -25
- package/dist/mixins/themeable.js.map +1 -1
- package/dist/mixins/translatable.d.ts +3 -4
- package/dist/mixins/translatable.js +2 -6
- package/dist/mixins/translatable.js.map +1 -1
- package/package.json +2 -2
- package/dist/cdn/shared-51f550e3.js +0 -1
- package/dist/cdn/shared-6dc6912f.js +0 -1
- package/dist/cdn/shared-75bde6c4.js +0 -1
- package/dist/cdn/shared-916991a9.js +0 -1
- package/dist/cdn/shared-a494131d.js +0 -1
- package/dist/cdn/shared-c7ab8ec5.js +0 -1
|
@@ -54,6 +54,8 @@
|
|
|
54
54
|
"loading_paused": "En pausa",
|
|
55
55
|
"merchant": "Comerciante",
|
|
56
56
|
"merchant_explainer": "Maneja artículos, finanzas y esta tienda en general.",
|
|
57
|
+
"mfa_remember_device": "Confía en este dispositivo",
|
|
58
|
+
"mfa_remember_device_hint": "No requiera un código de verificación cuando inicie sesión desde este dispositivo en el futuro",
|
|
57
59
|
"mfa_totp_code": "Código de una sola vez",
|
|
58
60
|
"mfa_totp_code_hint": "Escanee la imagen a continuación con su aplicación de autenticación para recibir el código de verificación",
|
|
59
61
|
"mfa_totp_code_invalid_error": "El código único que ingresó no es válido. Inténtalo de nuevo.",
|
|
@@ -86,6 +88,7 @@
|
|
|
86
88
|
"subscription_active": "Próximo pago el {{date, date}}",
|
|
87
89
|
"subscription_cancelled": "Finalizó el {{date, date}}",
|
|
88
90
|
"subscription_failed": "Error en el pago el {{date, date}}",
|
|
91
|
+
"subscription_inactive": "Inactiva",
|
|
89
92
|
"subscription_plural": "Suscripciones",
|
|
90
93
|
"subscription_will_be_cancelled": "Finaliza el {{date, date}}",
|
|
91
94
|
"tax_id": "Número de identificación fiscal",
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { LitElement } from 'lit-element';
|
|
1
|
+
import { CSSResultArray, LitElement } from 'lit-element';
|
|
2
2
|
declare const DialogWindow_base: typeof LitElement & {
|
|
3
|
-
styles:
|
|
3
|
+
styles: CSSResultArray;
|
|
4
4
|
};
|
|
5
5
|
export declare class DialogWindow extends DialogWindow_base {
|
|
6
|
+
static get styles(): CSSResultArray;
|
|
6
7
|
}
|
|
7
8
|
export {};
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import { LitElement } from 'lit-element';
|
|
1
|
+
import { LitElement, css } from 'lit-element';
|
|
2
2
|
import { ResponsiveMixin } from "../../../mixins/responsive.js";
|
|
3
3
|
import { ThemeableMixin } from "../../../mixins/themeable.js";
|
|
4
4
|
export class DialogWindow extends ThemeableMixin(ResponsiveMixin(LitElement)) {
|
|
5
|
+
static get styles() {
|
|
6
|
+
return [
|
|
7
|
+
super.styles,
|
|
8
|
+
css `:host{
|
|
9
|
+
position:relative;
|
|
10
|
+
z-index:1000;
|
|
11
|
+
}
|
|
12
|
+
`,
|
|
13
|
+
];
|
|
14
|
+
}
|
|
5
15
|
}
|
|
6
16
|
//# sourceMappingURL=DialogWindow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogWindow.js","sourceRoot":"","sources":["../../../../src/elements/private/Dialog/DialogWindow.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DialogWindow.js","sourceRoot":"","sources":["../../../../src/elements/private/Dialog/DialogWindow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAE3D,MAAM,OAAO,YAAa,SAAQ,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3E,MAAM,KAAK,MAAM;QACf,OAAO;YACL,KAAK,CAAC,MAAM;YACZ,GAAG;;;;OAKF;SACF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { CSSResultArray, LitElement, css } from 'lit-element';\n\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\n\nexport class DialogWindow extends ThemeableMixin(ResponsiveMixin(LitElement)) {\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n position: relative;\n z-index: 1000;\n }\n `,\n ];\n }\n}\n"]}
|
|
@@ -45,7 +45,8 @@ class CustomCookieStorage extends CookieStorageModule.CookieStorage {
|
|
|
45
45
|
setItem(name, value, options) {
|
|
46
46
|
if (name === API.SESSION) {
|
|
47
47
|
const session = JSON.parse(value);
|
|
48
|
-
const
|
|
48
|
+
const expiresInMs = session.expires_in * 1000;
|
|
49
|
+
const expires = new Date(new Date(session.date_created).getTime() + expiresInMs);
|
|
49
50
|
super.setItem('fx.customer', session.session_token, { expires });
|
|
50
51
|
super.setItem('fx.customer.jwt', session.jwt, { expires });
|
|
51
52
|
super.setItem('fx.customer.start', session.date_created, { expires });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookieStorage.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerApi/cookieStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,mBAAmB,MAAM,gBAAgB,CAAC;AAKjD;;;;;;;;GAQG;AACH,MAAM,mBAAoB,SAAQ,mBAAmB,CAAC,aAAa;IACjE;QACE,KAAK,CAAC;YACJ,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,IAAI,IAAI,EAAE;YACnB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,QAAQ,CAAC,QAAQ;YACzB,IAAI,EAAE,GAAG;SACV,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE;YACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAE7C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAE1F,MAAM,KAAK,GAA0B;gBACnC,aAAa,EAAE,QAAQ;gBACvB,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBAC9B,GAAG;aACJ,CAAC;YAEF,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC7C,IAAI,GAAG,KAAK,IAAI;gBAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YAElC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,OAAuB;QAC1D,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA0B,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"cookieStorage.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerApi/cookieStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { API } from '@foxy.io/sdk/customer';\nimport { CookieOptions } from 'cookie-storage/lib/cookie-options';\nimport CookieStorageModule from 'cookie-storage';\nimport { StoredSession } from '@foxy.io/sdk/dist/types/customer/types';\n\ntype ExtendedStoredSession = StoredSession & { sso?: string };\n\n/**\n * Compatibility solution for the 3rd-party code designed to work with the original beta\n * version of the customer portal (StencilJS-based). Supports only one key (`session`) and\n * and stores provided value in `fx.customer`, `fx.customer.jwt`, `fx.customer.sso` cookies.\n * Clearing the storage will result in removal of all cookies prefixed with `fx.customer`.\n *\n * This storage will be replaced with a better solution from v2 of our SDK in\n * the next major version of the elements package.\n */\nclass CustomCookieStorage extends CookieStorageModule.CookieStorage {\n constructor() {\n super({\n sameSite: 'Strict',\n expires: new Date(),\n secure: true,\n domain: location.hostname,\n path: '/',\n });\n }\n\n getItem(name: string): string | null {\n if (name === API.SESSION) {\n const customer = super.getItem('fx.customer');\n const duration = super.getItem('fx.customer.duration');\n const start = super.getItem('fx.customer.start');\n const jwt = super.getItem('fx.customer.jwt');\n\n if (customer === null || duration === null || start === null || jwt === null) return null;\n\n const value: ExtendedStoredSession = {\n session_token: customer,\n date_created: start,\n expires_in: parseInt(duration),\n jwt,\n };\n\n const sso = super.getItem('fx.customer.sso');\n if (sso !== null) value.sso = sso;\n\n return JSON.stringify(value);\n } else {\n return super.getItem(name);\n }\n }\n\n setItem(name: string, value: string, options?: CookieOptions): void {\n if (name === API.SESSION) {\n const session = JSON.parse(value) as ExtendedStoredSession;\n const expiresInMs = session.expires_in * 1000;\n const expires = new Date(new Date(session.date_created).getTime() + expiresInMs);\n\n super.setItem('fx.customer', session.session_token, { expires });\n super.setItem('fx.customer.jwt', session.jwt, { expires });\n super.setItem('fx.customer.start', session.date_created, { expires });\n super.setItem('fx.customer.duration', String(session.expires_in), { expires });\n\n if (session.sso) super.setItem('fx.customer.sso', session.sso, { expires });\n } else {\n return super.setItem(name, value, options);\n }\n }\n\n clear(): void {\n for (let index = 0; index < this.length; ) {\n const name = super.key(index) as string;\n\n if (name.startsWith('fx.customer')) {\n super.removeItem(name);\n } else {\n index++;\n }\n }\n }\n}\n\nexport const cookieStorage = new CustomCookieStorage();\n"]}
|
package/dist/elements/public/CustomerPortalSettings/private/DisallowedDates/DisallowedDates.js
CHANGED
|
@@ -95,7 +95,7 @@ export class DisallowedDates extends Translatable {
|
|
|
95
95
|
.lang=${this.lang}
|
|
96
96
|
key="ndmod.add_range_hint"
|
|
97
97
|
class=${classMap({
|
|
98
|
-
'block text-xs mt-xs': true,
|
|
98
|
+
'block text-xs mt-xs text-center sm-text-left': true,
|
|
99
99
|
'text-tertiary': this.value.length < 20,
|
|
100
100
|
'text-primary': this.value.length >= 20,
|
|
101
101
|
})}
|
package/dist/elements/public/CustomerPortalSettings/private/DisallowedDates/DisallowedDates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisallowedDates.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerPortalSettings/private/DisallowedDates/DisallowedDates.ts"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAwC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,8CAA2C;AAClE,OAAO,EAAE,QAAQ,EAAE,0CAAuC;AAC1D,OAAO,EAAE,SAAS,EAAE,2CAAwC;AAC5D,OAAO,EAAE,aAAa,EAAE,+CAA4C;AAEpE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAkC;AACjE,OAAO,EAAE,0BAA0B,EAAE,wCAAqC;AAE1E,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAAjD;;QAoBS,UAAK,GAAa,EAAE,CAAC;QAErB,aAAQ,GAAG,KAAK,CAAC;QAEhB,iBAAY,GAAG,EAAE,CAAC;QAElB,eAAU,GAAG,EAAE,CAAC;IA2H1B,CAAC;IApJQ,MAAM,KAAK,cAAc;QAC9B,OAAO;YACL,oBAAoB,EAAE,iBAAiB;YACvC,eAAe,EAAE,aAAa;YAC9B,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5C,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAEM,MAAM,KAAK,UAAU;QAC1B,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC5B,CAAC;IACJ,CAAC;IAUM,MAAM;QACX,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAEvF,OAAO,IAAI,CAAA;;;iBAGE,IAAI,CAAC,KAAK;oBACP,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;kBACrC,IAAI,CAAC,kBAAkB;;UAE/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/B,IAAI,CAAC,YAAY;YACf,CAAC,CAAC,IAAI,CAAA,cAAc,KAAK,qBAAqB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACrF,CAAC,CAAC,IAAI,CAAA,oBAAoB,KAAK,IAAI,IAAI,eAAe,CACzD;;;;;;uBAMc,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;uBACvC,IAAI,CAAC,YAAY;0BACd,eAAe;6BACZ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;wBAChE,IAAI,CAAC,wBAAwB;;;;;;qBAMhC,IAAI,CAAC,YAAY;uBACf,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;uBACrC,IAAI,CAAC,UAAU;0BACZ,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY;6BAClC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;;wBAEhE,IAAI,CAAC,sBAAsB;;;;;;wBAM3B,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY;;;qBAGxC,IAAI,CAAC,QAAQ;;;sBAGZ,IAAI,CAAC,IAAI;gCACC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;oBAChD,IAAI,CAAC,EAAE;;;;;;;UAOjB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,IAAI,CAAA;;sBAEM,IAAI,CAAC,EAAE;wBACL,IAAI,CAAC,IAAI;;wBAET,QAAQ,CAAC;gBACf,
|
|
1
|
+
{"version":3,"file":"DisallowedDates.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerPortalSettings/private/DisallowedDates/DisallowedDates.ts"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAwC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,8CAA2C;AAClE,OAAO,EAAE,QAAQ,EAAE,0CAAuC;AAC1D,OAAO,EAAE,SAAS,EAAE,2CAAwC;AAC5D,OAAO,EAAE,aAAa,EAAE,+CAA4C;AAEpE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAkC;AACjE,OAAO,EAAE,0BAA0B,EAAE,wCAAqC;AAE1E,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAAjD;;QAoBS,UAAK,GAAa,EAAE,CAAC;QAErB,aAAQ,GAAG,KAAK,CAAC;QAEhB,iBAAY,GAAG,EAAE,CAAC;QAElB,eAAU,GAAG,EAAE,CAAC;IA2H1B,CAAC;IApJQ,MAAM,KAAK,cAAc;QAC9B,OAAO;YACL,oBAAoB,EAAE,iBAAiB;YACvC,eAAe,EAAE,aAAa;YAC9B,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5C,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAEM,MAAM,KAAK,UAAU;QAC1B,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC5B,CAAC;IACJ,CAAC;IAUM,MAAM;QACX,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAEvF,OAAO,IAAI,CAAA;;;iBAGE,IAAI,CAAC,KAAK;oBACP,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;kBACrC,IAAI,CAAC,kBAAkB;;UAE/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/B,IAAI,CAAC,YAAY;YACf,CAAC,CAAC,IAAI,CAAA,cAAc,KAAK,qBAAqB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACrF,CAAC,CAAC,IAAI,CAAA,oBAAoB,KAAK,IAAI,IAAI,eAAe,CACzD;;;;;;uBAMc,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;uBACvC,IAAI,CAAC,YAAY;0BACd,eAAe;6BACZ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;wBAChE,IAAI,CAAC,wBAAwB;;;;;;qBAMhC,IAAI,CAAC,YAAY;uBACf,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;uBACrC,IAAI,CAAC,UAAU;0BACZ,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY;6BAClC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;;wBAEhE,IAAI,CAAC,sBAAsB;;;;;;wBAM3B,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY;;;qBAGxC,IAAI,CAAC,QAAQ;;;sBAGZ,IAAI,CAAC,IAAI;gCACC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;oBAChD,IAAI,CAAC,EAAE;;;;;;;UAOjB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,IAAI,CAAA;;sBAEM,IAAI,CAAC,EAAE;wBACL,IAAI,CAAC,IAAI;;wBAET,QAAQ,CAAC;gBACf,8CAA8C,EAAE,IAAI;gBACpD,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;gBACvC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;aACxC,CAAC;;;aAGL;YACH,CAAC,CAAC,EAAE;;KAET,CAAC;IACJ,CAAC;IAEM,OAAO;QACZ,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACxC,MAAM,UAAU,GAAI,IAAI,CAAC,WAAyC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChG,MAAM,OAAO,GAAG,IAAI,CAAC,UAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAE9D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAE,MAA4B,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClF,CAAC;IAEO,wBAAwB,CAAC,GAAe;QAC9C,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAI,GAAG,CAAC,MAA4B,CAAC,KAAK,CAAC;QAE5D,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC;QAC5C,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE;YAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAEjE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,sBAAsB,CAAC,GAAe;QAC5C,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAI,GAAG,CAAC,MAA4B,CAAC,KAAK,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;YACxC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/E;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACjD;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAEO,kBAAkB,CAAC,GAAoB;QAC7C,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;CACF","sourcesContent":["import { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport { ScopedElementsHost } from '@open-wc/scoped-elements/src/types';\nimport '@polymer/iron-icon';\nimport '@polymer/iron-icons';\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { DatePickerElement } from '@vaadin/vaadin-date-picker';\nimport { html, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Translatable } from '../../../../../mixins/translatable';\nimport { classMap } from '../../../../../utils/class-map';\nimport { parseDate } from '../../../../../utils/parse-date';\nimport { translateDate } from '../../../../../utils/translate-date';\nimport { ListChangeEvent } from '../../../../private/events';\nimport { I18N, List, Skeleton } from '../../../../private/index';\nimport { DisallowedDatesChangeEvent } from './DisallowedDatesChangeEvent';\n\nexport class DisallowedDates extends Translatable {\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-date-picker': DatePickerElement,\n 'vaadin-button': ButtonElement,\n 'x-skeleton': Skeleton,\n 'iron-icon': customElements.get('iron-icon'),\n 'x-i18n': I18N,\n 'x-list': List,\n };\n }\n\n public static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n value: { type: Array },\n disabled: { type: Boolean },\n };\n }\n\n public value: string[] = [];\n\n public disabled = false;\n\n private __startValue = '';\n\n private __endValue = '';\n\n public render(): TemplateResult {\n const isInputDisabled = this.value.length >= 20 || this.disabled || !this._isI18nReady;\n\n return html`\n <x-list\n data-testid=\"list\"\n .value=${this.value}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${this.__handleListChange}\n >\n ${this.value.map((item, index) =>\n this._isI18nReady\n ? html`<span slot=${index} class=\"truncate\">${translateDate(item, this.lang)}</span>`\n : html`<x-skeleton slot=${index}>${item}</x-skeleton>`\n )}\n\n <div class=\"sm-flex sm-items-end\">\n <div class=\"grid grid-cols-2 gap-s\">\n <vaadin-date-picker\n data-testid=\"start\"\n .label=${this._t('ndmod.range_start').toString()}\n .value=${this.__startValue}\n .disabled=${isInputDisabled}\n .placeholder=${this._isI18nReady ? this._t('ndmod.select').toString() : ''}\n @change=${this.__handleStartValueChange}\n >\n </vaadin-date-picker>\n\n <vaadin-date-picker\n data-testid=\"end\"\n .min=${this.__startValue}\n .label=${this._t('ndmod.range_end').toString()}\n .value=${this.__endValue}\n .disabled=${isInputDisabled || !this.__startValue}\n .placeholder=${this._isI18nReady ? this._t('ndmod.select').toString() : ''}\n clear-button-visible\n @change=${this.__handleEndValueChange}\n >\n </vaadin-date-picker>\n </div>\n\n <vaadin-button\n .disabled=${isInputDisabled || !this.__startValue}\n data-testid=\"submit\"\n class=\"w-full mt-s sm-mt-0 sm-w-auto sm-ml-s\"\n @click=${this.__submit}\n >\n <x-i18n\n .lang=${this.lang}\n .key=\"ndmod.add_${this.__endValue ? 'range' : 'single'}\"\n .ns=${this.ns}\n >\n </x-i18n>\n <iron-icon icon=\"icons:add\" slot=\"suffix\"></iron-icon>\n </vaadin-button>\n </div>\n\n ${this.value.length > 0\n ? html`\n <x-i18n\n .ns=${this.ns}\n .lang=${this.lang}\n key=\"ndmod.add_range_hint\"\n class=${classMap({\n 'block text-xs mt-xs text-center sm-text-left': true,\n 'text-tertiary': this.value.length < 20,\n 'text-primary': this.value.length >= 20,\n })}\n >\n </x-i18n>\n `\n : ''}\n </x-list>\n `;\n }\n\n public updated(): void {\n const globalName = 'vaadin-date-picker';\n const scopedName = (this.constructor as typeof ScopedElementsHost).getScopedTagName(globalName);\n const pickers = this.shadowRoot!.querySelectorAll(scopedName);\n\n Array.from(pickers).forEach(picker => (picker as DatePickerElement).validate());\n }\n\n private __handleStartValueChange(evt: InputEvent) {\n evt.stopPropagation();\n this.__startValue = (evt.target as DatePickerElement).value;\n\n const end = parseDate(this.__endValue);\n const start = parseDate(this.__startValue)!;\n if (end && end.getTime() < start.getTime()) this.__endValue = '';\n\n this.requestUpdate();\n }\n\n private __handleEndValueChange(evt: InputEvent) {\n evt.stopPropagation();\n this.__endValue = (evt.target as DatePickerElement).value;\n this.requestUpdate();\n }\n\n private __submit() {\n if (this.__startValue && this.__endValue) {\n this.value = [...this.value, [this.__startValue, this.__endValue].join('..')];\n } else {\n this.value = [...this.value, this.__startValue];\n }\n\n this.__sendChange();\n this.__startValue = '';\n this.__endValue = '';\n }\n\n private __handleListChange(evt: ListChangeEvent) {\n this.value = evt.detail;\n this.__sendChange();\n }\n\n private __sendChange() {\n this.dispatchEvent(new DisallowedDatesChangeEvent(this.value));\n }\n}\n"]}
|
|
@@ -41,9 +41,10 @@ export class FrequencyList extends Translatable {
|
|
|
41
41
|
? html `<span slot=${index}>${this.__getText(item)}</span>`
|
|
42
42
|
: html `<x-skeleton slot=${index}>${item}</x-skeleton>`)}
|
|
43
43
|
|
|
44
|
-
<div class="
|
|
44
|
+
<div class="w-full md-flex">
|
|
45
45
|
<x-frequency-input
|
|
46
46
|
data-testid="input"
|
|
47
|
+
class="mb-s md-mb-0 md-mr-s"
|
|
47
48
|
.lang=${this.lang}
|
|
48
49
|
.value=${this.__newValue}
|
|
49
50
|
.disabled=${isInputDisabled}
|
|
@@ -69,7 +70,7 @@ export class FrequencyList extends Translatable {
|
|
|
69
70
|
.lang=${this.lang}
|
|
70
71
|
key="fmod.add_option_hint"
|
|
71
72
|
class=${classMap({
|
|
72
|
-
'block text-xs mt-xs': true,
|
|
73
|
+
'block text-xs mt-xs text-center md-text-left': true,
|
|
73
74
|
'text-tertiary': this.value.length < 20,
|
|
74
75
|
'text-primary': this.value.length >= 20,
|
|
75
76
|
})}
|
package/dist/elements/public/CustomerPortalSettings/private/FrequencyList/FrequencyList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrequencyList.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerPortalSettings/private/FrequencyList/FrequencyList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAwC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,8CAA2C;AAClE,OAAO,EAAE,QAAQ,EAAE,0CAAuC;AAE1D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAkC;AACjE,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAElE,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AAEtE,MAAM,OAAO,aAAc,SAAQ,YAAY;IA0B7C;QACE,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAP7B,UAAK,GAAa,EAAE,CAAC;QAErB,aAAQ,GAAG,KAAK,CAAC;QAEhB,eAAU,GAAG,cAAc,CAAC,YAAY,CAAC;IAIjD,CAAC;IA3BM,MAAM,KAAK,cAAc;QAC9B,OAAO;YACL,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5C,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC;YACpD,mBAAmB,EAAE,cAAc;YACnC,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC5B,CAAC;IACJ,CAAC;IAYM,MAAM;QACX,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QAEvF,OAAO,IAAI,CAAA;;;iBAGE,IAAI,CAAC,KAAK;oBACP,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;kBACrC,IAAI,CAAC,kBAAkB;;UAE/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/B,IAAI,CAAC,YAAY;YACf,CAAC,CAAC,IAAI,CAAA,cAAc,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS;YAC1D,CAAC,CAAC,IAAI,CAAA,oBAAoB,KAAK,IAAI,IAAI,eAAe,CACzD
|
|
1
|
+
{"version":3,"file":"FrequencyList.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerPortalSettings/private/FrequencyList/FrequencyList.ts"],"names":[],"mappings":"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","sourcesContent":["import { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport { html, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Translatable } from '../../../../../mixins/translatable';\nimport { classMap } from '../../../../../utils/class-map';\nimport { ListChangeEvent } from '../../../../private/events';\nimport { I18N, List, Skeleton } from '../../../../private/index';\nimport { FrequencyInput } from '../FrequencyInput/FrequencyInput';\nimport { FrequencyInputChangeEvent } from '../FrequencyInput/FrequencyInputChangeEvent';\nimport { FrequencyListChangeEvent } from './FrequencyListChangeEvent';\n\nexport class FrequencyList extends Translatable {\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'iron-icon': customElements.get('iron-icon'),\n 'vaadin-button': customElements.get('vaadin-button'),\n 'x-frequency-input': FrequencyInput,\n 'x-skeleton': Skeleton,\n 'x-list': List,\n 'x-i18n': I18N,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n value: { type: Array },\n disabled: { type: Boolean },\n };\n }\n\n public value: string[] = [];\n\n public disabled = false;\n\n private __newValue = FrequencyInput.defaultValue;\n\n public constructor() {\n super('customer-portal-settings');\n }\n\n public render(): TemplateResult {\n const isInputDisabled = this.disabled || !this._isI18nReady || this.value.length >= 20;\n\n return html`\n <x-list\n data-testid=\"list\"\n .value=${this.value}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${this.__handleListChange}\n >\n ${this.value.map((item, index) =>\n this._isI18nReady\n ? html`<span slot=${index}>${this.__getText(item)}</span>`\n : html`<x-skeleton slot=${index}>${item}</x-skeleton>`\n )}\n\n <div class=\"w-full md-flex\">\n <x-frequency-input\n data-testid=\"input\"\n class=\"mb-s md-mb-0 md-mr-s\"\n .lang=${this.lang}\n .value=${this.__newValue}\n .disabled=${isInputDisabled}\n @change=${this.__handleNewValueChange}\n >\n </x-frequency-input>\n\n <vaadin-button\n data-testid=\"button\"\n class=\"w-full md-w-auto\"\n .disabled=${isInputDisabled}\n @click=${this.__handleSubmit}\n >\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"fmod.add_option\"></x-i18n>\n <iron-icon icon=\"lumo:plus\" slot=\"suffix\"></iron-icon>\n </vaadin-button>\n </div>\n\n ${this.value.length > 0\n ? html`\n <x-i18n\n .ns=${this.ns}\n .lang=${this.lang}\n key=\"fmod.add_option_hint\"\n class=${classMap({\n 'block text-xs mt-xs text-center md-text-left': true,\n 'text-tertiary': this.value.length < 20,\n 'text-primary': this.value.length >= 20,\n })}\n >\n </x-i18n>\n `\n : ''}\n </x-list>\n `;\n }\n\n private __handleNewValueChange(evt: FrequencyInputChangeEvent) {\n this.__newValue = evt.detail as string;\n }\n\n private __handleListChange(evt: ListChangeEvent) {\n this.value = evt.detail;\n this.__sendChange();\n }\n\n private __handleSubmit() {\n this.value = [...this.value, this.__newValue];\n this.__newValue = FrequencyInput.defaultValue;\n this.__sendChange();\n }\n\n private __sendChange() {\n this.dispatchEvent(new FrequencyListChangeEvent(this.value));\n }\n\n private __getText(value: string) {\n const units = value[value.length - 1];\n const count = parseInt(value.replace(units, ''));\n return this._t('duration', { count, units: this._t(units, { count }) });\n }\n}\n"]}
|
|
@@ -106,8 +106,8 @@ export class NextDateModificationRule extends Translatable {
|
|
|
106
106
|
</x-jsonata-input>
|
|
107
107
|
</x-group>
|
|
108
108
|
|
|
109
|
-
<div class="flex
|
|
110
|
-
<div class="md-w-1-2 md-border-r md-border-contrast-10">
|
|
109
|
+
<div class="flex flex-col md-flex-row">
|
|
110
|
+
<div class="mb-l md-mb-0 md-w-1-2 md-border-r md-border-contrast-10">
|
|
111
111
|
<x-offset-input
|
|
112
112
|
data-testid="min"
|
|
113
113
|
type="min"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NextDateModificationRule.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerPortalSettings/private/NextDateModificationRule/NextDateModificationRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport { html, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Translatable } from '../../../../../mixins/translatable';\nimport { classMap } from '../../../../../utils/class-map';\nimport { concatTruthy } from '../../../../../utils/concat-truthy';\nimport { parseDuration } from '../../../../../utils/parse-duration';\nimport { prevent } from '../../../../../utils/prevent';\nimport { translateDate } from '../../../../../utils/translate-date';\nimport { translateWeekday } from '../../../../../utils/translate-weekday';\nimport { Group, I18N, Warning } from '../../../../private/index';\nimport { AllowedDays } from '../AllowedDays/AllowedDays';\nimport { AllowedDaysChangeEvent } from '../AllowedDays/AllowedDaysChangeEvent';\nimport { DisallowedDates } from '../DisallowedDates/DisallowedDates';\nimport { DisallowedDatesChangeEvent } from '../DisallowedDates/DisallowedDatesChangeEvent';\nimport { JSONataInput } from '../JSONataInput/JSONataInput';\nimport { JSONataInputChangeEvent } from '../JSONataInput/JSONataInputChangeEvent';\nimport { OffsetInput } from '../OffsetInput/OffsetInput';\nimport { OffsetInputChangeEvent } from '../OffsetInput/OffsetInputChangeEvent';\nimport { NextDateModificationRuleChangeEvent } from './NextDateModificationRuleChangeEvent';\nimport { NextDateModificationRuleRemoveEvent } from './NextDateModificationRuleRemoveEvent';\nimport { Rule } from './Rule';\n\nexport class NextDateModificationRule extends Translatable {\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'x-disallowed-dates': DisallowedDates,\n 'x-jsonata-input': JSONataInput,\n 'x-offset-input': OffsetInput,\n 'x-allowed-days': AllowedDays,\n 'iron-icon': customElements.get('iron-icon'),\n 'x-warning': Warning,\n 'x-group': Group,\n 'x-i18n': I18N,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n disabled: { type: Boolean },\n value: { type: Object },\n open: { type: Boolean },\n };\n }\n\n public disabled = false;\n\n public value: Rule = { jsonataQuery: '*' };\n\n public open = false;\n\n public constructor() {\n super('customer-portal-settings');\n }\n\n public render(): TemplateResult {\n const { min, max, allowedDays, jsonataQuery, disallowedDates } = this.value;\n const hasOffset = min || max;\n const hasAllowed = allowedDays && allowedDays.days.length > 0;\n const hasDisallowed = disallowedDates && disallowedDates.length > 0;\n const openStyle = this.open ? '' : 'rounded-b-l';\n\n return html`\n <x-group frame>\n <details\n data-testid=\"details\"\n class=${classMap({ 'font-lumo': true, 'pointer-events-none': !this._isI18nReady })}\n ?open=${this.open}\n @toggle=${() => (this.open = !this.open)}\n >\n <summary\n class=\"${openStyle} cursor-pointer relative leading-s rounded-t-l focus-outline-none focus-shadow-outline\"\n >\n <div class=\"p-m mr-xl text-m text-header font-medium space-y-s\">\n <div>\n <x-i18n\n .ns=${this.ns}\n .lang=${this.lang}\n key=${`ndmod.${jsonataQuery === '*' ? 'all' : 'some'}Title`}\n >\n ${jsonataQuery !== '*' ? this.__renderJSONataSummary(jsonataQuery) : ''}\n </x-i18n>\n </div>\n\n ${hasOffset || hasAllowed || hasDisallowed\n ? html`\n <div>\n ${concatTruthy(\n hasOffset && this.__renderMinMaxSummary(min, max),\n hasAllowed && this.__renderAllowedSummary(allowedDays!),\n hasDisallowed && this.__renderDisallowedSummary(disallowedDates!)\n )}\n </div>\n `\n : ''}\n </div>\n\n <button\n data-testid=\"remove\"\n .disabled=${this.disabled || !this._isI18nReady}\n class=\"flex items-center justify-center rounded absolute top-0 right-0 text-tertiary hover-text-secondary disabled-text-tertiary disabled-opacity-50 disabled-cursor-default focus-outline-none focus-shadow-outline\"\n style=\"width: 54px; height: 54px\"\n @click=${prevent(() => this.dispatchEvent(new NextDateModificationRuleRemoveEvent()))}\n >\n <iron-icon icon=\"lumo:cross\"></iron-icon>\n </button>\n </summary>\n\n <article class=\"space-y-l\">\n <x-group>\n <x-i18n slot=\"header\" .ns=${this.ns} .lang=${this.lang} key=\"ndmod.match\"> </x-i18n>\n\n <x-jsonata-input\n data-testid=\"jsonata\"\n .ns=${this.ns}\n .lang=${this.lang}\n .value=${jsonataQuery}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: JSONataInputChangeEvent) => {\n this.value = { ...this.value, jsonataQuery: evt.detail as string };\n this.__sendUpdate();\n }}\n >\n </x-jsonata-input>\n </x-group>\n\n <div class=\"flex space-y-l md-space-y-0 flex-col md-flex-row\">\n <div class=\"md-w-1-2 md-border-r md-border-contrast-10\">\n <x-offset-input\n data-testid=\"min\"\n type=\"min\"\n .lang=${this.lang}\n .value=${min}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: OffsetInputChangeEvent) => {\n this.value = { ...this.value, min: evt.detail };\n this.__sendUpdate();\n }}\n >\n </x-offset-input>\n </div>\n\n <div class=\"md-w-1-2\">\n <x-offset-input\n data-testid=\"max\"\n type=\"max\"\n .lang=${this.lang}\n .value=${max}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: OffsetInputChangeEvent) => {\n this.value = { ...this.value, max: evt.detail };\n this.__sendUpdate();\n }}\n >\n </x-offset-input>\n </div>\n </div>\n\n ${this.__compareDurations(min, max) === -1\n ? html`\n <x-warning class=\"mx-m\" data-testid=\"warning\">\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.minWarning\"> </x-i18n>\n </x-warning>\n `\n : ''}\n\n <x-group>\n <x-i18n slot=\"header\" .ns=${this.ns} .lang=${this.lang} key=\"ndmod.allowed\"> </x-i18n>\n\n <x-allowed-days\n data-testid=\"allowed\"\n .lang=${this.lang}\n .value=${allowedDays}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: AllowedDaysChangeEvent) => {\n this.value = { ...this.value, allowedDays: evt.detail };\n this.__sendUpdate();\n }}\n >\n </x-allowed-days>\n </x-group>\n\n <x-group>\n <x-i18n slot=\"header\" .ns=${this.ns} .lang=${this.lang} key=\"ndmod.excluded\">\n </x-i18n>\n\n <x-disallowed-dates\n data-testid=\"disallowed\"\n .ns=${this.ns}\n .lang=${this.lang}\n .value=${disallowedDates ?? []}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: DisallowedDatesChangeEvent) => {\n this.value = { ...this.value, disallowedDates: evt.detail };\n this.__sendUpdate();\n }}\n >\n </x-disallowed-dates>\n </x-group>\n </article>\n </details>\n </x-group>\n `;\n }\n\n private __sendUpdate() {\n this.dispatchEvent(new NextDateModificationRuleChangeEvent(this.value));\n }\n\n private __getEstimatedDaysFrom(duration: string) {\n const { count, units } = parseDuration(duration);\n const multipliers = { y: 365, m: 31, w: 7, d: 1 };\n\n return count * multipliers[units as 'y' | 'm' | 'w' | 'd'];\n }\n\n private __compareDurations(a: string | undefined, b: string | undefined) {\n if (a === b) return 0;\n if (!a || !b) return 1;\n if (this.__getEstimatedDaysFrom(a) < this.__getEstimatedDaysFrom(b)) return 1;\n return -1;\n }\n\n private __renderJSONataSummary(content: string) {\n return html`\n <code class=\"inline-block rounded bg-success-10 text-success px-xs text-xs leading-s\">\n ${content}\n </code>\n `;\n }\n\n private __renderMinMaxContent(result?: ReturnType<typeof parseDuration>) {\n if (result) {\n const { count, units } = result;\n return html`\n ${count}\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=${units} .opts=${{ count }}></x-i18n>\n `;\n } else {\n return html`<x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.any\"></x-i18n>`;\n }\n }\n\n private __renderMinMaxSummary(min?: string, max?: string) {\n return html`\n <div class=\"text-s text-tertiary font-normal\">\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.range\">\n <span>:</span>\n <span class=\"text-secondary\">\n ${this.__renderMinMaxContent(min ? parseDuration(min) : undefined)} —\n ${this.__renderMinMaxContent(max ? parseDuration(max) : undefined)}\n </span>\n </x-i18n>\n </div>\n `;\n }\n\n private __renderAllowedSummary({ type, days }: Required<Rule>['allowedDays']) {\n return html`\n <div class=\"text-s text-tertiary font-normal\">\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.allowed\">\n <span>:</span>\n <span class=\"text-secondary\">\n ${type === 'month' ? days.join(', ') : ''}\n ${type === 'day'\n ? days.map(day => translateWeekday(day, this.lang, 'short')).join(', ')\n : ''}\n </span>\n </x-i18n>\n </div>\n `;\n }\n\n private __renderDisallowedSummary(dates: string[]) {\n return html`\n <div class=\"text-s text-tertiary font-normal\">\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.excluded\">\n <span>:</span>\n <span class=\"text-secondary\">\n ${dates.map(date => translateDate(date, this.lang)).join('; ')}\n </span>\n </x-i18n>\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NextDateModificationRule.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerPortalSettings/private/NextDateModificationRule/NextDateModificationRule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAwC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,8CAA2C;AAClE,OAAO,EAAE,QAAQ,EAAE,0CAAuC;AAC1D,OAAO,EAAE,YAAY,EAAE,8CAA2C;AAClE,OAAO,EAAE,aAAa,EAAE,+CAA4C;AACpE,OAAO,EAAE,OAAO,EAAE,wCAAqC;AACvD,OAAO,EAAE,aAAa,EAAE,+CAA4C;AACpE,OAAO,EAAE,gBAAgB,EAAE,kDAA+C;AAC1E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,qCAAkC;AACjE,OAAO,EAAE,WAAW,EAAE,sCAAmC;AAEzD,OAAO,EAAE,eAAe,EAAE,8CAA2C;AAErE,OAAO,EAAE,YAAY,EAAE,wCAAqC;AAE5D,OAAO,EAAE,WAAW,EAAE,sCAAmC;AAEzD,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAC5F,OAAO,EAAE,mCAAmC,EAAE,iDAA8C;AAG5F,MAAM,OAAO,wBAAyB,SAAQ,YAAY;IA6BxD;QACE,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAP7B,aAAQ,GAAG,KAAK,CAAC;QAEjB,UAAK,GAAS,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;QAEpC,SAAI,GAAG,KAAK,CAAC;IAIpB,CAAC;IA9BM,MAAM,KAAK,cAAc;QAC9B,OAAO;YACL,oBAAoB,EAAE,eAAe;YACrC,iBAAiB,EAAE,YAAY;YAC/B,gBAAgB,EAAE,WAAW;YAC7B,gBAAgB,EAAE,WAAW;YAC7B,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5C,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB,CAAC;IACJ,CAAC;IAYM,MAAM;QACX,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5E,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAEjD,OAAO,IAAI,CAAA;;;;kBAIG,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;kBAC1E,IAAI,CAAC,IAAI;oBACP,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;;;qBAG7B,SAAS;;;;;wBAKN,IAAI,CAAC,EAAE;0BACL,IAAI,CAAC,IAAI;wBACX,SAAS,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,OAAO;;oBAEzD,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;;;;gBAIzE,SAAS,IAAI,UAAU,IAAI,aAAa;YACxC,CAAC,CAAC,IAAI,CAAA;;wBAEE,YAAY,CACZ,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EACjD,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,WAAY,CAAC,EACvD,aAAa,IAAI,IAAI,CAAC,yBAAyB,CAAC,eAAgB,CAAC,CAClE;;mBAEJ;YACH,CAAC,CAAC,EAAE;;;;;0BAKM,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;;;uBAGtC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,mCAAmC,EAAE,CAAC,CAAC;;;;;;;;0CAQzD,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI;;;;sBAI9C,IAAI,CAAC,EAAE;wBACL,IAAI,CAAC,IAAI;yBACR,YAAY;4BACT,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;0BACrC,CAAC,GAA4B,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,MAAgB,EAAE,CAAC;YACnE,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;;;;;;;;;;0BAUS,IAAI,CAAC,IAAI;2BACR,GAAG;8BACA,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;4BACrC,CAAC,GAA2B,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;;;;;;;;;0BASO,IAAI,CAAC,IAAI;2BACR,GAAG;8BACA,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;4BACrC,CAAC,GAA2B,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;;;;;;cAML,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,CAAA;;kCAEc,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI;;iBAE3C;YACH,CAAC,CAAC,EAAE;;;0CAGwB,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI;;;;wBAI5C,IAAI,CAAC,IAAI;yBACR,WAAW;4BACR,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;0BACrC,CAAC,GAA2B,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;;;;;;0CAMyB,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI;;;;;sBAK9C,IAAI,CAAC,EAAE;wBACL,IAAI,CAAC,IAAI;yBACR,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE;4BAClB,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY;0BACrC,CAAC,GAA+B,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;;;;;;;KAOZ,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,sBAAsB,CAAC,QAAgB;QAC7C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAElD,OAAO,KAAK,GAAG,WAAW,CAAC,KAA8B,CAAC,CAAC;IAC7D,CAAC;IAEO,kBAAkB,CAAC,CAAqB,EAAE,CAAqB;QACrE,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEO,sBAAsB,CAAC,OAAe;QAC5C,OAAO,IAAI,CAAA;;UAEL,OAAO;;KAEZ,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,MAAyC;QACrE,IAAI,MAAM,EAAE;YACV,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YAChC,OAAO,IAAI,CAAA;UACP,KAAK;sBACO,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI,QAAQ,KAAK,UAAU,EAAE,KAAK,EAAE;OACzE,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAA,eAAe,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI,4BAA4B,CAAC;SAClF;IACH,CAAC;IAEO,qBAAqB,CAAC,GAAY,EAAE,GAAY;QACtD,OAAO,IAAI,CAAA;;sBAEO,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI;;;cAGlC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;cAChE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;;;;KAIzE,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAiC;QAC1E,OAAO,IAAI,CAAA;;sBAEO,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI;;;cAGlC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;cACvC,IAAI,KAAK,KAAK;YACd,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACvE,CAAC,CAAC,EAAE;;;;KAIb,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,KAAe;QAC/C,OAAO,IAAI,CAAA;;sBAEO,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,IAAI;;;cAGlC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;KAIrE,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport { html, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Translatable } from '../../../../../mixins/translatable';\nimport { classMap } from '../../../../../utils/class-map';\nimport { concatTruthy } from '../../../../../utils/concat-truthy';\nimport { parseDuration } from '../../../../../utils/parse-duration';\nimport { prevent } from '../../../../../utils/prevent';\nimport { translateDate } from '../../../../../utils/translate-date';\nimport { translateWeekday } from '../../../../../utils/translate-weekday';\nimport { Group, I18N, Warning } from '../../../../private/index';\nimport { AllowedDays } from '../AllowedDays/AllowedDays';\nimport { AllowedDaysChangeEvent } from '../AllowedDays/AllowedDaysChangeEvent';\nimport { DisallowedDates } from '../DisallowedDates/DisallowedDates';\nimport { DisallowedDatesChangeEvent } from '../DisallowedDates/DisallowedDatesChangeEvent';\nimport { JSONataInput } from '../JSONataInput/JSONataInput';\nimport { JSONataInputChangeEvent } from '../JSONataInput/JSONataInputChangeEvent';\nimport { OffsetInput } from '../OffsetInput/OffsetInput';\nimport { OffsetInputChangeEvent } from '../OffsetInput/OffsetInputChangeEvent';\nimport { NextDateModificationRuleChangeEvent } from './NextDateModificationRuleChangeEvent';\nimport { NextDateModificationRuleRemoveEvent } from './NextDateModificationRuleRemoveEvent';\nimport { Rule } from './Rule';\n\nexport class NextDateModificationRule extends Translatable {\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'x-disallowed-dates': DisallowedDates,\n 'x-jsonata-input': JSONataInput,\n 'x-offset-input': OffsetInput,\n 'x-allowed-days': AllowedDays,\n 'iron-icon': customElements.get('iron-icon'),\n 'x-warning': Warning,\n 'x-group': Group,\n 'x-i18n': I18N,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n disabled: { type: Boolean },\n value: { type: Object },\n open: { type: Boolean },\n };\n }\n\n public disabled = false;\n\n public value: Rule = { jsonataQuery: '*' };\n\n public open = false;\n\n public constructor() {\n super('customer-portal-settings');\n }\n\n public render(): TemplateResult {\n const { min, max, allowedDays, jsonataQuery, disallowedDates } = this.value;\n const hasOffset = min || max;\n const hasAllowed = allowedDays && allowedDays.days.length > 0;\n const hasDisallowed = disallowedDates && disallowedDates.length > 0;\n const openStyle = this.open ? '' : 'rounded-b-l';\n\n return html`\n <x-group frame>\n <details\n data-testid=\"details\"\n class=${classMap({ 'font-lumo': true, 'pointer-events-none': !this._isI18nReady })}\n ?open=${this.open}\n @toggle=${() => (this.open = !this.open)}\n >\n <summary\n class=\"${openStyle} cursor-pointer relative leading-s rounded-t-l focus-outline-none focus-shadow-outline\"\n >\n <div class=\"p-m mr-xl text-m text-header font-medium space-y-s\">\n <div>\n <x-i18n\n .ns=${this.ns}\n .lang=${this.lang}\n key=${`ndmod.${jsonataQuery === '*' ? 'all' : 'some'}Title`}\n >\n ${jsonataQuery !== '*' ? this.__renderJSONataSummary(jsonataQuery) : ''}\n </x-i18n>\n </div>\n\n ${hasOffset || hasAllowed || hasDisallowed\n ? html`\n <div>\n ${concatTruthy(\n hasOffset && this.__renderMinMaxSummary(min, max),\n hasAllowed && this.__renderAllowedSummary(allowedDays!),\n hasDisallowed && this.__renderDisallowedSummary(disallowedDates!)\n )}\n </div>\n `\n : ''}\n </div>\n\n <button\n data-testid=\"remove\"\n .disabled=${this.disabled || !this._isI18nReady}\n class=\"flex items-center justify-center rounded absolute top-0 right-0 text-tertiary hover-text-secondary disabled-text-tertiary disabled-opacity-50 disabled-cursor-default focus-outline-none focus-shadow-outline\"\n style=\"width: 54px; height: 54px\"\n @click=${prevent(() => this.dispatchEvent(new NextDateModificationRuleRemoveEvent()))}\n >\n <iron-icon icon=\"lumo:cross\"></iron-icon>\n </button>\n </summary>\n\n <article class=\"space-y-l\">\n <x-group>\n <x-i18n slot=\"header\" .ns=${this.ns} .lang=${this.lang} key=\"ndmod.match\"> </x-i18n>\n\n <x-jsonata-input\n data-testid=\"jsonata\"\n .ns=${this.ns}\n .lang=${this.lang}\n .value=${jsonataQuery}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: JSONataInputChangeEvent) => {\n this.value = { ...this.value, jsonataQuery: evt.detail as string };\n this.__sendUpdate();\n }}\n >\n </x-jsonata-input>\n </x-group>\n\n <div class=\"flex flex-col md-flex-row\">\n <div class=\"mb-l md-mb-0 md-w-1-2 md-border-r md-border-contrast-10\">\n <x-offset-input\n data-testid=\"min\"\n type=\"min\"\n .lang=${this.lang}\n .value=${min}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: OffsetInputChangeEvent) => {\n this.value = { ...this.value, min: evt.detail };\n this.__sendUpdate();\n }}\n >\n </x-offset-input>\n </div>\n\n <div class=\"md-w-1-2\">\n <x-offset-input\n data-testid=\"max\"\n type=\"max\"\n .lang=${this.lang}\n .value=${max}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: OffsetInputChangeEvent) => {\n this.value = { ...this.value, max: evt.detail };\n this.__sendUpdate();\n }}\n >\n </x-offset-input>\n </div>\n </div>\n\n ${this.__compareDurations(min, max) === -1\n ? html`\n <x-warning class=\"mx-m\" data-testid=\"warning\">\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.minWarning\"> </x-i18n>\n </x-warning>\n `\n : ''}\n\n <x-group>\n <x-i18n slot=\"header\" .ns=${this.ns} .lang=${this.lang} key=\"ndmod.allowed\"> </x-i18n>\n\n <x-allowed-days\n data-testid=\"allowed\"\n .lang=${this.lang}\n .value=${allowedDays}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: AllowedDaysChangeEvent) => {\n this.value = { ...this.value, allowedDays: evt.detail };\n this.__sendUpdate();\n }}\n >\n </x-allowed-days>\n </x-group>\n\n <x-group>\n <x-i18n slot=\"header\" .ns=${this.ns} .lang=${this.lang} key=\"ndmod.excluded\">\n </x-i18n>\n\n <x-disallowed-dates\n data-testid=\"disallowed\"\n .ns=${this.ns}\n .lang=${this.lang}\n .value=${disallowedDates ?? []}\n .disabled=${this.disabled || !this._isI18nReady}\n @change=${(evt: DisallowedDatesChangeEvent) => {\n this.value = { ...this.value, disallowedDates: evt.detail };\n this.__sendUpdate();\n }}\n >\n </x-disallowed-dates>\n </x-group>\n </article>\n </details>\n </x-group>\n `;\n }\n\n private __sendUpdate() {\n this.dispatchEvent(new NextDateModificationRuleChangeEvent(this.value));\n }\n\n private __getEstimatedDaysFrom(duration: string) {\n const { count, units } = parseDuration(duration);\n const multipliers = { y: 365, m: 31, w: 7, d: 1 };\n\n return count * multipliers[units as 'y' | 'm' | 'w' | 'd'];\n }\n\n private __compareDurations(a: string | undefined, b: string | undefined) {\n if (a === b) return 0;\n if (!a || !b) return 1;\n if (this.__getEstimatedDaysFrom(a) < this.__getEstimatedDaysFrom(b)) return 1;\n return -1;\n }\n\n private __renderJSONataSummary(content: string) {\n return html`\n <code class=\"inline-block rounded bg-success-10 text-success px-xs text-xs leading-s\">\n ${content}\n </code>\n `;\n }\n\n private __renderMinMaxContent(result?: ReturnType<typeof parseDuration>) {\n if (result) {\n const { count, units } = result;\n return html`\n ${count}\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=${units} .opts=${{ count }}></x-i18n>\n `;\n } else {\n return html`<x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.any\"></x-i18n>`;\n }\n }\n\n private __renderMinMaxSummary(min?: string, max?: string) {\n return html`\n <div class=\"text-s text-tertiary font-normal\">\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.range\">\n <span>:</span>\n <span class=\"text-secondary\">\n ${this.__renderMinMaxContent(min ? parseDuration(min) : undefined)} —\n ${this.__renderMinMaxContent(max ? parseDuration(max) : undefined)}\n </span>\n </x-i18n>\n </div>\n `;\n }\n\n private __renderAllowedSummary({ type, days }: Required<Rule>['allowedDays']) {\n return html`\n <div class=\"text-s text-tertiary font-normal\">\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.allowed\">\n <span>:</span>\n <span class=\"text-secondary\">\n ${type === 'month' ? days.join(', ') : ''}\n ${type === 'day'\n ? days.map(day => translateWeekday(day, this.lang, 'short')).join(', ')\n : ''}\n </span>\n </x-i18n>\n </div>\n `;\n }\n\n private __renderDisallowedSummary(dates: string[]) {\n return html`\n <div class=\"text-s text-tertiary font-normal\">\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"ndmod.excluded\">\n <span>:</span>\n <span class=\"text-secondary\">\n ${dates.map(date => translateDate(date, this.lang)).join('; ')}\n </span>\n </x-i18n>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -56,9 +56,10 @@ export class OriginsList extends Translatable {
|
|
|
56
56
|
`
|
|
57
57
|
: html `<x-skeleton slot=${index}>${item}</x-skeleton>`)}
|
|
58
58
|
|
|
59
|
-
<div class="flex flex-col
|
|
59
|
+
<div class="flex flex-col sm-flex-row sm-items-start">
|
|
60
60
|
<vaadin-text-field
|
|
61
61
|
data-testid="input"
|
|
62
|
+
class="mb-s sm-mb-0 sm-mr-s"
|
|
62
63
|
.placeholder=${this._isI18nReady ? 'https://foxy.io' : ''}
|
|
63
64
|
.errorMessage=${this._t(`origins.${this.__errorCode}`).toString()}
|
|
64
65
|
.disabled=${this.disabled || !this._isI18nReady}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OriginsList.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerPortalSettings/private/OriginsList/OriginsList.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,6CAA6C,CAAC;AACrD,OAAO,EAAE,IAAI,EAAwC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,8CAA2C;AAClE,OAAO,EAAE,QAAQ,EAAE,0CAAuC;AAE1D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAkC;AACxE,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAElE,MAAM,OAAO,WAAY,SAAQ,YAAY;IAA7C;;QAsBS,UAAK,GAAa,EAAE,CAAC;QAErB,aAAQ,GAAG,KAAK,CAAC;QAEhB,gBAAW,GAA6B,SAAS,CAAC;QAElD,cAAS,GAAG,KAAK,CAAC;QAElB,eAAU,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"OriginsList.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerPortalSettings/private/OriginsList/OriginsList.ts"],"names":[],"mappings":"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","sourcesContent":["import { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport '@vaadin/vaadin-button';\nimport '@vaadin/vaadin-text-field/vaadin-text-field';\nimport { html, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Translatable } from '../../../../../mixins/translatable';\nimport { classMap } from '../../../../../utils/class-map';\nimport { ListChangeEvent } from '../../../../private/events';\nimport { Group, I18N, List, Skeleton } from '../../../../private/index';\nimport { OriginsListChangeEvent } from './OriginsListChangeEvent';\n\nexport class OriginsList extends Translatable {\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-button': customElements.get('vaadin-button'),\n 'x-skeleton': Skeleton,\n 'iron-icon': customElements.get('iron-icon'),\n 'x-group': Group,\n 'x-list': List,\n 'x-i18n': I18N,\n };\n }\n\n public static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n value: { type: Array },\n invalid: { type: Boolean },\n disabled: { type: Boolean },\n };\n }\n\n public value: string[] = [];\n\n public disabled = false;\n\n private __errorCode: 'invalid' | 'https_only' = 'invalid';\n\n private __invalid = false;\n\n private __newValue = '';\n\n public render(): TemplateResult {\n return html`\n <x-group frame>\n <x-list\n data-testid=\"list\"\n .disabled=${this.disabled || !this._isI18nReady}\n .value=${this.value}\n @change=${this.__handleChange}\n >\n ${this.value.map((item, index) =>\n this._isI18nReady\n ? html`\n <div class=\"flex items-center\" slot=${index}>\n <img\n height=\"16\"\n width=\"16\"\n class=\"mr-m\"\n src=\"https://www.google.com/s2/favicons?domain=${item}\"\n />\n ${item}\n </div>\n `\n : html`<x-skeleton slot=${index}>${item}</x-skeleton>`\n )}\n\n <div class=\"flex flex-col sm-flex-row sm-items-start\">\n <vaadin-text-field\n data-testid=\"input\"\n class=\"mb-s sm-mb-0 sm-mr-s\"\n .placeholder=${this._isI18nReady ? 'https://foxy.io' : ''}\n .errorMessage=${this._t(`origins.${this.__errorCode}`).toString()}\n .disabled=${this.disabled || !this._isI18nReady}\n .invalid=${this.__invalid}\n .value=${this.__newValue}\n @keypress=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.__submit()}\n @change=${(evt: InputEvent) => evt.stopPropagation()}\n @input=${this.__handleInput}\n >\n </vaadin-text-field>\n\n <div class=\"sm-flex sm-items-center\">\n <vaadin-button\n class=\"w-full sm-w-auto\"\n data-testid=\"button\"\n .disabled=${!this._isI18nReady ||\n this.disabled ||\n this.__invalid ||\n this.value.length >= 10}\n @click=${this.__submit}\n >\n <x-i18n .ns=${this.ns} .lang=${this.lang} key=\"origins.add\"></x-i18n>\n <iron-icon icon=\"lumo:plus\" slot=\"suffix\"></iron-icon>\n </vaadin-button>\n\n <x-i18n\n .lang=${this.lang}\n .ns=${this.ns}\n key=\"origins.add_hint\"\n class=${classMap({\n 'text-xs text-center block font-lumo mt-xs transition duration-200 sm-mt-0 sm-ml-m':\n true,\n 'text-tertiary': this.value.length < 10,\n 'text-primary': this.value.length >= 10,\n 'hidden': this.value.length === 0,\n })}\n >\n </x-i18n>\n </div>\n </div>\n </x-list>\n </x-group>\n `;\n }\n\n private __sendChange() {\n this.dispatchEvent(new OriginsListChangeEvent(this.value));\n }\n\n private __handleInput(evt: InputEvent) {\n this.__newValue = (evt.target as HTMLInputElement).value;\n\n try {\n const url = new URL(this.__newValue);\n const isSecure = url.protocol === 'https:';\n const isLocalhost = url.hostname === 'localhost';\n\n this.__invalid = !isLocalhost && !isSecure;\n this.__errorCode = 'https_only';\n } catch {\n this.__invalid = this.__newValue.length > 0;\n this.__errorCode = 'invalid';\n }\n\n this.requestUpdate();\n }\n\n private __submit() {\n if (this.__newValue.length > 0) {\n this.value = [...this.value, new URL(this.__newValue).origin];\n this.__newValue = '';\n this.__invalid = false;\n this.__sendChange();\n }\n\n this.requestUpdate();\n }\n\n private __handleChange(evt: ListChangeEvent) {\n this.value = evt.detail;\n this.__sendChange();\n }\n}\n"]}
|
|
@@ -16,6 +16,12 @@ declare const Base: typeof NucleonElement & import("lit-element").Constructor<im
|
|
|
16
16
|
* @slot password:after
|
|
17
17
|
* @slot new-password:before
|
|
18
18
|
* @slot new-password:after
|
|
19
|
+
* @slot mfa-secret-code:before
|
|
20
|
+
* @slot mfa-secret-code:after
|
|
21
|
+
* @slot mfa-totp-code:before
|
|
22
|
+
* @slot mfa-totp-code:after
|
|
23
|
+
* @slot mfa-remember-device:before
|
|
24
|
+
* @slot mfa-remember-device:after
|
|
19
25
|
* @slot error:before
|
|
20
26
|
* @slot error:after
|
|
21
27
|
* @slot submit:before
|
|
@@ -38,6 +44,7 @@ export declare class SignInForm extends Base<Data> {
|
|
|
38
44
|
private readonly __renderNewPassword;
|
|
39
45
|
private readonly __renderMfaTotpCode;
|
|
40
46
|
private readonly __renderMfaSecretCode;
|
|
47
|
+
private readonly __renderMfaRememberDevice;
|
|
41
48
|
private readonly __renderError;
|
|
42
49
|
private readonly __renderSubmit;
|
|
43
50
|
render(): TemplateResult;
|
|
@@ -17,6 +17,12 @@ const Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement,
|
|
|
17
17
|
* @slot password:after
|
|
18
18
|
* @slot new-password:before
|
|
19
19
|
* @slot new-password:after
|
|
20
|
+
* @slot mfa-secret-code:before
|
|
21
|
+
* @slot mfa-secret-code:after
|
|
22
|
+
* @slot mfa-totp-code:before
|
|
23
|
+
* @slot mfa-totp-code:after
|
|
24
|
+
* @slot mfa-remember-device:before
|
|
25
|
+
* @slot mfa-remember-device:after
|
|
20
26
|
* @slot error:before
|
|
21
27
|
* @slot error:after
|
|
22
28
|
* @slot submit:before
|
|
@@ -170,6 +176,7 @@ export class SignInForm extends Base {
|
|
|
170
176
|
?disabled=${isBusy || disabledSelector.matches(scope, true)}
|
|
171
177
|
?readonly=${readonlySelector.matches(scope, true)}
|
|
172
178
|
.checkValidity=${this.__mfaTotpCodeValidator}
|
|
179
|
+
autofocus
|
|
173
180
|
@keydown=${(evt) => evt.key === 'Enter' && this.submit()}
|
|
174
181
|
@input=${(evt) => {
|
|
175
182
|
const mfaTotpCode = evt.target.value;
|
|
@@ -187,6 +194,7 @@ export class SignInForm extends Base {
|
|
|
187
194
|
};
|
|
188
195
|
this.__renderMfaSecretCode = () => {
|
|
189
196
|
var _a, _b;
|
|
197
|
+
const scope = 'mfa-secret-code';
|
|
190
198
|
const mfaSecretCode = this.__mfaSecretCode;
|
|
191
199
|
const issuer = encodeURIComponent(this.issuer);
|
|
192
200
|
const email = encodeURIComponent((_b = (_a = this.form.credential) === null || _a === void 0 ? void 0 : _a.email) !== null && _b !== void 0 ? _b : '');
|
|
@@ -195,9 +203,10 @@ export class SignInForm extends Base {
|
|
|
195
203
|
otpauthUrl.searchParams.set('issuer', this.issuer);
|
|
196
204
|
return html `
|
|
197
205
|
<div>
|
|
198
|
-
${this.renderTemplateOrSlot(
|
|
206
|
+
${this.renderTemplateOrSlot(`${scope}:before`)}
|
|
199
207
|
|
|
200
208
|
<div
|
|
209
|
+
data-testid=${scope}
|
|
201
210
|
class="flex space-x-m overflow-hidden rounded border p-m mb-m border-contrast-10"
|
|
202
211
|
style="background: white; color: black;"
|
|
203
212
|
>
|
|
@@ -215,7 +224,49 @@ export class SignInForm extends Base {
|
|
|
215
224
|
</div>
|
|
216
225
|
</div>
|
|
217
226
|
|
|
218
|
-
${this.renderTemplateOrSlot(
|
|
227
|
+
${this.renderTemplateOrSlot(`${scope}:after`)}
|
|
228
|
+
</div>
|
|
229
|
+
`;
|
|
230
|
+
};
|
|
231
|
+
this.__renderMfaRememberDevice = () => {
|
|
232
|
+
var _a;
|
|
233
|
+
const { __mfaSecretCode: mfaSecretCode, form, lang, ns } = this;
|
|
234
|
+
const scope = 'mfa-remember-device';
|
|
235
|
+
const isBusy = this.in('busy');
|
|
236
|
+
const isDisabled = isBusy || this.disabledSelector.matches(scope, true);
|
|
237
|
+
return html `
|
|
238
|
+
<div>
|
|
239
|
+
${this.renderTemplateOrSlot(`${scope}:before`)}
|
|
240
|
+
|
|
241
|
+
<vaadin-checkbox
|
|
242
|
+
data-testid=${scope}
|
|
243
|
+
class="mb-m"
|
|
244
|
+
?disabled=${isDisabled}
|
|
245
|
+
?checked=${!!((_a = form.credential) === null || _a === void 0 ? void 0 : _a.mfa_remember_device)}
|
|
246
|
+
@change=${(evt) => {
|
|
247
|
+
var _a, _b;
|
|
248
|
+
const target = evt.currentTarget;
|
|
249
|
+
const credential = {
|
|
250
|
+
...form.credential,
|
|
251
|
+
mfa_remember_device: target.checked,
|
|
252
|
+
mfa_totp_code: (_b = (_a = form.credential) === null || _a === void 0 ? void 0 : _a.mfa_totp_code) !== null && _b !== void 0 ? _b : '',
|
|
253
|
+
};
|
|
254
|
+
if (mfaSecretCode)
|
|
255
|
+
credential.mfa_secret_code = mfaSecretCode;
|
|
256
|
+
this.edit({ credential });
|
|
257
|
+
}}
|
|
258
|
+
>
|
|
259
|
+
<foxy-i18n class="block" lang=${lang} key="mfa_remember_device" ns=${ns}></foxy-i18n>
|
|
260
|
+
<foxy-i18n
|
|
261
|
+
class="block text-xs ${isDisabled ? 'text-disabled' : 'text-secondary'}"
|
|
262
|
+
lang=${lang}
|
|
263
|
+
key="mfa_remember_device_hint"
|
|
264
|
+
ns=${ns}
|
|
265
|
+
>
|
|
266
|
+
</foxy-i18n>
|
|
267
|
+
</vaadin-checkbox>
|
|
268
|
+
|
|
269
|
+
${this.renderTemplateOrSlot(`${scope}:after`)}
|
|
219
270
|
</div>
|
|
220
271
|
`;
|
|
221
272
|
};
|
|
@@ -282,6 +333,9 @@ export class SignInForm extends Base {
|
|
|
282
333
|
const isNewPasswordRequired = typeof ((_b = this.form.credential) === null || _b === void 0 ? void 0 : _b.new_password) === 'string' ||
|
|
283
334
|
errors.some(error => error.startsWith('new_password_'));
|
|
284
335
|
const isMfaTotpCodeHidden = (!isMfaRequired && !mfaTotpCode) || hiddenSelector.matches('mfa-totp-code', true);
|
|
336
|
+
const isMfaRememberDeviceHidden = !isMfaRequired ||
|
|
337
|
+
(isMfaRequired && mfaSecretCode) ||
|
|
338
|
+
hiddenSelector.matches('mfa-remember-device', true);
|
|
285
339
|
const isMfaSecretCodeHidden = !mfaSecretCode || hiddenSelector.matches('mfa-secret-code', true);
|
|
286
340
|
const isNewPasswordHidden = isMfaRequired || hiddenSelector.matches('new-password', true);
|
|
287
341
|
const isFailed = errors.some(error => error.endsWith('_error'));
|
|
@@ -293,6 +347,7 @@ export class SignInForm extends Base {
|
|
|
293
347
|
${isNewPasswordHidden || !isNewPasswordRequired ? '' : this.__renderNewPassword()}
|
|
294
348
|
${isMfaTotpCodeHidden ? '' : this.__renderMfaTotpCode()}
|
|
295
349
|
${isMfaSecretCodeHidden ? '' : this.__renderMfaSecretCode()}
|
|
350
|
+
${isMfaRememberDeviceHidden ? '' : this.__renderMfaRememberDevice()}
|
|
296
351
|
${hiddenSelector.matches('error', true) || !isFailed ? '' : this.__renderError()}
|
|
297
352
|
${hiddenSelector.matches('submit', true) ? '' : this.__renderSubmit()}
|
|
298
353
|
|