+ return (
{props.children}
diff --git a/browser/components/newtab/content-src/asrouter/components/SnippetBase/_SnippetBase.scss b/browser/components/newtab/content-src/asrouter/components/SnippetBase/_SnippetBase.scss
index 942c4f351019..a673ef94d6ee 100644
--- a/browser/components/newtab/content-src/asrouter/components/SnippetBase/_SnippetBase.scss
+++ b/browser/components/newtab/content-src/asrouter/components/SnippetBase/_SnippetBase.scss
@@ -15,6 +15,7 @@
a {
cursor: pointer;
color: var(--newtab-link-primary-color);
+ text-decoration: underline;
[lwt-newtab-brighttext] & {
font-weight: bold;
diff --git a/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.md b/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.md
index 0fac87474cdf..4c36682700bb 100644
--- a/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.md
+++ b/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.md
@@ -16,7 +16,8 @@ Please note that some targeting attributes require stricter controls on the tele
* [firefoxVersion](#firefoxversion)
* [locale](#locale)
* [localeLanguageCode](#localelanguagecode)
-* [usesFirefoxSync](#usesfirefoxsync)
+* [needsUpdate](#needsupdate)
+* [pinnedSites](#pinnedsites)
* [previousSessionEnd](#previoussessionend)
* [profileAgeCreated](#profileagecreated)
* [profileAgeReset](#profileagereset)
@@ -26,8 +27,8 @@ Please note that some targeting attributes require stricter controls on the tele
* [sync](#sync)
* [topFrecentSites](#topfrecentsites)
* [totalBookmarksCount](#totalbookmarkscount)
+* [usesFirefoxSync](#usesfirefoxsync)
* [xpinstallEnabled](#xpinstallEnabled)
-* [needsUpdate](#needsupdate)
## Detailed usage
@@ -210,14 +211,39 @@ localeLanguageCode == "en"
declare const localeLanguageCode: string;
```
-### `usesFirefoxSync`
+### `needsUpdate`
-Does the user use Firefox sync?
-
-#### Definition
+Does the client have the latest available version installed
```ts
-declare const usesFirefoxSync: boolean;
+declare const needsUpdate: boolean;
+```
+
+### `pinnedSites`
+The sites (including search shortcuts) that are pinned on a user's new tab page.
+
+#### Examples
+* Has the user pinned any site on `foo.com`?
+```java
+"foo.com" in pinnedSites|mapToProperty("host")
+```
+
+* Does the user have a pinned `duckduckgo.com` search shortcut?
+```java
+"duckduckgo.com" in pinnedSites[.searchTopSite == true]|mapToProperty("host")
+```
+
+#### Definition
+```ts
+interface PinnedSite {
+ // e.g. https://foo.mozilla.com/foo/bar
+ url: string;
+ // e.g. foo.mozilla.com
+ host: string;
+ // is the pin a search shortcut?
+ searchTopSite: boolean;
+}
+declare const pinnedSites: Array
```
### `previousSessionEnd`
@@ -376,6 +402,16 @@ Total number of bookmarks.
declare const totalBookmarksCount: number;
```
+### `usesFirefoxSync`
+
+Does the user use Firefox sync?
+
+#### Definition
+
+```ts
+declare const usesFirefoxSync: boolean;
+```
+
### `xpinstallEnabled`
Pref used by system administrators to disallow add-ons from installed altogether.
@@ -385,11 +421,3 @@ Pref used by system administrators to disallow add-ons from installed altogether
```ts
declare const xpinstallEnabled: boolean;
```
-
-### `needsUpdate`
-
-Does the client have the latest available version installed
-
-```ts
-declare const needsUpdate: boolean;
-```
diff --git a/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/EOYSnippet.jsx b/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/EOYSnippet.jsx
new file mode 100644
index 000000000000..7ab247cf6260
--- /dev/null
+++ b/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/EOYSnippet.jsx
@@ -0,0 +1,97 @@
+import React from "react";
+import {SimpleSnippet} from "../SimpleSnippet/SimpleSnippet";
+
+class EOYSnippetBase extends React.PureComponent {
+ constructor(props) {
+ super(props);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ }
+
+ /**
+ * setFrequencyValue - `frequency` form parameter value should be `monthly`
+ * if `monthly-checkbox` is selected or `single` otherwise
+ */
+ setFrequencyValue() {
+ const frequencyCheckbox = this.refs.form.querySelector("#monthly-checkbox");
+ if (frequencyCheckbox.checked) {
+ this.refs.form.querySelector("[name='frequency']").value = "monthly";
+ }
+ }
+
+ handleSubmit(event) {
+ event.preventDefault();
+ this.setFrequencyValue();
+ this.refs.form.submit();
+ if (!this.props.content.do_not_autoblock) {
+ this.props.onBlock();
+ }
+ }
+
+ renderDonations() {
+ const fieldNames = ["first", "second", "third", "fourth"];
+ const numberFormat = new Intl.NumberFormat(this.props.content.locale || navigator.language, {
+ style: "currency",
+ currency: this.props.content.currency_code,
+ minimumFractionDigits: 0,
+ });
+ // Default to `second` button
+ const {selected_button} = this.props.content;
+ const btnStyle = {
+ color: this.props.content.button_color,
+ backgroundColor: this.props.content.button_background_color,
+ };
+
+ return ();
+ }
+
+ render() {
+ const textStyle = {
+ color: this.props.content.text_color,
+ backgroundColor: this.props.content.background_color,
+ };
+ const customElement = ;
+ return ( );
+ }
+}
+
+export const EOYSnippet = props => {
+ const extendedContent = {
+ monthly_checkbox_label_text: "Make my donation monthly",
+ locale: "en-US",
+ currency_code: "usd",
+ selected_button: "donation_amount_second",
+ ...props.content,
+ };
+
+ return ( );
+};
diff --git a/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/EOYSnippet.schema.json b/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/EOYSnippet.schema.json
new file mode 100644
index 000000000000..5908490a164b
--- /dev/null
+++ b/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/EOYSnippet.schema.json
@@ -0,0 +1,136 @@
+{
+ "title": "EOYSnippet",
+ "description": "Fundraising Snippet",
+ "version": "1.0.0",
+ "type": "object",
+ "definitions": {
+ "plainText": {
+ "description": "Plain text (no HTML allowed)",
+ "type": "string"
+ },
+ "richText": {
+ "description": "Text with HTML subset allowed: i, b, u, strong, em, br",
+ "type": "string"
+ },
+ "link_url": {
+ "description": "Target for links or buttons",
+ "type": "string",
+ "format": "uri"
+ }
+ },
+ "properties": {
+ "donation_form_url": {
+ "type": "string",
+ "description": "Url to the donation form."
+ },
+ "currency_code": {
+ "type": "string",
+ "description": "The code for the currency. Examle gbp, cad, usd."
+ },
+ "locale": {
+ "type": "string",
+ "description": "String for the locale code."
+ },
+ "text": {
+ "allOf": [
+ {"$ref": "#/definitions/richText"},
+ {"description": "Main body text of snippet. HTML subset allowed: i, b, u, strong, em, br"}
+ ]
+ },
+ "text_color": {
+ "type": "string",
+ "description": "Modify the text message color"
+ },
+ "background_color": {
+ "type": "string",
+ "description": "Snippet background color."
+ },
+ "highlight_color": {
+ "type": "string",
+ "description": "Paragraph em highlight color."
+ },
+ "donation_amount_first": {
+ "type": "number",
+ "description": "First button amount."
+ },
+ "donation_amount_second": {
+ "type": "number",
+ "description": "Second button amount."
+ },
+ "donation_amount_third": {
+ "type": "number",
+ "description": "Third button amount."
+ },
+ "donation_amount_fourth": {
+ "type": "number",
+ "description": "Fourth button amount."
+ },
+ "selected_button": {
+ "type": "string",
+ "description": "Default donation_amount_second. Donation amount button that's selected by default."
+ },
+ "icon": {
+ "type": "string",
+ "description": "Snippet icon. 64x64px. SVG or PNG preferred."
+ },
+ "title_icon": {
+ "type": "string",
+ "description": "Small icon that shows up before the title / text. 16x16px. SVG or PNG preferred. Grayscale."
+ },
+ "button_label": {
+ "allOf": [
+ {"$ref": "#/definitions/plainText"},
+ {"description": "Text for a button next to main snippet text that links to button_url. Requires button_url."}
+ ]
+ },
+ "button_color": {
+ "type": "string",
+ "description": "The text color of the button. Valid CSS color."
+ },
+ "button_background_color": {
+ "type": "string",
+ "description": "The background color of the button. Valid CSS color."
+ },
+ "block_button_text": {
+ "type": "string",
+ "description": "Tooltip text used for dismiss button."
+ },
+ "monthly_checkbox_label_text": {
+ "type": "string",
+ "description": "Label text for monthly checkbox."
+ },
+ "test": {
+ "type": "string",
+ "description": "Different styles for the snippet. Options are bold and takeover."
+ },
+ "do_not_autoblock": {
+ "type": "boolean",
+ "description": "Used to prevent blocking the snippet after the CTA (link or button) has been clicked"
+ },
+ "links": {
+ "additionalProperties": {
+ "url": {
+ "allOf": [
+ {"$ref": "#/definitions/link_url"},
+ {"description": "The url where the link points to."}
+ ]
+ },
+ "metric": {
+ "type": "string",
+ "description": "Custom event name sent with telemetry event."
+ },
+ "args": {
+ "type": "string",
+ "description": "Additional parameters for link action, example which specific menu the button should open"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": ["text", "donation_form_url", "donation_amount_first", "donation_amount_second", "donation_amount_third", "donation_amount_fourth", "button_label", "currency_code"],
+ "dependencies": {
+ "button_color": ["button_label"],
+ "button_background_color": ["button_label"]
+ }
+}
+
diff --git a/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/_EOYSnippet.scss b/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/_EOYSnippet.scss
new file mode 100644
index 000000000000..ea407c1dc94d
--- /dev/null
+++ b/browser/components/newtab/content-src/asrouter/templates/EOYSnippet/_EOYSnippet.scss
@@ -0,0 +1,50 @@
+.EOYSnippetForm {
+ margin-top: 12px;
+ align-self: start;
+ font-size: 12px;
+ display: flex;
+ align-items: center;
+
+ .donation-amount,
+ .donation-form-url {
+ white-space: nowrap;
+ font-size: 14px;
+ padding: 5px 14px;
+ border-radius: 2px;
+ }
+
+ .donation-amount {
+ color: $grey-90;
+ margin-inline-end: 18px;
+ border: 1px solid $grey-40;
+ background: $grey-10;
+ cursor: pointer;
+ }
+
+ input {
+ &[type='radio'] {
+ opacity: 0;
+ margin-inline-end: -18px;
+
+ &:checked+.donation-amount {
+ background: $grey-50;
+ color: $white;
+ border: 1px solid $grey-60;
+ }
+ }
+ }
+
+ .monthly-checkbox-container {
+ width: 100%;
+ }
+
+ .donation-form-url {
+ margin-inline-start: 18px;
+ background-color: $snippets-donation-button-bg;
+ border: 0;
+ color: $white;
+ align-self: flex-end;
+ display: flex;
+ cursor: pointer;
+ }
+}
diff --git a/browser/components/newtab/content-src/asrouter/templates/FXASignupSnippet/FXASignupSnippet.jsx b/browser/components/newtab/content-src/asrouter/templates/FXASignupSnippet/FXASignupSnippet.jsx
new file mode 100644
index 000000000000..dd0f97d5669e
--- /dev/null
+++ b/browser/components/newtab/content-src/asrouter/templates/FXASignupSnippet/FXASignupSnippet.jsx
@@ -0,0 +1,27 @@
+import React from "react";
+import {SubmitFormSnippet} from "../SubmitFormSnippet/SubmitFormSnippet.jsx";
+
+export const FXASignupSnippet = props => {
+ const userAgent = window.navigator.userAgent.match(/Firefox\/([0-9]+)\./);
+ const firefox_version = userAgent ? parseInt(userAgent[1], 10) : 0;
+ const extendedContent = {
+ form_action: "https://accounts.firefox.com/",
+ ...props.content,
+ hidden_inputs: {
+ action: "email",
+ context: "fx_desktop_v3",
+ entrypoint: "snippets",
+ service: "sync",
+ utm_source: "snippet",
+ utm_content: firefox_version,
+ utm_campaign: props.content.utm_campaign,
+ utm_term: props.content.utm_term,
+ ...props.content.hidden_inputs,
+ },
+ };
+
+ return ( );
+};
diff --git a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx b/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx
new file mode 100644
index 000000000000..788164cee330
--- /dev/null
+++ b/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx
@@ -0,0 +1,21 @@
+import React from "react";
+import {SubmitFormSnippet} from "../SubmitFormSnippet/SubmitFormSnippet.jsx";
+
+export const NewsletterSnippet = props => {
+ const extendedContent = {
+ form_action: "https://basket.mozilla.org/subscribe.json",
+ ...props.content,
+ hidden_inputs: {
+ newsletters: props.content.scene2_newsletter || "mozilla-foundation",
+ fmt: "H",
+ lang: "en-US",
+ source_url: `https://snippets.mozilla.com/show/${props.id}`,
+ ...props.content.hidden_inputs,
+ },
+ };
+
+ return ( );
+};
diff --git a/browser/components/newtab/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx b/browser/components/newtab/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx
index 7f37ee3ff2fe..0377f1e8893f 100644
--- a/browser/components/newtab/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx
+++ b/browser/components/newtab/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx
@@ -55,6 +55,7 @@ export class SimpleSnippet extends React.PureComponent {
renderText() {
const {props} = this;
return ( );
@@ -62,11 +63,18 @@ export class SimpleSnippet extends React.PureComponent {
render() {
const {props} = this;
- const className = `SimpleSnippet${props.content.tall ? " tall" : ""}`;
- return (
+ let className = "SimpleSnippet";
+ if (props.className) {
+ className += ` ${props.className}`;
+ }
+ if (props.content.tall) {
+ className += " tall";
+ }
+ return (
{this.renderTitleIcon()} {this.renderTitle()}
{this.renderText()}
+ {this.props.extraContent}
{{this.renderButton()}
}
);
diff --git a/browser/components/newtab/content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss b/browser/components/newtab/content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss
index a1972a4980cd..8239f0f71683 100644
--- a/browser/components/newtab/content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss
+++ b/browser/components/newtab/content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss
@@ -3,6 +3,51 @@
padding: 27px 0;
}
+ p em {
+ color: $grey-90;
+ font-style: normal;
+ background: $yellow-50;
+ }
+
+ &.bold,
+ &.takeover {
+ .donation-form-url,
+ .donation-amount {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ }
+ }
+
+ &.bold {
+ height: 176px;
+
+ .body {
+ font-size: 14px;
+ line-height: 20px;
+ margin-bottom: 20px;
+ }
+
+ .icon {
+ width: 71px;
+ height: 71px;
+ }
+ }
+
+ &.takeover {
+ height: 344px;
+
+ .body {
+ font-size: 16px;
+ line-height: 24px;
+ margin-bottom: 35px;
+ }
+
+ .icon {
+ width: 79px;
+ height: 79px;
+ }
+ }
+
.title {
display: inline;
font-size: inherit;
@@ -29,6 +74,17 @@
margin-inline-end: 20px;
}
+ &.takeover,
+ &.bold {
+ .icon {
+ margin-inline-end: 20px;
+ }
+ }
+
+ .icon {
+ align-self: flex-start;
+ }
+
.ASRouterButton {
cursor: pointer;
}
diff --git a/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx
index d9b42193b74d..d22d5e8d8b4a 100644
--- a/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx
+++ b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx
@@ -48,7 +48,9 @@ export class SubmitFormSnippet extends React.PureComponent {
if (json && json.status === "ok") {
this.setState({signupSuccess: true, signupSubmitted: true});
- this.props.onBlock({preventDismiss: true});
+ if (!this.props.content.do_not_autoblock) {
+ this.props.onBlock({preventDismiss: true});
+ }
this.props.sendUserActionTelemetry({event: "CLICK_BUTTON", value: "subscribe-success", id: "NEWTAB_FOOTER_BAR_CONTENT"});
} else {
console.error("There was a problem submitting the form", json || "[No JSON response]"); // eslint-disable-line no-console
@@ -86,7 +88,7 @@ export class SubmitFormSnippet extends React.PureComponent {
);
}
@@ -102,7 +104,7 @@ export class SubmitFormSnippet extends React.PureComponent {
diff --git a/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json
index c9aea4dcadf5..538214b639d5 100644
--- a/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json
+++ b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json
@@ -103,6 +103,10 @@
"type": "string",
"description": "(send to device) Image to display above the form. 98x98px. SVG or PNG preferred."
},
+ "scene2_newsletter": {
+ "type": "string",
+ "description": "Newsletter/basket id user is subscribing to. Must be a value from the 'Slug' column here: https://basket.mozilla.org/news/. Default 'mozilla-foundation'."
+ },
"hidden_inputs": {
"type": "object",
"description": "Each entry represents a hidden input, key is used as value for the name property."
@@ -137,6 +141,14 @@
"type": "string",
"description": "(send to device) Newsletter/basket id representing the email message to be sent. Must be a value from the 'Slug' column here: https://basket.mozilla.org/news/."
},
+ "utm_campaign": {
+ "type": "string",
+ "description": "(fxa) Value to pass through to GA as utm_campaign."
+ },
+ "utm_term": {
+ "type": "string",
+ "description": "(fxa) Value to pass through to GA as utm_term."
+ },
"links": {
"additionalProperties": {
"url": {
@@ -153,7 +165,7 @@
}
},
"additionalProperties": false,
- "required": ["scene1_text", "form_action", "scene2_text", "hidden_inputs", "error_text", "success_text", "scene1_button_label"],
+ "required": ["scene1_text", "scene2_text", "scene1_button_label"],
"dependencies": {
"scene1_button_color": ["scene1_button_label"],
"scene1_button_background_color": ["scene1_button_label"]
diff --git a/browser/components/newtab/content-src/asrouter/templates/template-manifest.jsx b/browser/components/newtab/content-src/asrouter/templates/template-manifest.jsx
new file mode 100644
index 000000000000..4aef7eac6944
--- /dev/null
+++ b/browser/components/newtab/content-src/asrouter/templates/template-manifest.jsx
@@ -0,0 +1,14 @@
+import {EOYSnippet} from "./EOYSnippet/EOYSnippet";
+import {FXASignupSnippet} from "./FXASignupSnippet/FXASignupSnippet";
+import {NewsletterSnippet} from "./NewsletterSnippet/NewsletterSnippet";
+import {SendToDeviceSnippet} from "./SendToDeviceSnippet/SendToDeviceSnippet";
+import {SimpleSnippet} from "./SimpleSnippet/SimpleSnippet";
+
+// Key names matching schema name of templates
+export const SnippetsTemplates = {
+ simple_snippet: SimpleSnippet,
+ newsletter_snippet: NewsletterSnippet,
+ fxa_signup_snippet: FXASignupSnippet,
+ send_to_device_snippet: SendToDeviceSnippet,
+ eoy_snippet: EOYSnippet,
+};
diff --git a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
index eed19fb034e9..8b0ea69e524c 100644
--- a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
+++ b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
@@ -5,8 +5,10 @@ export class ASRouterAdmin extends React.PureComponent {
constructor(props) {
super(props);
this.onMessage = this.onMessage.bind(this);
+ this.handleEnabledToggle = this.handleEnabledToggle.bind(this);
+ this.onChangeMessageFilter = this.onChangeMessageFilter.bind(this);
this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);
- this.state = {};
+ this.state = {messageFilter: "all"};
}
onMessage({data: action}) {
@@ -55,6 +57,10 @@ export class ASRouterAdmin extends React.PureComponent {
ASRouterUtils.sendMessage({type: "EXPIRE_QUERY_CACHE"});
}
+ resetPref() {
+ ASRouterUtils.sendMessage({type: "RESET_PROVIDER_PREF"});
+ }
+
renderMessageItem(msg) {
const isCurrent = msg.id === this.state.lastMessageId;
const isBlocked = this.state.messageBlockList.includes(msg.id);
@@ -81,34 +87,61 @@ export class ASRouterAdmin extends React.PureComponent {
if (!this.state.messages) {
return null;
}
+ const messagesToShow = this.state.messageFilter === "all" ? this.state.messages : this.state.messages.filter(message => message.provider === this.state.messageFilter);
return (
- {this.state.messages.map(msg => this.renderMessageItem(msg))}
+ {messagesToShow.map(msg => this.renderMessageItem(msg))}
);
}
+ onChangeMessageFilter(event) {
+ this.setState({messageFilter: event.target.value});
+ }
+
+ renderMessageFilter() {
+ if (!this.state.providers) {
+ return null;
+ }
+ return (Show messages from
+ all providers
+ {this.state.providers.map(provider => ({provider.id} ))}
+
);
+ }
+
renderTableHead() {
return (
id
+ enabled
source
last updated
);
}
+ handleEnabledToggle(event) {
+ const action = {type: event.target.checked ? "ENABLE_PROVIDER" : "DISABLE_PROVIDER", data: event.target.name};
+ ASRouterUtils.sendMessage(action);
+ this.setState({messageFilter: "all"});
+ }
+
renderProviders() {
+ const providersConfig = this.state.providerPrefs;
+ const providerInfo = this.state.providers;
return ();
@@ -120,8 +153,10 @@ export class ASRouterAdmin extends React.PureComponent {
Targeting Utilities
Expire Cache (This expires the cache in ASR Targeting for bookmarks and top sites)
Message Providers
+ Restore defaults
{this.state.providers ? this.renderProviders() : null}
Messages
+ {this.renderMessageFilter()}
{this.renderMessages()}
);
}
diff --git a/browser/components/newtab/content-src/components/Base/Base.jsx b/browser/components/newtab/content-src/components/Base/Base.jsx
index 7766696963f7..9a266959fd33 100644
--- a/browser/components/newtab/content-src/components/Base/Base.jsx
+++ b/browser/components/newtab/content-src/components/Base/Base.jsx
@@ -82,8 +82,11 @@ export class _Base extends React.PureComponent {
const {initialized} = App;
const prefs = props.Prefs.values;
- if (prefs["asrouter.devtoolsEnabled"] && window.location.hash === "#asrouter") {
- return (
);
+ if (prefs["asrouter.devtoolsEnabled"]) {
+ if (window.location.hash === "#asrouter") {
+ return (
);
+ }
+ console.log("ASRouter devtools enabled. To access visit %cabout:newtab#asrouter", "font-weight: bold"); // eslint-disable-line no-console
}
if (!props.isPrerendered && !initialized) {
diff --git a/browser/components/newtab/content-src/styles/_activity-stream.scss b/browser/components/newtab/content-src/styles/_activity-stream.scss
index 6fcd8be168b8..3ddb602d273b 100644
--- a/browser/components/newtab/content-src/styles/_activity-stream.scss
+++ b/browser/components/newtab/content-src/styles/_activity-stream.scss
@@ -152,3 +152,4 @@ input {
@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';
@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet';
@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';
+@import '../asrouter/templates/EOYSnippet/EOYSnippet';
diff --git a/browser/components/newtab/content-src/styles/_variables.scss b/browser/components/newtab/content-src/styles/_variables.scss
index 72b9dd01b321..329a73c92ece 100644
--- a/browser/components/newtab/content-src/styles/_variables.scss
+++ b/browser/components/newtab/content-src/styles/_variables.scss
@@ -131,6 +131,7 @@ $error-fallback-line-height: 1.5;
$image-path: '../data/content/assets/';
$snippets-container-height: 120px;
+$snippets-donation-button-bg: #0C99D5;
$textbox-shadow-size: 4px;
diff --git a/browser/components/newtab/css/activity-stream-linux.css b/browser/components/newtab/css/activity-stream-linux.css
index 83ef6bc847da..67b108ec1f58 100644
--- a/browser/components/newtab/css/activity-stream-linux.css
+++ b/browser/components/newtab/css/activity-stream-linux.css
@@ -1931,7 +1931,8 @@ a.firstrun-link {
align-items: center; }
.SnippetBaseContainer a {
cursor: pointer;
- color: var(--newtab-link-primary-color); }
+ color: var(--newtab-link-primary-color);
+ text-decoration: underline; }
[lwt-newtab-brighttext] .SnippetBaseContainer a {
font-weight: bold; }
.SnippetBaseContainer .innerWrapper {
@@ -2069,6 +2070,37 @@ a.firstrun-link {
.SimpleSnippet.tall {
padding: 27px 0; }
+.SimpleSnippet p em {
+ color: #0C0C0D;
+ font-style: normal;
+ background: #FFE900; }
+
+.SimpleSnippet.bold .donation-form-url,
+.SimpleSnippet.bold .donation-amount, .SimpleSnippet.takeover .donation-form-url,
+.SimpleSnippet.takeover .donation-amount {
+ padding-top: 8px;
+ padding-bottom: 8px; }
+
+.SimpleSnippet.bold {
+ height: 176px; }
+ .SimpleSnippet.bold .body {
+ font-size: 14px;
+ line-height: 20px;
+ margin-bottom: 20px; }
+ .SimpleSnippet.bold .icon {
+ width: 71px;
+ height: 71px; }
+
+.SimpleSnippet.takeover {
+ height: 344px; }
+ .SimpleSnippet.takeover .body {
+ font-size: 16px;
+ line-height: 24px;
+ margin-bottom: 35px; }
+ .SimpleSnippet.takeover .icon {
+ width: 79px;
+ height: 79px; }
+
.SimpleSnippet .title {
display: inline;
font-size: inherit;
@@ -2091,6 +2123,12 @@ a.firstrun-link {
.SimpleSnippet.tall .icon {
margin-inline-end: 20px; }
+.SimpleSnippet.takeover .icon, .SimpleSnippet.bold .icon {
+ margin-inline-end: 20px; }
+
+.SimpleSnippet .icon {
+ align-self: flex-start; }
+
.SimpleSnippet .ASRouterButton {
cursor: pointer; }
@@ -2273,4 +2311,40 @@ a.firstrun-link {
.onboardingMessage:last-child::before {
content: none; }
+.EOYSnippetForm {
+ margin-top: 12px;
+ align-self: start;
+ font-size: 12px;
+ display: flex;
+ align-items: center; }
+ .EOYSnippetForm .donation-amount,
+ .EOYSnippetForm .donation-form-url {
+ white-space: nowrap;
+ font-size: 14px;
+ padding: 5px 14px;
+ border-radius: 2px; }
+ .EOYSnippetForm .donation-amount {
+ color: #0C0C0D;
+ margin-inline-end: 18px;
+ border: 1px solid #B1B1B3;
+ background: #F9F9FA;
+ cursor: pointer; }
+ .EOYSnippetForm input[type='radio'] {
+ opacity: 0;
+ margin-inline-end: -18px; }
+ .EOYSnippetForm input[type='radio']:checked + .donation-amount {
+ background: #737373;
+ color: #FFF;
+ border: 1px solid #4A4A4F; }
+ .EOYSnippetForm .monthly-checkbox-container {
+ width: 100%; }
+ .EOYSnippetForm .donation-form-url {
+ margin-inline-start: 18px;
+ background-color: #0C99D5;
+ border: 0;
+ color: #FFF;
+ align-self: flex-end;
+ display: flex;
+ cursor: pointer; }
+
/*# sourceMappingURL=activity-stream-linux.css.map */
\ No newline at end of file
diff --git a/browser/components/newtab/css/activity-stream-linux.css.map b/browser/components/newtab/css/activity-stream-linux.css.map
index 3f84f8d04fa6..096afd4085f2 100644
--- a/browser/components/newtab/css/activity-stream-linux.css.map
+++ b/browser/components/newtab/css/activity-stream-linux.css.map
@@ -28,13 +28,14 @@
"../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss",
"../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss",
"../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss",
- "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss"
+ "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss",
+ "../content-src/asrouter/templates/EOYSnippet/_EOYSnippet.scss"
],
"sourcesContent": [
"/* This is the linux variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 6px;\n$os-infopanel-arrow-width: 20px;\n\n@import './activity-stream';\n",
- "@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n",
+ "@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n@import '../asrouter/templates/EOYSnippet/EOYSnippet';\n",
"html {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n border: 0;\n}\n\nbody {\n margin: 0;\n}\n\nbutton,\ninput {\n background-color: inherit;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n\n[hidden] {\n display: none !important; // sass-lint:disable-line no-important\n}\n",
- "// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-10-95: rgba($grey-10, 0.95);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n inset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 150ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n inset-inline-end: 0;\n inset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
+ "// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-10-95: rgba($grey-10, 0.95);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n$snippets-donation-button-bg: #0C99D5;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n inset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 150ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n inset-inline-end: 0;\n inset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
"@function textbox-shadow($color) {\n @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n --newtab-textbox-focus-color: $color;\n --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n // General styles\n --newtab-background-color: $grey-10;\n --newtab-border-primary-color: $grey-40;\n --newtab-border-secondary-color: $grey-30;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: inherit;\n --newtab-element-active-color: $grey-30-60;\n --newtab-element-hover-color: $grey-20;\n --newtab-icon-primary-color: $grey-90-80;\n --newtab-icon-secondary-color: $grey-90-60;\n --newtab-icon-tertiary-color: $grey-30;\n --newtab-inner-box-shadow-color: $black-10;\n --newtab-link-primary-color: $blue-60;\n --newtab-link-secondary-color: $teal-70;\n --newtab-text-conditional-color: $grey-60;\n --newtab-text-primary-color: $grey-90;\n --newtab-text-secondary-color: $grey-50;\n --newtab-textbox-background-color: $white;\n --newtab-textbox-border: $grey-90-20;\n @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-10;\n --newtab-contextmenu-button-color: $white;\n\n // Modal + overlay\n --newtab-modal-color: $white;\n --newtab-overlay-color: $grey-20-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-50;\n --newtab-section-navigation-text-color: $grey-50;\n --newtab-section-active-contextmenu-color: $grey-90;\n\n // Search\n --newtab-search-border-color: transparent;\n --newtab-search-dropdown-color: $white;\n --newtab-search-dropdown-header-color: $grey-10;\n --newtab-search-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\n\n // Top Sites\n --newtab-topsites-background-color: $white;\n --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n --newtab-topsites-label-color: inherit;\n\n // Cards\n --newtab-card-active-outline-color: $grey-30;\n --newtab-card-background-color: $white;\n --newtab-card-hairline-color: $black-10;\n --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n // Snippets\n --newtab-snippets-background-color: $white;\n --newtab-snippets-hairline-color: transparent;\n\n &[lwt-newtab-brighttext] {\n // General styles\n --newtab-background-color: $grey-80;\n --newtab-border-primary-color: $grey-10-80;\n --newtab-border-secondary-color: $grey-10-10;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: $grey-70;\n --newtab-element-active-color: $grey-10-20;\n --newtab-element-hover-color: $grey-10-10;\n --newtab-icon-primary-color: $grey-10-80;\n --newtab-icon-secondary-color: $grey-10-40;\n --newtab-icon-tertiary-color: $grey-10-40;\n --newtab-inner-box-shadow-color: $grey-10-20;\n --newtab-link-primary-color: $blue-40;\n --newtab-link-secondary-color: $pocket-teal;\n --newtab-text-conditional-color: $grey-10;\n --newtab-text-primary-color: $grey-10;\n --newtab-text-secondary-color: $grey-10-80;\n --newtab-textbox-background-color: $grey-70;\n --newtab-textbox-border: $grey-10-20;\n @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-60;\n --newtab-contextmenu-button-color: $grey-80;\n\n // Modal + overlay\n --newtab-modal-color: $grey-80;\n --newtab-overlay-color: $grey-90-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-10-80;\n --newtab-section-navigation-text-color: $grey-10-80;\n --newtab-section-active-contextmenu-color: $white;\n\n // Search\n --newtab-search-border-color: $grey-10-20;\n --newtab-search-dropdown-color: $grey-70;\n --newtab-search-dropdown-header-color: $grey-60;\n --newtab-search-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\n\n // Top Sites\n --newtab-topsites-background-color: $grey-70;\n --newtab-topsites-icon-shadow: none;\n --newtab-topsites-label-color: $grey-10-80;\n\n // Cards\n --newtab-card-active-outline-color: $grey-60;\n --newtab-card-background-color: $grey-70;\n --newtab-card-hairline-color: $grey-10-10;\n --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n // Snippets\n --newtab-snippets-background-color: $grey-70;\n --newtab-snippets-hairline-color: $white-10;\n }\n}\n",
".icon {\n background-position: center center;\n background-repeat: no-repeat;\n background-size: $icon-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-icon-primary-color);\n height: $icon-size;\n vertical-align: middle;\n width: $icon-size;\n\n &.icon-spacer {\n margin-inline-end: 8px;\n }\n\n &.icon-small-spacer {\n margin-inline-end: 6px;\n }\n\n &.icon-bookmark-added {\n background-image: url('chrome://browser/skin/bookmark.svg');\n }\n\n &.icon-bookmark-hollow {\n background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n }\n\n &.icon-clear-input {\n fill: var(--newtab-icon-secondary-color);\n background-image: url('#{$image-path}glyph-cancel-16.svg');\n }\n\n &.icon-delete {\n background-image: url('#{$image-path}glyph-delete-16.svg');\n }\n\n &.icon-search {\n background-image: url('chrome://browser/skin/search-glass.svg');\n }\n\n &.icon-modal-delete {\n flex-shrink: 0;\n background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n background-size: $larger-icon-size;\n height: $larger-icon-size;\n width: $larger-icon-size;\n }\n\n &.icon-dismiss {\n background-image: url('#{$image-path}glyph-dismiss-16.svg');\n }\n\n &.icon-info {\n background-image: url('#{$image-path}glyph-info-16.svg');\n }\n\n &.icon-import {\n background-image: url('#{$image-path}glyph-import-16.svg');\n }\n\n &.icon-new-window {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-newWindow-16.svg');\n }\n\n &.icon-new-window-private {\n background-image: url('chrome://browser/skin/privateBrowsing.svg');\n }\n\n &.icon-settings {\n background-image: url('chrome://browser/skin/settings.svg');\n }\n\n &.icon-pin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-16.svg');\n }\n\n &.icon-unpin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-unpin-16.svg');\n }\n\n &.icon-edit {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.icon-pocket {\n background-image: url('#{$image-path}glyph-pocket-16.svg');\n }\n\n &.icon-pocket-save {\n background-image: url('#{$image-path}glyph-pocket-save-16.svg');\n }\n\n &.icon-history-item {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-trending {\n background-image: url('#{$image-path}glyph-trending-16.svg');\n transform: translateY(2px); // trending bolt is visually top heavy\n }\n\n &.icon-now {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-topsites {\n background-image: url('#{$image-path}glyph-topsites-16.svg');\n }\n\n &.icon-pin-small {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-check {\n background-image: url('chrome://global/skin/icons/check.svg');\n }\n\n &.icon-download {\n background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n }\n\n &.icon-copy {\n background-image: url('chrome://browser/skin/edit-copy.svg');\n }\n\n &.icon-open-file {\n background-image: url('#{$image-path}glyph-open-file-16.svg');\n }\n\n &.icon-webextension {\n background-image: url('#{$image-path}glyph-webextension-16.svg');\n }\n\n &.icon-highlights {\n background-image: url('#{$image-path}glyph-highlights-16.svg');\n }\n\n &.icon-arrowhead-down {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n }\n\n &.icon-arrowhead-down-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-arrowhead-forward-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n transform: rotate(-90deg);\n width: $smaller-icon-size;\n\n &:dir(rtl) {\n transform: rotate(90deg);\n }\n }\n\n &.icon-arrowhead-up {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n transform: rotate(180deg);\n }\n\n &.icon-add {\n background-image: url('#{$image-path}glyph-add-16.svg');\n }\n\n &.icon-minimize {\n background-image: url('#{$image-path}glyph-minimize-16.svg');\n }\n\n &.icon-maximize {\n background-image: url('#{$image-path}glyph-maximize-16.svg');\n }\n}\n",
".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n &.only-search {\n display: block;\n padding-top: 134px;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n\n .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n inset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 1000;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
@@ -53,12 +54,13 @@
".pocket-logged-in-cta {\n $max-button-width: 130px;\n $min-button-height: 18px;\n font-size: 13px;\n margin-inline-end: 20px;\n display: inline-block;\n\n .pocket-cta-button {\n background: $blue-60;\n letter-spacing: -0.34px;\n color: $white;\n border-radius: 4px;\n cursor: pointer;\n max-width: $max-button-width;\n // The button height is 2px taller than the rest of the cta text.\n // So I move it up by 1px to align with the rest of the cta text.\n margin-top: -1px;\n min-height: $min-button-height;\n padding: 0 8px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n font-size: 11px;\n margin-inline-end: 10px;\n }\n\n .cta-text {\n font-weight: normal;\n font-size: 13px;\n }\n\n .pocket-cta-button,\n .cta-text {\n vertical-align: top;\n }\n}\n",
".more-recommendations {\n @media (min-width: $break-point-large) {\n // This is floating to accomodate a very large number of topics and/or\n // very long topic names due to l10n.\n float: right;\n\n &:dir(rtl) {\n float: left;\n }\n }\n\n &::after {\n background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n content: '';\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-link-secondary-color);\n height: 16px;\n margin-inline-start: 5px;\n vertical-align: top;\n width: 12px;\n }\n\n &:dir(rtl)::after {\n transform: scaleX(-1);\n }\n}\n",
".ASRouterButton {\n font-weight: bold;\n white-space: nowrap;\n border-radius: 4px;\n border: 1px solid var(--newtab-border-secondary-color);\n background-color: var(--newtab-button-secondary-color);\n font-family: inherit;\n padding: 8px 15px;\n margin-inline-start: 12px;\n color: inherit;\n cursor: pointer;\n\n .tall & {\n margin-inline-start: 20px;\n }\n\n &.primary {\n border: 1px solid var(--newtab-button-primary-color);\n background-color: var(--newtab-button-primary-color);\n color: $grey-10;\n }\n\n &.secondary {\n background: var(--newtab-button-secondary-color);\n border: 1px solid var(--newtab-border-primary-color);\n font-size: 14px;\n font-weight: 600;\n }\n}\n",
- ".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n\n [lwt-newtab-brighttext] & {\n font-weight: bold;\n }\n }\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n inset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n",
+ ".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n text-decoration: underline;\n\n [lwt-newtab-brighttext] & {\n font-weight: bold;\n }\n }\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n inset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n",
".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 1100;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 570px;\n position: fixed;\n top: calc(50% - 285px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 1101;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n // if modal is narrow enough, add a vertical scroll bar\n @media(max-width: 650px) and (max-height: 600px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n // if modal is narrow enough, footer becomes sticky\n @media(max-width: 650px) and (max-height: 600px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n min-width: 150px;\n height: 30px;\n padding: 4px 30px 6px;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n }\n}\n",
- ".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n",
+ ".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n p em {\n color: $grey-90;\n font-style: normal;\n background: $yellow-50;\n }\n\n &.bold,\n &.takeover {\n .donation-form-url,\n .donation-amount {\n padding-top: 8px;\n padding-bottom: 8px;\n }\n }\n\n &.bold {\n height: 176px;\n\n .body {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .icon {\n width: 71px;\n height: 71px;\n }\n }\n\n &.takeover {\n height: 344px;\n\n .body {\n font-size: 16px;\n line-height: 24px;\n margin-bottom: 35px;\n }\n\n .icon {\n width: 79px;\n height: 79px;\n }\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n &.takeover,\n &.bold {\n .icon {\n margin-inline-end: 20px;\n }\n }\n\n .icon {\n align-self: flex-start;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n",
".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n &.send_to_device_snippet {\n text-align: center;\n\n .message {\n font-size: 16px;\n }\n }\n\n .ASRouterButton {\n &.primary {\n flex: 1 1 0;\n }\n }\n\n .scene2Icon {\n width: 100%;\n\n img {\n width: 98px;\n display: inline-block;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n\n p {\n margin-top: 0;\n }\n }\n\n .privacyNotice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n\n p {\n margin-bottom: 0;\n }\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n padding-top: 40px;\n padding-bottom: 40px;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background-color: var(--newtab-background-color);\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &.mainInput {\n border-radius: 3px;\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 100%;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n\n.submissionStatus {\n text-align: center;\n font-size: 14px;\n padding: 20px 0;\n\n .submitStatusTitle {\n font-size: 20px;\n }\n}\n",
- ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url('resource://activity-stream/data/content/assets/illustration-addons@2x.png');\n }\n\n &.privatebrowsing {\n background-image: url('resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png');\n }\n\n &.screenshots {\n background-image: url('resource://activity-stream/data/content/assets/illustration-screenshots@2x.png');\n }\n\n &.gift {\n background-image: url('resource://activity-stream/data/content/assets/illustration-gift@2x.png');\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 180px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0;\n height: 160px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -105px;\n margin-inline-end: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n }\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 230px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\n margin-top: 40px;\n margin-inline-start: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
+ ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url('resource://activity-stream/data/content/assets/illustration-addons@2x.png');\n }\n\n &.privatebrowsing {\n background-image: url('resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png');\n }\n\n &.screenshots {\n background-image: url('resource://activity-stream/data/content/assets/illustration-screenshots@2x.png');\n }\n\n &.gift {\n background-image: url('resource://activity-stream/data/content/assets/illustration-gift@2x.png');\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 180px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0;\n height: 160px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -105px;\n margin-inline-end: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n }\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 230px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\n margin-top: 40px;\n margin-inline-start: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n",
+ ".EOYSnippetForm {\n margin-top: 12px;\n align-self: start;\n font-size: 12px;\n display: flex;\n align-items: center;\n\n .donation-amount,\n .donation-form-url {\n white-space: nowrap;\n font-size: 14px;\n padding: 5px 14px;\n border-radius: 2px;\n }\n\n .donation-amount {\n color: $grey-90;\n margin-inline-end: 18px;\n border: 1px solid $grey-40;\n background: $grey-10;\n cursor: pointer;\n }\n\n input {\n &[type='radio'] {\n opacity: 0;\n margin-inline-end: -18px;\n\n &:checked+.donation-amount {\n background: $grey-50;\n color: $white;\n border: 1px solid $grey-60;\n }\n }\n }\n\n .monthly-checkbox-container {\n width: 100%;\n }\n\n .donation-form-url {\n margin-inline-start: 18px;\n background-color: $snippets-donation-button-bg;\n border: 0;\n color: $white;\n align-self: flex-end;\n display: flex;\n cursor: pointer;\n }\n}\n"
],
"names": [],
- "mappings": "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"
+ "mappings": "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"
}
\ No newline at end of file
diff --git a/browser/components/newtab/css/activity-stream-mac.css b/browser/components/newtab/css/activity-stream-mac.css
index 2d04011888cd..b347477171d5 100644
--- a/browser/components/newtab/css/activity-stream-mac.css
+++ b/browser/components/newtab/css/activity-stream-mac.css
@@ -1934,7 +1934,8 @@ a.firstrun-link {
align-items: center; }
.SnippetBaseContainer a {
cursor: pointer;
- color: var(--newtab-link-primary-color); }
+ color: var(--newtab-link-primary-color);
+ text-decoration: underline; }
[lwt-newtab-brighttext] .SnippetBaseContainer a {
font-weight: bold; }
.SnippetBaseContainer .innerWrapper {
@@ -2072,6 +2073,37 @@ a.firstrun-link {
.SimpleSnippet.tall {
padding: 27px 0; }
+.SimpleSnippet p em {
+ color: #0C0C0D;
+ font-style: normal;
+ background: #FFE900; }
+
+.SimpleSnippet.bold .donation-form-url,
+.SimpleSnippet.bold .donation-amount, .SimpleSnippet.takeover .donation-form-url,
+.SimpleSnippet.takeover .donation-amount {
+ padding-top: 8px;
+ padding-bottom: 8px; }
+
+.SimpleSnippet.bold {
+ height: 176px; }
+ .SimpleSnippet.bold .body {
+ font-size: 14px;
+ line-height: 20px;
+ margin-bottom: 20px; }
+ .SimpleSnippet.bold .icon {
+ width: 71px;
+ height: 71px; }
+
+.SimpleSnippet.takeover {
+ height: 344px; }
+ .SimpleSnippet.takeover .body {
+ font-size: 16px;
+ line-height: 24px;
+ margin-bottom: 35px; }
+ .SimpleSnippet.takeover .icon {
+ width: 79px;
+ height: 79px; }
+
.SimpleSnippet .title {
display: inline;
font-size: inherit;
@@ -2094,6 +2126,12 @@ a.firstrun-link {
.SimpleSnippet.tall .icon {
margin-inline-end: 20px; }
+.SimpleSnippet.takeover .icon, .SimpleSnippet.bold .icon {
+ margin-inline-end: 20px; }
+
+.SimpleSnippet .icon {
+ align-self: flex-start; }
+
.SimpleSnippet .ASRouterButton {
cursor: pointer; }
@@ -2276,4 +2314,40 @@ a.firstrun-link {
.onboardingMessage:last-child::before {
content: none; }
+.EOYSnippetForm {
+ margin-top: 12px;
+ align-self: start;
+ font-size: 12px;
+ display: flex;
+ align-items: center; }
+ .EOYSnippetForm .donation-amount,
+ .EOYSnippetForm .donation-form-url {
+ white-space: nowrap;
+ font-size: 14px;
+ padding: 5px 14px;
+ border-radius: 2px; }
+ .EOYSnippetForm .donation-amount {
+ color: #0C0C0D;
+ margin-inline-end: 18px;
+ border: 1px solid #B1B1B3;
+ background: #F9F9FA;
+ cursor: pointer; }
+ .EOYSnippetForm input[type='radio'] {
+ opacity: 0;
+ margin-inline-end: -18px; }
+ .EOYSnippetForm input[type='radio']:checked + .donation-amount {
+ background: #737373;
+ color: #FFF;
+ border: 1px solid #4A4A4F; }
+ .EOYSnippetForm .monthly-checkbox-container {
+ width: 100%; }
+ .EOYSnippetForm .donation-form-url {
+ margin-inline-start: 18px;
+ background-color: #0C99D5;
+ border: 0;
+ color: #FFF;
+ align-self: flex-end;
+ display: flex;
+ cursor: pointer; }
+
/*# sourceMappingURL=activity-stream-mac.css.map */
\ No newline at end of file
diff --git a/browser/components/newtab/css/activity-stream-mac.css.map b/browser/components/newtab/css/activity-stream-mac.css.map
index 0ee24383e645..b255267f936e 100644
--- a/browser/components/newtab/css/activity-stream-mac.css.map
+++ b/browser/components/newtab/css/activity-stream-mac.css.map
@@ -28,13 +28,14 @@
"../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss",
"../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss",
"../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss",
- "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss"
+ "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss",
+ "../content-src/asrouter/templates/EOYSnippet/_EOYSnippet.scss"
],
"sourcesContent": [
"/* This is the mac variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 7px;\n$os-infopanel-arrow-width: 18px;\n\n[lwt-newtab-brighttext] {\n -moz-osx-font-smoothing: grayscale;\n}\n\n@import './activity-stream';\n",
- "@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n",
+ "@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n@import '../asrouter/templates/EOYSnippet/EOYSnippet';\n",
"html {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n border: 0;\n}\n\nbody {\n margin: 0;\n}\n\nbutton,\ninput {\n background-color: inherit;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n\n[hidden] {\n display: none !important; // sass-lint:disable-line no-important\n}\n",
- "// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-10-95: rgba($grey-10, 0.95);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n inset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 150ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n inset-inline-end: 0;\n inset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
+ "// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-10-95: rgba($grey-10, 0.95);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n$snippets-donation-button-bg: #0C99D5;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n inset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 150ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n inset-inline-end: 0;\n inset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
"@function textbox-shadow($color) {\n @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n --newtab-textbox-focus-color: $color;\n --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n // General styles\n --newtab-background-color: $grey-10;\n --newtab-border-primary-color: $grey-40;\n --newtab-border-secondary-color: $grey-30;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: inherit;\n --newtab-element-active-color: $grey-30-60;\n --newtab-element-hover-color: $grey-20;\n --newtab-icon-primary-color: $grey-90-80;\n --newtab-icon-secondary-color: $grey-90-60;\n --newtab-icon-tertiary-color: $grey-30;\n --newtab-inner-box-shadow-color: $black-10;\n --newtab-link-primary-color: $blue-60;\n --newtab-link-secondary-color: $teal-70;\n --newtab-text-conditional-color: $grey-60;\n --newtab-text-primary-color: $grey-90;\n --newtab-text-secondary-color: $grey-50;\n --newtab-textbox-background-color: $white;\n --newtab-textbox-border: $grey-90-20;\n @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-10;\n --newtab-contextmenu-button-color: $white;\n\n // Modal + overlay\n --newtab-modal-color: $white;\n --newtab-overlay-color: $grey-20-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-50;\n --newtab-section-navigation-text-color: $grey-50;\n --newtab-section-active-contextmenu-color: $grey-90;\n\n // Search\n --newtab-search-border-color: transparent;\n --newtab-search-dropdown-color: $white;\n --newtab-search-dropdown-header-color: $grey-10;\n --newtab-search-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\n\n // Top Sites\n --newtab-topsites-background-color: $white;\n --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n --newtab-topsites-label-color: inherit;\n\n // Cards\n --newtab-card-active-outline-color: $grey-30;\n --newtab-card-background-color: $white;\n --newtab-card-hairline-color: $black-10;\n --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n // Snippets\n --newtab-snippets-background-color: $white;\n --newtab-snippets-hairline-color: transparent;\n\n &[lwt-newtab-brighttext] {\n // General styles\n --newtab-background-color: $grey-80;\n --newtab-border-primary-color: $grey-10-80;\n --newtab-border-secondary-color: $grey-10-10;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: $grey-70;\n --newtab-element-active-color: $grey-10-20;\n --newtab-element-hover-color: $grey-10-10;\n --newtab-icon-primary-color: $grey-10-80;\n --newtab-icon-secondary-color: $grey-10-40;\n --newtab-icon-tertiary-color: $grey-10-40;\n --newtab-inner-box-shadow-color: $grey-10-20;\n --newtab-link-primary-color: $blue-40;\n --newtab-link-secondary-color: $pocket-teal;\n --newtab-text-conditional-color: $grey-10;\n --newtab-text-primary-color: $grey-10;\n --newtab-text-secondary-color: $grey-10-80;\n --newtab-textbox-background-color: $grey-70;\n --newtab-textbox-border: $grey-10-20;\n @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-60;\n --newtab-contextmenu-button-color: $grey-80;\n\n // Modal + overlay\n --newtab-modal-color: $grey-80;\n --newtab-overlay-color: $grey-90-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-10-80;\n --newtab-section-navigation-text-color: $grey-10-80;\n --newtab-section-active-contextmenu-color: $white;\n\n // Search\n --newtab-search-border-color: $grey-10-20;\n --newtab-search-dropdown-color: $grey-70;\n --newtab-search-dropdown-header-color: $grey-60;\n --newtab-search-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\n\n // Top Sites\n --newtab-topsites-background-color: $grey-70;\n --newtab-topsites-icon-shadow: none;\n --newtab-topsites-label-color: $grey-10-80;\n\n // Cards\n --newtab-card-active-outline-color: $grey-60;\n --newtab-card-background-color: $grey-70;\n --newtab-card-hairline-color: $grey-10-10;\n --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n // Snippets\n --newtab-snippets-background-color: $grey-70;\n --newtab-snippets-hairline-color: $white-10;\n }\n}\n",
".icon {\n background-position: center center;\n background-repeat: no-repeat;\n background-size: $icon-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-icon-primary-color);\n height: $icon-size;\n vertical-align: middle;\n width: $icon-size;\n\n &.icon-spacer {\n margin-inline-end: 8px;\n }\n\n &.icon-small-spacer {\n margin-inline-end: 6px;\n }\n\n &.icon-bookmark-added {\n background-image: url('chrome://browser/skin/bookmark.svg');\n }\n\n &.icon-bookmark-hollow {\n background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n }\n\n &.icon-clear-input {\n fill: var(--newtab-icon-secondary-color);\n background-image: url('#{$image-path}glyph-cancel-16.svg');\n }\n\n &.icon-delete {\n background-image: url('#{$image-path}glyph-delete-16.svg');\n }\n\n &.icon-search {\n background-image: url('chrome://browser/skin/search-glass.svg');\n }\n\n &.icon-modal-delete {\n flex-shrink: 0;\n background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n background-size: $larger-icon-size;\n height: $larger-icon-size;\n width: $larger-icon-size;\n }\n\n &.icon-dismiss {\n background-image: url('#{$image-path}glyph-dismiss-16.svg');\n }\n\n &.icon-info {\n background-image: url('#{$image-path}glyph-info-16.svg');\n }\n\n &.icon-import {\n background-image: url('#{$image-path}glyph-import-16.svg');\n }\n\n &.icon-new-window {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-newWindow-16.svg');\n }\n\n &.icon-new-window-private {\n background-image: url('chrome://browser/skin/privateBrowsing.svg');\n }\n\n &.icon-settings {\n background-image: url('chrome://browser/skin/settings.svg');\n }\n\n &.icon-pin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-16.svg');\n }\n\n &.icon-unpin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-unpin-16.svg');\n }\n\n &.icon-edit {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.icon-pocket {\n background-image: url('#{$image-path}glyph-pocket-16.svg');\n }\n\n &.icon-pocket-save {\n background-image: url('#{$image-path}glyph-pocket-save-16.svg');\n }\n\n &.icon-history-item {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-trending {\n background-image: url('#{$image-path}glyph-trending-16.svg');\n transform: translateY(2px); // trending bolt is visually top heavy\n }\n\n &.icon-now {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-topsites {\n background-image: url('#{$image-path}glyph-topsites-16.svg');\n }\n\n &.icon-pin-small {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-check {\n background-image: url('chrome://global/skin/icons/check.svg');\n }\n\n &.icon-download {\n background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n }\n\n &.icon-copy {\n background-image: url('chrome://browser/skin/edit-copy.svg');\n }\n\n &.icon-open-file {\n background-image: url('#{$image-path}glyph-open-file-16.svg');\n }\n\n &.icon-webextension {\n background-image: url('#{$image-path}glyph-webextension-16.svg');\n }\n\n &.icon-highlights {\n background-image: url('#{$image-path}glyph-highlights-16.svg');\n }\n\n &.icon-arrowhead-down {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n }\n\n &.icon-arrowhead-down-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-arrowhead-forward-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n transform: rotate(-90deg);\n width: $smaller-icon-size;\n\n &:dir(rtl) {\n transform: rotate(90deg);\n }\n }\n\n &.icon-arrowhead-up {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n transform: rotate(180deg);\n }\n\n &.icon-add {\n background-image: url('#{$image-path}glyph-add-16.svg');\n }\n\n &.icon-minimize {\n background-image: url('#{$image-path}glyph-minimize-16.svg');\n }\n\n &.icon-maximize {\n background-image: url('#{$image-path}glyph-maximize-16.svg');\n }\n}\n",
".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n &.only-search {\n display: block;\n padding-top: 134px;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n\n .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n inset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 1000;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
@@ -53,12 +54,13 @@
".pocket-logged-in-cta {\n $max-button-width: 130px;\n $min-button-height: 18px;\n font-size: 13px;\n margin-inline-end: 20px;\n display: inline-block;\n\n .pocket-cta-button {\n background: $blue-60;\n letter-spacing: -0.34px;\n color: $white;\n border-radius: 4px;\n cursor: pointer;\n max-width: $max-button-width;\n // The button height is 2px taller than the rest of the cta text.\n // So I move it up by 1px to align with the rest of the cta text.\n margin-top: -1px;\n min-height: $min-button-height;\n padding: 0 8px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n font-size: 11px;\n margin-inline-end: 10px;\n }\n\n .cta-text {\n font-weight: normal;\n font-size: 13px;\n }\n\n .pocket-cta-button,\n .cta-text {\n vertical-align: top;\n }\n}\n",
".more-recommendations {\n @media (min-width: $break-point-large) {\n // This is floating to accomodate a very large number of topics and/or\n // very long topic names due to l10n.\n float: right;\n\n &:dir(rtl) {\n float: left;\n }\n }\n\n &::after {\n background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n content: '';\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-link-secondary-color);\n height: 16px;\n margin-inline-start: 5px;\n vertical-align: top;\n width: 12px;\n }\n\n &:dir(rtl)::after {\n transform: scaleX(-1);\n }\n}\n",
".ASRouterButton {\n font-weight: bold;\n white-space: nowrap;\n border-radius: 4px;\n border: 1px solid var(--newtab-border-secondary-color);\n background-color: var(--newtab-button-secondary-color);\n font-family: inherit;\n padding: 8px 15px;\n margin-inline-start: 12px;\n color: inherit;\n cursor: pointer;\n\n .tall & {\n margin-inline-start: 20px;\n }\n\n &.primary {\n border: 1px solid var(--newtab-button-primary-color);\n background-color: var(--newtab-button-primary-color);\n color: $grey-10;\n }\n\n &.secondary {\n background: var(--newtab-button-secondary-color);\n border: 1px solid var(--newtab-border-primary-color);\n font-size: 14px;\n font-weight: 600;\n }\n}\n",
- ".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n\n [lwt-newtab-brighttext] & {\n font-weight: bold;\n }\n }\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n inset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n",
+ ".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n text-decoration: underline;\n\n [lwt-newtab-brighttext] & {\n font-weight: bold;\n }\n }\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n inset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n",
".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 1100;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 570px;\n position: fixed;\n top: calc(50% - 285px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 1101;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n // if modal is narrow enough, add a vertical scroll bar\n @media(max-width: 650px) and (max-height: 600px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n // if modal is narrow enough, footer becomes sticky\n @media(max-width: 650px) and (max-height: 600px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n min-width: 150px;\n height: 30px;\n padding: 4px 30px 6px;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n }\n}\n",
- ".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n",
+ ".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n p em {\n color: $grey-90;\n font-style: normal;\n background: $yellow-50;\n }\n\n &.bold,\n &.takeover {\n .donation-form-url,\n .donation-amount {\n padding-top: 8px;\n padding-bottom: 8px;\n }\n }\n\n &.bold {\n height: 176px;\n\n .body {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .icon {\n width: 71px;\n height: 71px;\n }\n }\n\n &.takeover {\n height: 344px;\n\n .body {\n font-size: 16px;\n line-height: 24px;\n margin-bottom: 35px;\n }\n\n .icon {\n width: 79px;\n height: 79px;\n }\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n &.takeover,\n &.bold {\n .icon {\n margin-inline-end: 20px;\n }\n }\n\n .icon {\n align-self: flex-start;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n",
".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n &.send_to_device_snippet {\n text-align: center;\n\n .message {\n font-size: 16px;\n }\n }\n\n .ASRouterButton {\n &.primary {\n flex: 1 1 0;\n }\n }\n\n .scene2Icon {\n width: 100%;\n\n img {\n width: 98px;\n display: inline-block;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n\n p {\n margin-top: 0;\n }\n }\n\n .privacyNotice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n\n p {\n margin-bottom: 0;\n }\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n padding-top: 40px;\n padding-bottom: 40px;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background-color: var(--newtab-background-color);\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &.mainInput {\n border-radius: 3px;\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 100%;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n\n.submissionStatus {\n text-align: center;\n font-size: 14px;\n padding: 20px 0;\n\n .submitStatusTitle {\n font-size: 20px;\n }\n}\n",
- ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url('resource://activity-stream/data/content/assets/illustration-addons@2x.png');\n }\n\n &.privatebrowsing {\n background-image: url('resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png');\n }\n\n &.screenshots {\n background-image: url('resource://activity-stream/data/content/assets/illustration-screenshots@2x.png');\n }\n\n &.gift {\n background-image: url('resource://activity-stream/data/content/assets/illustration-gift@2x.png');\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 180px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0;\n height: 160px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -105px;\n margin-inline-end: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n }\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 230px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\n margin-top: 40px;\n margin-inline-start: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
+ ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url('resource://activity-stream/data/content/assets/illustration-addons@2x.png');\n }\n\n &.privatebrowsing {\n background-image: url('resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png');\n }\n\n &.screenshots {\n background-image: url('resource://activity-stream/data/content/assets/illustration-screenshots@2x.png');\n }\n\n &.gift {\n background-image: url('resource://activity-stream/data/content/assets/illustration-gift@2x.png');\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 180px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0;\n height: 160px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -105px;\n margin-inline-end: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n }\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 230px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\n margin-top: 40px;\n margin-inline-start: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n",
+ ".EOYSnippetForm {\n margin-top: 12px;\n align-self: start;\n font-size: 12px;\n display: flex;\n align-items: center;\n\n .donation-amount,\n .donation-form-url {\n white-space: nowrap;\n font-size: 14px;\n padding: 5px 14px;\n border-radius: 2px;\n }\n\n .donation-amount {\n color: $grey-90;\n margin-inline-end: 18px;\n border: 1px solid $grey-40;\n background: $grey-10;\n cursor: pointer;\n }\n\n input {\n &[type='radio'] {\n opacity: 0;\n margin-inline-end: -18px;\n\n &:checked+.donation-amount {\n background: $grey-50;\n color: $white;\n border: 1px solid $grey-60;\n }\n }\n }\n\n .monthly-checkbox-container {\n width: 100%;\n }\n\n .donation-form-url {\n margin-inline-start: 18px;\n background-color: $snippets-donation-button-bg;\n border: 0;\n color: $white;\n align-self: flex-end;\n display: flex;\n cursor: pointer;\n }\n}\n"
],
"names": [],
- "mappings": "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"
+ "mappings": ";AAAA,6BAA6B;CAM7B,AAAA,AAAA,qBAAC,AAAA,EAAuB;EACtB,uBAAuB,EAAE,SAAS,GACnC;;AERD,AAAA,IAAI,CAAC;EACH,UAAU,EAAE,UAAU,GACvB;;AAED,AAAA,CAAC;AACD,AAAA,CAAC,AAAA,QAAQ;AACT,AAAA,CAAC,AAAA,OAAO,CAAC;EACP,UAAU,EAAE,OAAO,GACpB;;AAED,AAAA,CAAC,AAAA,kBAAkB,CAAC;EAClB,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,MAAM;AACN,AAAA,KAAK,CAAC;EACJ,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO,GACnB;;CAED,AAAA,AAAA,MAAC,AAAA,EAAQ;EACP,OAAO,EAAE,eAAe,GACzB;;AEPD,AAAA,IAAI,CAAC;EAEH,yBAAyB,EDjBjB,OAAO;ECkBf,6BAA6B,EDfrB,OAAO;ECgBf,+BAA+B,EDjBvB,OAAO;ECkBf,6BAA6B,EDvBrB,OAAO;ECwBf,+BAA+B,EAAE,OAAO;EACxC,6BAA6B,EDpBrB,wBAAO;ECqBf,4BAA4B,EDtBpB,OAAO;ECuBf,2BAA2B,EDhBnB,qBAAO;ECiBf,6BAA6B,EDjBrB,qBAAO;ECkBf,4BAA4B,EDxBpB,OAAO;ECyBf,+BAA+B,EDQzB,kBAAI;ECPV,2BAA2B,ED/BnB,OAAO;ECgCf,6BAA6B,EDpBrB,OAAO;ECqBf,+BAA+B,EDzBvB,OAAO;EC0Bf,2BAA2B,EDvBnB,OAAO;ECwBf,6BAA6B,ED5BrB,OAAO;EC6Bf,iCAAiC,EDW3B,IAAI;ECVV,uBAAuB,ED1Bf,qBAAO;ECTf,4BAA4B,EDFpB,OAAO;ECGf,gCAAgC,EALxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDET,OAAO,ECFW,CAAC,CAAC,CAAC,CAAC,CAAC,CDsIX,GAAG,CApIf,qBAAO;ECyCf,qCAAqC,EDtC7B,OAAO;ECuCf,iCAAiC,EDK3B,IAAI;ECFV,oBAAoB,EDEd,IAAI;ECDV,sBAAsB,ED1Cd,wBAAO;EC6Cf,kCAAkC,ED1C1B,OAAO;EC2Cf,sCAAsC,ED3C9B,OAAO;EC4Cf,yCAAyC,EDxCjC,OAAO;EC2Cf,4BAA4B,EAAE,WAAW;EACzC,8BAA8B,EDRxB,IAAI;ECSV,qCAAqC,EDrD7B,OAAO;ECsDf,uCAAuC,EDtD/B,yBAAO;ECuDf,0BAA0B,ED/ClB,qBAAO;ECgDf,8BAA8B,EDEC,OAAO;ECCtC,kCAAkC,EDf5B,IAAI;ECgBV,6BAA6B,EAAE,KAAK,CAtDnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;EAuD/D,6BAA6B,EAAE,OAAO;EAGtC,kCAAkC,ED9D1B,OAAO;EC+Df,8BAA8B,EDrBxB,IAAI;ECsBV,4BAA4B,ED/BtB,kBAAI;ECgCV,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CD3DzB,qBAAO;EC8Df,kCAAkC,ED1B5B,IAAI;EC2BV,gCAAgC,EAAE,WAAW,GA4D9C;EApHD,AA0DE,IA1DE,CA0DF,AAAA,qBAAE,AAAA,EAAuB;IAEvB,yBAAyB,EDpEnB,OAAO;ICqEb,6BAA6B,ED5EvB,wBAAO;IC6Eb,+BAA+B,ED7EzB,wBAAO;IC8Eb,6BAA6B,EDjFvB,OAAO;ICkFb,+BAA+B,EDzEzB,OAAO;IC0Eb,6BAA6B,EDhFvB,wBAAO;ICiFb,4BAA4B,EDjFtB,wBAAO;ICkFb,2BAA2B,EDlFrB,wBAAO;ICmFb,6BAA6B,EDnFvB,wBAAO;ICoFb,4BAA4B,EDpFtB,wBAAO;ICqFb,+BAA+B,EDrFzB,wBAAO;ICsFb,2BAA2B,ED3FrB,OAAO;IC4Fb,6BAA6B,EDzCnB,OAAO;IC0CjB,+BAA+B,EDxFzB,OAAO;ICyFb,2BAA2B,EDzFrB,OAAO;IC0Fb,6BAA6B,ED1FvB,wBAAO;IC2Fb,iCAAiC,EDrF3B,OAAO;ICsFb,uBAAuB,ED5FjB,wBAAO;ICDf,4BAA4B,EDJpB,OAAO;ICKf,gCAAgC,EALxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDAT,OAAO,ECAW,CAAC,CAAC,CAAC,CAAC,CAAC,CDsIX,GAAG,CAtIf,uBAAO;ICqGb,qCAAqC,ED3F/B,OAAO;IC4Fb,iCAAiC,ED1F3B,OAAO;IC6Fb,oBAAoB,ED7Fd,OAAO;IC8Fb,sBAAsB,ED7FhB,qBAAO;ICgGb,kCAAkC,EDxG5B,wBAAO;ICyGb,sCAAsC,EDzGhC,wBAAO;IC0Gb,yCAAyC,ED9DrC,IAAI;ICiER,4BAA4B,ED7GtB,wBAAO;IC8Gb,8BAA8B,EDxGxB,OAAO;ICyGb,qCAAqC,ED1G/B,OAAO;IC2Gb,uCAAuC,EDzGjC,sBAAO;IC0Gb,0BAA0B,EDjHpB,wBAAO;ICkHb,8BAA8B,EDtE1B,IAAI;ICyER,kCAAkC,ED/G5B,OAAO;ICgHb,6BAA6B,EAAE,IAAI;IACnC,6BAA6B,EDvHvB,wBAAO;IC0Hb,kCAAkC,EDrH5B,OAAO;ICsHb,8BAA8B,EDrHxB,OAAO;ICsHb,4BAA4B,ED5HtB,wBAAO;IC6Hb,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDrH3B,qBAAO;ICwHb,kCAAkC,ED1H5B,OAAO;IC2Hb,gCAAgC,EDrF5B,wBAAI,GCsFT;;ACxIH,AAAA,KAAK,CAAC;EACJ,mBAAmB,EAAE,aAAa;EAClC,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EF4EL,IAAI;EE3Ed,uBAAuB,EAAE,IAAI;EAC7B,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,gCAAgC;EACtC,MAAM,EFwEI,IAAI;EEvEd,cAAc,EAAE,MAAM;EACtB,KAAK,EFsEK,IAAI,GEwGf;EAvLD,AAWE,KAXG,AAWH,YAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG,GACvB;EAbH,AAeE,KAfG,AAeH,kBAAmB,CAAC;IAClB,iBAAiB,EAAE,GAAG,GACvB;EAjBH,AAmBE,KAnBG,AAmBH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yCAAyC,GAC5D;EArBH,AAuBE,KAvBG,AAuBH,qBAAsB,CAAC;IACrB,gBAAgB,EAAE,gDAAgD,GACnE;EAzBH,AA2BE,KA3BG,AA2BH,iBAAkB,CAAC;IACjB,IAAI,EAAE,kCAAkC;IACxC,gBAAgB,EAAE,iDAAwC,GAC3D;EA9BH,AAgCE,KAhCG,AAgCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAlCH,AAoCE,KApCG,AAoCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,6CAA6C,GAChE;EAtCH,AAwCE,KAxCG,AAwCH,kBAAmB,CAAC;IAClB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,uDAA8C;IAChE,eAAe,EFsCA,IAAI;IErCnB,MAAM,EFqCS,IAAI;IEpCnB,KAAK,EFoCU,IAAI,GEnCpB;EA9CH,AAgDE,KAhDG,AAgDH,aAAc,CAAC;IACb,gBAAgB,EAAE,kDAAyC,GAC5D;EAlDH,AAoDE,KApDG,AAoDH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EAtDH,AAwDE,KAxDG,AAwDH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EA1DH,AA4DE,KA5DG,AA4DH,gBAAiB,CAAC;IAEhB,gBAAgB,EAAE,oDAA2C,GAC9D;IA/DH,AF0ME,KE1MG,AA4DH,gBAAiB,AF8IpB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EE5MH,AAiEE,KAjEG,AAiEH,wBAAyB,CAAC;IACxB,gBAAgB,EAAE,gDAAgD,GACnE;EAnEH,AAqEE,KArEG,AAqEH,cAAe,CAAC;IACd,gBAAgB,EAAE,yCAAyC,GAC5D;EAvEH,AAyEE,KAzEG,AAyEH,SAAU,CAAC;IAET,gBAAgB,EAAE,8CAAqC,GACxD;IA5EH,AF0ME,KE1MG,AAyEH,SAAU,AFiIb,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EE5MH,AA8EE,KA9EG,AA8EH,WAAY,CAAC;IAEX,gBAAgB,EAAE,gDAAuC,GAC1D;IAjFH,AF0ME,KE1MG,AA8EH,WAAY,AF4Hf,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EE5MH,AAmFE,KAnFG,AAmFH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EArFH,AAuFE,KAvFG,AAuFH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAzFH,AA2FE,KA3FG,AA2FH,iBAAkB,CAAC;IACjB,gBAAgB,EAAE,sDAA6C,GAChE;EA7FH,AA+FE,KA/FG,AA+FH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,wCAAwC,GAC3D;EAjGH,AAmGE,KAnGG,AAmGH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C;IAC5D,SAAS,EAAE,eAAe,GAC3B;EAtGH,AAwGE,KAxGG,AAwGH,SAAU,CAAC;IACT,gBAAgB,EAAE,wCAAwC,GAC3D;EA1GH,AA4GE,KA5GG,AA4GH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EA9GH,AAgHE,KAhHG,AAgHH,eAAgB,CAAC;IAEf,gBAAgB,EAAE,8CAAqC;IACvD,eAAe,EFnCC,IAAI;IEoCpB,MAAM,EFpCU,IAAI;IEqCpB,KAAK,EFrCW,IAAI,GEsCrB;IAtHH,AF0ME,KE1MG,AAgHH,eAAgB,AF0FnB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EE5MH,AAwHE,KAxHG,AAwHH,WAAY,CAAC;IACX,gBAAgB,EAAE,2CAA2C,GAC9D;EA1HH,AA4HE,KA5HG,AA4HH,cAAe,CAAC;IACd,gBAAgB,EAAE,wEAAwE,GAC3F;EA9HH,AAgIE,KAhIG,AAgIH,UAAW,CAAC;IACV,gBAAgB,EAAE,0CAA0C,GAC7D;EAlIH,AAoIE,KApIG,AAoIH,eAAgB,CAAC;IACf,gBAAgB,EAAE,oDAA2C,GAC9D;EAtIH,AAwIE,KAxIG,AAwIH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,uDAA8C,GACjE;EA1IH,AA4IE,KA5IG,AA4IH,gBAAiB,CAAC;IAChB,gBAAgB,EAAE,qDAA4C,GAC/D;EA9IH,AAgJE,KAhJG,AAgJH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yDAAgD,GACnE;EAlJH,AAoJE,KApJG,AAoJH,0BAA2B,CAAC;IAC1B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EFtEC,IAAI;IEuEpB,MAAM,EFvEU,IAAI;IEwEpB,KAAK,EFxEW,IAAI,GEyErB;EAzJH,AA2JE,KA3JG,AA2JH,6BAA8B,CAAC;IAC7B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EF7EC,IAAI;IE8EpB,MAAM,EF9EU,IAAI;IE+EpB,SAAS,EAAE,cAAc;IACzB,KAAK,EFhFW,IAAI,GEqFrB;IArKH,AAkKI,KAlKC,AA2JH,6BAA8B,AAO5B,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,aAAa,GACzB;EApKL,AAuKE,KAvKG,AAuKH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,yDAAgD;IAClE,SAAS,EAAE,cAAc,GAC1B;EA1KH,AA4KE,KA5KG,AA4KH,SAAU,CAAC;IACT,gBAAgB,EAAE,8CAAqC,GACxD;EA9KH,AAgLE,KAhLG,AAgLH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EAlLH,AAoLE,KApLG,AAoLH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;;AJjLH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI,GACb;;AAED,AAAA,IAAI;AACJ,AAAA,KAAK,CAAC;EACJ,UAAU,EAAE,KAAK,GAClB;;AAED,AAAA,IAAI,CAAC;EACH,gBAAgB,EAAE,8BAA8B;EAChD,WAAW,EAAE,qFAAqF;EAClG,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM,GACnB;;AAED,AAAA,EAAE;AACF,AAAA,EAAE,CAAC;EACD,WAAW,EAAE,MAAM,GACpB;;AAED,AAAA,CAAC,CAAC;EACA,eAAe,EAAE,IAAI,GACtB;;AAGD,AAAA,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,gBAAgB;EACtB,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG,GACX;;AAED,AAAA,aAAa,CAAC;EACZ,MAAM,EGhCW,GAAG,CAAC,KAAK,CAAC,oCAAoC;EHiC/D,aAAa,EE0BC,GAAG;EFzBjB,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,cAAc,EAAE,IAAI;EACpB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,GAAG,GACb;;AAED,UAAU,CAAV,MAAU;EACR,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;EAGZ,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;;AAId,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,oBAAoB,GAMjC;EARD,AAIE,aAJW,AAIX,GAAI,CAAC;IACH,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,CAAC,GACX;;AAGH,AAAA,QAAQ,CAAC;EACP,UAAU,EGhEO,GAAG,CAAC,KAAK,CAAC,oCAAoC;EHiE/D,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,SAAS,EAAE,IAAI;EACf,eAAe,EAAE,UAAU;EAC3B,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,WAAW,GACrB;;AAGD,AAAA,OAAO;AACP,AAAS,QAAD,CAAC,MAAM,CAAC;EACd,gBAAgB,EAAE,oCAAoC;EACtD,MAAM,EG9ES,GAAG,CAAC,KAAK,CAAC,kCAAkC;EH+E3D,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;EACf,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,SAAS;EAClB,WAAW,EAAE,MAAM,GAsBpB;EA/BD,AAWE,OAXK,AAWN,MAAQ,AAAA,IAAK,CAAA,AAAA,QAAQ;EAVtB,AAAS,QAAD,CAAC,MAAM,AAUd,MAAQ,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;IACpB,UAAU,EGhFG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;IHiF9D,UAAU,EAAE,gBAAgB,GAC7B;EAdH,AAgBE,OAhBK,AAgBN,QAAU;EAfX,AAAS,QAAD,CAAC,MAAM,AAed,QAAU,CAAC;IACR,gBAAgB,EAAE,WAAW;IAC7B,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,SAAS,GAC3B;EArBH,AAwBE,OAxBK,AAwBN,QAAU,EAxBX,AAyBE,OAzBK,AAyBN,KAAO;EAxBR,AAAS,QAAD,CAAC,MAAM,AAuBd,QAAU;EAvBX,AAAS,QAAD,CAAC,MAAM,AAwBd,KAAO,CAAC;IACL,gBAAgB,EAAE,kCAAkC;IACpD,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,kCAAkC;IACpD,KAAK,EE/DD,IAAI;IFgER,mBAAmB,EAAE,IAAI,GAC1B;;AAGH,AACE,KADG,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,GADJ,AAEE,KAFG,CAEH,AAAA,IAAE,CAAK,QAAQ,AAAb,EAAe;EACf,aAAa,EEnDD,GAAG,GFoDhB;;AAIH,AAAA,mBAAmB,CAAC;EAClB,OAAO,EAAE,CAAC,GACX;;AKhID,AAAA,cAAc,CAAC;EACb,KAAK,EAAE,gCAAgC;EACvC,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,CAAC;EACZ,UAAU,EAAE,KAAK;EACjB,OAAO,EAAE,IAA8C,CHoE3C,IAAI,CAAJ,IAAI,GGtDjB;EAnBD,AAOE,cAPY,AAOZ,aAAc,CAAC;IACb,OAAO,EAAE,KAAK,GACf;EATH,AAWE,cAXY,AAWZ,YAAa,CAAC;IACZ,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK,GACnB;EAdH,AAgBE,cAhBY,CAgBZ,CAAC,CAAC;IACA,KAAK,EAAE,gCAAgC,GACxC;;AAGH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI;EAGZ,cAAc,EAAE,IAA4D;EAC5E,KAAK,EH8DiB,KAAmE,GGnC1F;EAzBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,IAAI,CAAC;MAQD,KAAK,EH4DiB,KAAmE,GGpC5F;EArBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAX1B,AAAA,IAAI,CAAC;MAYD,KAAK,EHyDkB,KAAmE,GGrC7F;EAjBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAf1B,AAAA,IAAI,CAAC;MAgBD,KAAK,EHsDiB,KAAmE,GGtC5F;EAbC,MAAM,EAAE,SAAS,EAAE,MAAM;IAnB3B,AAAA,IAAI,CAAC;MAoBD,KAAK,EHmDkB,MAAmE,GGvC7F;EAhCD,AAuBE,IAvBE,CAuBF,OAAO,CAAC;IACN,aAAa,EH+BC,IAAoC;IG9BlD,QAAQ,EAAE,QAAQ,GACnB;EAED,AAAW,UAAD,CA5BZ,IAAI,CA4BW;IACX,UAAU,EAAE,MAAM,GACnB;;AAIH,AAAA,sBAAsB,CAAC;EAErB,MAAM,EAAE,KAAK,GACd;;;AAED,AAUI,aAVS,CAUT,cAAc;AAVlB,AAWmB,aAXN,CAWT,cAAc,CAAC,QAAQ,AAAA,aAAa;AAXxC,AAYI,aAZS,CAYT,OAAO,CAHa;EACpB,OAAO,EAAE,CAAC,GACX;;;AAXH,AAeI,aAfS,AAaX,GAAI,CAEF,cAAc;AAflB,AAgBmB,aAhBN,AAaX,GAAI,CAGF,cAAc,CAAC,QAAQ,AAAA,aAAa;AAhBxC,AAiBI,aAjBS,AAaX,GAAI,CAIF,OAAO,CAHe;EACpB,OAAO,EAAE,CAAC,GACX;;AAIL,AAAA,wBAAwB,CAAC;EACvB,OAAO,EAAE,CAAC,CHPiB,IAAI,GGQhC;;AAED,AACE,aADW,CACX,MAAM,CAAC;EACL,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,OAAO;EACf,IAAI,EAAE,gCAAgC;EACtC,gBAAgB,EAAE,IAAI;EACtB,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,IAAI;EACT,OAAO,EAAE,IAAI,GAUd;EApBH,AACE,aADW,CACX,MAAM,AAWJ,MAAO,EAZX,AACE,aADW,CACX,MAAM,AAYJ,MAAO,CAAC;IACN,gBAAgB,EAAE,iCAAiC,GACpD;EAfL,AACE,aADW,CACX,MAAM,AAgBJ,OAAQ,CAAC;IACP,gBAAgB,EAAE,kCAAkC,GACrD;;ACvGL,AAAA,kBAAkB,CAAC;EACjB,WAAW,EAAE,MAAM;EACnB,aAAa,EJoEC,GAAG;EInEjB,UAAU,EAAE,KAAK,CHSA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;EGR/D,KAAK,EAAE,oCAAoC;EAC3C,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,SAAS,EJwHgB,IAAI;EIvH7B,eAAe,EAAE,MAAM;EACvB,aAAa,EAAE,MAAM;EACrB,WAAW,EJsHgB,GAAG,GIhH/B;EAhBD,AAYE,kBAZgB,CAYhB,CAAC,CAAC;IACA,KAAK,EAAE,oCAAoC;IAC3C,eAAe,EAAE,SAAS,GAC3B;;ACHH,AAAA,UAAU,CAAC;EAGT,aAAa,EAAE,GAA4E,GAC5F;;AAED,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC,CAXQ,KAAgB;EAYjC,OAAO,EAAE,CAAC,GA4EX;EAzEC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,ALsKE,eKtKa,CAOX,UAAW,CAAA,IAAI,EL+JjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,IAAI;MACtB,kBAAkB,EAnHR,KAAI,GAoHf;IK3KH,AL+KE,eK/Ka,CAWX,UAAW,CAAA,EAAE,ELoKf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EKnKD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAjBjD,AL+KE,eK/Ka,CAkBX,UAAW,CAAA,IAAI,EL6JjB,aAAa;IK/Kf,AL+KE,eK/Ka,CAmBX,UAAW,CAAA,EAAE,EL4Jf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EK3JD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAzBjD,AL+KE,eK/Ka,CA0BX,UAAW,CAAA,EAAE,ELqJf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EKtJD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IA9BjD,AL+KE,eK/Ka,CA+BX,UAAW,CAAA,IAAI,ELgJjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EK/ID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IArClD,AL+KE,eK/Ka,CAsCX,UAAW,CAAA,EAAE,ELyIf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EK1ID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IA1ClD,AL+KE,eK/Ka,CA2CX,UAAW,CAAA,IAAI,ELoIjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EKnID,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAjDnD,AL+KE,eK/Ka,CAkDX,UAAW,CAAA,EAAE,EL6Hf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EK9HD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAtDnD,AL+KE,eK/Ka,CAuDX,UAAW,CAAA,IAAI,ELwHjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EKxHD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,MAAM;IA5DvC,AA6DI,eA7DW,CA6DX,gBAAgB,CAAC;MACf,OAAO,EAAE,IAAI,GACd;EA/DL,AAkEE,eAlEa,CAkEb,EAAE,CAAC;IACD,MAAM,EAAE,CAAC,CAAC,CAAC,CAlFY,GAAG,GAmF3B;EApEH,AAwEM,eAxES,AAsEb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAC9C,KAAK,CAAC;ILgDV,UAAU,EAAE,KAAK,CC9HA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAKhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;ID0HhE,UAAU,EAAE,gBAAgB,GK/CvB;EA1EP,AL8JE,eK9Ja,AAsEb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,ELuFlD,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,QAAQ;IACnB,gBAAgB,EAAE,KAAK,GACxB;;AKhFH,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,CAAC,CA5FO,IAAgB;EA6FjC,OAAO,EAAE,YAAY,GA+LtB;EAjMD,AAKE,eALa,CAKb,eAAe,CAAC;IACd,QAAQ,EAAE,QAAQ,GAanB;IAnBH,AAQM,eARS,CAKb,eAAe,GAGX,CAAC,CAAC;MACF,KAAK,EAAE,OAAO;MACd,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,IAAI,GAOd;MAlBL,AAcQ,eAdO,CAKb,eAAe,GAGX,CAAC,AAKD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;QLwBZ,UAAU,EAAE,KAAK,CC9HA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAKhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;QD0HhE,UAAU,EAAE,gBAAgB,GKvBrB;EAhBT,ALgDE,eKhDa,CLgDb,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sCAAsC;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,EC/IO,GAAG,CAAC,KAAK,CAAC,kCAAkC;IDgJzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAnCkB,CAAC,CAAC,GAAG,CA1G3B,qBAAO;IA8Ib,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAvCiB,IAAI;IAwC3B,gBAAgB,EAAI,OAA6B;IACjD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAI,OAA6B;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,kBAAkB;IACvC,KAAK,EA/CkB,IAAI,GAqD5B;IKxEH,ALgDE,eKhDa,CLgDb,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EKvEL,AAuBE,eAvBa,CAuBb,KAAK,CAAC;IACJ,aAAa,EA3HS,GAAG;IA4HzB,UAAU,EAAE,KAAK,CJjHF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EIiHxB,yBAAyB;IAC9D,MAAM,EAAE,OAAO;IACf,MAAM,ELlDE,IAAI;IKmDZ,QAAQ,EAAE,QAAQ;IAClB,KAAK,ELpDG,IAAI;IKuDZ,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,SAAS;IACzB,UAAU,EAAE,UAAU,CAjIE,KAAK,GAsI9B;IA5CH,AAuBE,eAvBa,CAuBb,KAAK,AAkBH,QAAS,CAAC;MACR,OAAO,EAAE,mBAAmB,GAC7B;EA3CL,AA8CE,eA9Ca,CA8Cb,WAAW,CAAC;IACV,gBAAgB,ELjGZ,IAAI;IKkGR,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EAjJD,KAAK;IAkJnB,aAAa,EArJS,GAAG;IAsJzB,UAAU,EAAE,KAAK,CJ3IF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;II4I7D,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,IAAI,GAKZ;IA/DH,AA8CE,eA9Ca,CA8Cb,WAAW,AAcT,OAAQ,CAAC;MACP,OAAO,EAAE,CAAC,GACX;EA9DL,AAkEE,eAlEa,CAkEb,cAAc,CAAC;IACb,gBAAgB,EAAE,uCAAuC;IACzD,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAzKS,GAAG;IA0KzB,UAAU,EAAE,kCAAkC;IAC9C,QAAQ,EAAE,QAAQ,GACnB;EAzEH,AA2EE,eA3Ea,CA2Eb,UAAU,CAAC;IACT,eAAe,EAAE,KAAK;IACtB,MAAM,EAAE,IAAI;IACZ,kBAAkB,EAAE,CAAC;IACrB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI,GACZ;EAjFH,AAmFE,eAnFa,CAmFb,aAAa;EAnFf,AAoFE,eApFa,CAoFb,eAAe,CAAC;IACd,eAAe,EAlLC,IAAI;IAmLpB,MAAM,EAlLY,IAAG;IAmLrB,MAAM,EArLkB,IAAI;IAsL5B,gBAAgB,EApLE,IAAG;IAqLrB,KAAK,EAvLmB,IAAI;IA0L5B,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,MAAM,GAKxB;IApGH,AAmFE,eAnFa,CAmFb,aAAa,CAcZ,AAAA,aAAG,AAAA,CAAc,QAAQ;IAjG5B,AAoFE,eApFa,CAoFb,eAAe,CAad,AAAA,aAAG,AAAA,CAAc,QAAQ,CAAC;MACvB,OAAO,EAAE,mBAAmB,GAC7B;EAnGL,AAsGE,eAtGa,CAsGb,eAAe,CAAC;IACd,gBAAgB,EAAE,iDAAwC;IAC1D,eAAe,EAAE,IAAI;IACrB,gBAAgB,EL1MV,OAAO;IK2Mb,aAAa,EAxMW,IAAI;IAyM5B,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EL9JA,IAAI;IK+JR,UAAU,EAAE,yBAAyB;IACrC,mBAAmB,EAxMK,KAAK;IAyM7B,mBAAmB,EAAE,wDAAwD,GAC9E;EAhHH,AAkHU,eAlHK,AAkHb,MAAO,CAAC,eAAe,CAAC;IAItB,eAAe,EAAE,IAAI;IACrB,aAAa,EAJa,IAA8B;IAKxD,MAAM,EAJc,IAAyB;IAK7C,MAAM,EANoB,IAA8B;IAOxD,gBAAgB,EANI,IAAyB;IAO7C,KAAK,EARqB,IAA8B,GASzD;EA5HH,AAgII,eAhIW,AA+Hb,gBAAiB,CACf,UAAU,CAAC;IACT,gBAAgB,ELnLd,IAAI,GKoLP;EAlIL,AAqIE,eArIa,CAqIb,MAAM,CAAC;IACL,KAAK,EAAE,kCAAkC;IACzC,IAAI,EAAE,WAAW;IACjB,MAAM,EA1Oe,IAAI;IA2OzB,WAAW,EA3OU,IAAI;IA4OzB,UAAU,EAAE,MAAM;IAClB,KAAK,ELlKG,IAAI;IKmKZ,QAAQ,EAAE,QAAQ,GAsBnB;IAlKH,AA8II,eA9IW,CAqIb,MAAM,CASJ,KAAK,CAAC;MACJ,IAAI,EAAE,iCAAiC;MACvC,kBAAkB,EAAE,CAAC;MACrB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,IAAI,GACV;IAnJL,AAqJI,eArJW,CAqIb,MAAM,CAgBJ,IAAI,CAAC;MACH,MAAM,EAxPa,IAAI;MAyPvB,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,MAAM;MAChB,aAAa,EAAE,QAAQ;MACvB,WAAW,EAAE,MAAM,GACpB;IA3JL,AA8JM,eA9JS,CAqIb,MAAM,AAwBJ,OAAQ,CACN,IAAI,CAAC;MACH,OAAO,EAAE,MAAM,GAChB;EAhKP,AAoKE,eApKa,CAoKb,YAAY,CAAC;IACX,gBAAgB,EAAE,+CAAsC,GACzD;EAtKH,AAyKI,eAzKW,AAwKb,YAAa,CACX,KAAK,CAAC;IACJ,UAAU,EAAE,KAAK,CJlQJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,GImQ5D;EA3KL,AA6KI,eA7KW,AAwKb,YAAa,CAKX,WAAW,CAAC;IACV,OAAO,EAAE,IAAI,GACd;EA/KL,AAmLI,eAnLW,AAkLb,QAAS,CACP,KAAK,CAAC;IACJ,UAAU,ELjRN,OAAO;IKkRX,UAAU,EAAE,IAAI,GAMjB;IA3LL,AAuLM,eAvLS,AAkLb,QAAS,CACP,KAAK,CAIH,CAAC,EAvLP,AAmLI,eAnLW,AAkLb,QAAS,CACP,KAAK,AAKH,QAAS,CAAC;MACR,OAAO,EAAE,IAAI,GACd;EA1LP,AA6LI,eA7LW,AAkLb,QAAS,CAWP,MAAM,CAAC;IACL,UAAU,EAAE,MAAM,GACnB;;AAIL,AACE,sBADoB,CACpB,MAAM,CAAC;EACL,UAAU,EJvRK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO;EK4Rb,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,MAAM;EACd,UAAU,EAAE,iBAAiB;EAC7B,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,IAAI;EACT,KAAK,EL1Ne,KAAmE,GKuOxF;EAXC,MAAM,EAAE,SAAS,EAAE,KAAK;IAb5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAaH,KAAK,EL5Ne,KAAmE,GKsO1F;EAPC,MAAM,EAAE,SAAS,EAAE,KAAK;IAjB5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAiBH,KAAK,EL/NgB,KAAmE,GKqO3F;EAHC,MAAM,EAAE,SAAS,EAAE,KAAK;IArB5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAqBH,KAAK,ELlOe,KAAmE,GKoO1F;;AAGH,AAIE,aAJW,CAIX,cAAc,CAAC;EACb,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,QAAQ,GACjB;;AAPH,AASE,aATW,CASX,qBAAqB,CAAC;EACpB,SAAS,EAAE,KAAiD;EAC5D,MAAM,EAAE,MAAM;EACd,OAAO,EAVM,IAAI,GAelB;EAjBH,AAcI,aAdS,CASX,qBAAqB,CAKnB,eAAe,CAAC;IACd,cAAc,EAAE,IAAI,GACrB;;AAhBL,AAmBE,aAnBW,CAmBX,2BAA2B,CAAC;EAC1B,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,MAAM;EACd,OAAO,EApBM,IAAI,GA8BlB;EAhCH,AAwBM,aAxBO,CAmBX,2BAA2B,GAKvB,GAAG,CAAC;IACJ,iBAAiB,EAAE,KAAK,GACzB;EA1BL,AA4BI,aA5BS,CAmBX,2BAA2B,CASzB,eAAe,CAAC;IACd,mBAAmB,EAAE,CAAC;IACtB,iBAAiB,EAAE,IAAI,GACxB;;AA/BL,AAkCE,aAlCW,CAkCX,eAAe,CAAC;EACd,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,QAAQ;EAChB,mBAAmB,EAnCN,IAAI,GAoClB;;AAtCH,AAwCE,aAxCW,CAwCX,mBAAmB,CAAC;EAClB,OAAO,EAAE,IAAI,GACd;;AA1CH,AA4CE,aA5CW,CA4CX,KAAK,CAAC;EACJ,SAAS,ELzQa,IAAI,GK0Q3B;;AA9CH,AAgDE,aAhDW,CAgDX,aAAa,CAAC;EACZ,KAAK,EAAE,IAAI,GAuIZ;EAxLH,AAmDI,aAnDS,CAgDX,aAAa,CAGX,MAAM,CAAC;IACL,QAAQ,EAAE,QAAQ,GAQnB;IA5DL,AAsDM,aAtDO,CAgDX,aAAa,CAGX,MAAM,CAGJ,iBAAiB,CAAC;MAChB,QAAQ,EAAE,QAAQ;MAClB,SAAS,EAAE,gBAAgB;MAC3B,GAAG,EAAE,GAAG;MACR,gBAAgB,EAAE,GAAG,GACtB;EA3DP,AA+DM,aA/DO,CAgDX,aAAa,CAcX,IAAI,CACF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;IACb,aAAa,EAAE,IAAI,GACpB;EAjEP,AAmEM,aAnEO,CAgDX,aAAa,CAcX,IAAI,CAKF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;IACb,YAAY,EAAE,IAAI,GAMnB;IA1EP,AAmEM,aAnEO,CAgDX,aAAa,CAcX,IAAI,CAKF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,CAGX,IAAM,CAAA,AAAA,kBAAkB,EAAE;MACxB,SAAS,EAAE,GAAG;MACd,UAAU,EAAE,KAAK,GAClB;EAzET,AA6EI,aA7ES,CAgDX,aAAa,CA6BX,0BAA0B,CAAC;IACzB,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,OAAO,GAKhB;IAtFL,AA6EI,aA7ES,CAgDX,aAAa,CA6BX,0BAA0B,AAMxB,MAAO,CAAC;MACN,eAAe,EAAE,SAAS,GAC3B;EArFP,AAwFI,aAxFS,CAgDX,aAAa,CAwCX,6BAA6B,CAAC;IAC5B,UAAU,EAAE,GAAG,GAkChB;IA3HL,AA2FM,aA3FO,CAgDX,aAAa,CAwCX,6BAA6B,CAG3B,kBAAkB,CAAC;MACjB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,QAAQ,EAAE,MAAM;MAChB,QAAQ,EAAE,QAAQ;MAClB,SAAS,EAAE,gBAAgB;MAC3B,GAAG,EAAE,GAAG;MACR,gBAAgB,EAAE,GAAG,GACtB;IAnGP,AAuGM,aAvGO,CAgDX,aAAa,CAwCX,6BAA6B,CAe3B,kBAAkB,CAAC;MASjB,KAAK,EAAE,KAAK;MACZ,MAAM,EAAE,IAAI;MACZ,uBAAuB,EAAE,IAAI;MAC7B,IAAI,ELnbF,OAAO;MKobT,gBAAgB,EAAE,mDAAmD;MACrE,SAAS,EAAE,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAK3D;;AAlBC,UAAU,CAAV,sBAAU;EACR,AAAA,IAAI;IAAG,SAAS,EAAE,kBAAkB;;AAGtC,UAAU,CAAV,0BAAU;EACR,AAAA,IAAI;IAAG,SAAS,EAAE,iBAAiB;MA7G7C,AAuGM,aAvGO,CAgDX,aAAa,CAwCX,6BAA6B,CAe3B,kBAAkB,AAgBhB,IAAM,CAAA,AAAA,GAAG,EAAE;QACT,cAAc,EAAE,0BAA0B,GAC3C;EAzHT,AA6HI,aA7HS,CAgDX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,gBAAgB,EAAE,sCAAsC;IACxD,MAAM,EJrbC,GAAG,CAAC,KAAK,CAAC,4BAA4B;IIsb7C,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI,GAYhB;IAjJP,AA6HI,aA7HS,CAgDX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,CASA,MAAO,CAAC;MACN,MAAM,EJ5bM,GAAG,CAAC,KAAK,CAAC,iCAAiC;MI6bvD,UAAU,EAAE,qCAAqC,GAClD;IA1IT,AA6HI,aA7HS,CAgDX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAcA,AAAA,QAAE,AAAA,EAAU;MACV,MAAM,EJlcD,GAAG,CAAC,KAAK,CAAC,4BAA4B;MImc3C,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,GAAG,GACb;EAhJT,AAqJM,aArJO,CAgDX,aAAa,CAoGX,QAAQ,CACN,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,MAAM,EJ1cK,GAAG,CAAC,KAAK,CDCrB,OAAO;IK0cN,UAAU,EJzdV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDeV,OAAO,ECfY,CAAC,CAAC,CAAC,CAAC,CAAC,CDsIX,GAAG,CAvHhB,qBAAO,GK2cP;EAzJT,AA6JI,aA7JS,CAgDX,aAAa,CA6GX,cAAc,CAAC;IACb,SAAS,EAAE,gBAAgB;IAC3B,UAAU,ELjdP,OAAO;IKkdV,aAAa,EAAE,GAAG;IAClB,KAAK,ELjbH,IAAI;IKkbN,kBAAkB,EAAE,GAAG;IACvB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,CAAC,GAiBX;IAvLL,AA6JI,aA7JS,CAgDX,aAAa,CA6GX,cAAc,AAYZ,QAAS,CAAC;MACR,UAAU,EL5dT,OAAO;MK6dR,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,GAAG;MACZ,MAAM,EAAE,IAAI;MACZ,kBAAkB,EAAE,IAAI;MACxB,QAAQ,EAAE,QAAQ;MAClB,WAAW,EAAE,MAAM;MACnB,GAAG,EAAE,IAAI;MACT,SAAS,EAAE,aAAa;MACxB,WAAW,EAAE,MAAM;MACnB,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,EAAE,GACZ;;AAtLP,AA0LE,aA1LW,CA0LX,QAAQ,CAAC;EACP,eAAe,EAAE,QAAQ,GAM1B;EAjMH,AA6LI,aA7LS,CA0LX,QAAQ,CAGN,MAAM,CAAC;IACL,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC,GACrB;;AAGH,MAAM,EAAE,SAAS,EAAE,KAAK;EAnM1B,AAoMI,aApMS,CAoMT,mBAAmB,CAAC;IAClB,cAAc,EAAE,MAAM,GAKvB;IA1ML,AAuMM,aAvMO,CAoMT,mBAAmB,CAGjB,eAAe,CAAC;MACd,mBAAmB,EAAE,CAAC,GACvB;;AAzMP,AA8ME,aA9MW,CA8MX,MAAM,CAAC;EACL,gBAAgB,EAAE,IAAI,GACvB;;AAhNH,AAmNE,aAnNW,EAmNX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ;AAnNhC,AAoNE,aApNW,EAoNX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,CAAC;EACxB,kBAAkB,EAAE,OAAO;EAC3B,QAAQ,EAAE,QAAQ,GACnB;;AAvNH,AAyNoC,aAzNvB,EAyNX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK;AAzNzC,AA0N8B,aA1NjB,EA0NX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,CAAC;EAChC,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,KAAK;EACd,QAAQ,EAAE,QAAQ,GACnB;;AA9NH,AAkOoC,aAlOvB,EAkOX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK,AAAA,QAAQ;AAlOjD,AAmO8B,aAnOjB,EAmOX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,AAAA,QAAQ,CAAC;EACxC,UAAU,EAAE,8BAA8B;EAC1C,MAAM,EJ1hBK,GAAG,CAAC,KAAK,CAAC,4BAA4B;EI2hBjD,aAAa,ELleD,GAAG;EKmef,OAAO,EAAE,EAAE;EACX,MAAM,EAAE,IAAI;EACZ,IAAI,EATa,IAAG;EAUpB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAXc,IAAG;EAYpB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC,GAMX;GAJC,AAAA,AAbgC,GAa/B,CAAI,KAAK,AAAT,EA/OL,aAAa,EAkOX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK,AAAA,QAAQ,GAa7C,AAAA,AAZ0B,GAYzB,CAAI,KAAK,AAAT;EA/OL,aAAa,EAmOX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,AAAA,QAAQ,CAYzB;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAjBU,IAAG,GAkBnB;;AAlPL,AAsPoC,aAtPvB,EAsPX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK,AAAA,OAAO;AAtPhD,AAuP8B,aAvPjB,EAuPX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,AAAA,OAAO,CAAC;EACvC,UAAU,EAAE,2CAA2C,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;EAC/E,OAAO,EAAE,EAAE;EACX,MAAM,EAAE,IAAI;EACZ,IAAI,EA3Ba,IAAG;EA4BpB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EA7Bc,IAAG;EA8BpB,KAAK,EAAE,IAAI;EACX,uBAAuB,EAAE,IAAI;EAC7B,IAAI,EAAE,gCAAgC;EACtC,OAAO,EAAE,CAAC,GAMX;GAJC,AAAA,AAbgC,GAa/B,CAAI,KAAK,AAAT,EAnQL,aAAa,EAsPX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK,AAAA,OAAO,GAa5C,AAAA,AAZ0B,GAYzB,CAAI,KAAK,AAAT;EAnQL,aAAa,EAuPX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,AAAA,OAAO,CAYxB;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EArCU,IAAG,GAsCnB;;AAtQL,AA2QI,aA3QS,EA0QX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,CAC/B,KAAK,CAAC;EACJ,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gCAAgC,GACvD;;AA7QL,AAiRoC,aAjRvB,EAiRX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,IAAI,KAAK,AAAA,OAAO,CAAC;EAC7C,OAAO,EAAE,CAAC,GACX;;AAnRH,AAqR8B,aArRjB,EAqRX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,AAAA,OAAO,CAAC;EACvC,OAAO,EAAE,CAAC,GACX;;AAvRH,AA0RoC,aA1RvB,EA0RX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,AAAA,MAAM,GAAG,KAAK,AAAA,QAAQ;AA1RjD,AA2R0C,aA3R7B,EA2RX,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,IAAK,CAAA,AAAA,QAAQ,CAAC,MAAM,GAAG,KAAK,AAAA,QAAQ,CAAC;EACpD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,gCAAgC,GACpD;;AAIH,UAAU,CAAV,UAAU;EACR,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,gBAAgB;EAG7B,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,aAAa;;AC3mB5B,AACE,cADY,CACZ,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,QAAQ,ENsEE,IAAI;EMrEd,qBAAqB,EAAE,uBAA6B;EACpD,MAAM,EAAE,CAAC,GAyBV;EAvBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP5B,ANiME,cMjMY,CACZ,aAAa,CNgMb,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EM3LC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAXnD,ANiME,cMjMY,CACZ,aAAa,CAWT,UAAW,CAAA,EAAE,ENqLjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EMrLC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IAjBpD,ANiME,cMjMY,CACZ,aAAa,CAiBT,UAAW,CAAA,EAAE,EN+KjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;EM/KC,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAvBrD,ANiME,cMjMY,CACZ,aAAa,CAwBT,UAAW,CAAA,EAAE,ENwKjB,aAAa;IMjMf,ANiME,cMjMY,CACZ,aAAa,CAyBT,UAAW,CAAA,EAAE,ENuKjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,gBAAgB,EAAE,CAAC;MACnB,kBAAkB,EAAE,IAAI,GACzB;;AMtMH,AAgCE,cAhCY,CAgCZ,oBAAoB,CAAC;EACnB,MAAM,ELtBS,GAAG,CAAC,KAAK,CAAC,oCAAoC;EKuB7D,aAAa,ENoCD,GAAG;EMnCf,OAAO,EAAE,IAAI;EACb,MAAM,ENqEI,KAAK;EMpEf,KAAK,EAAE,IAAI,GA6BZ;EAlEH,AAuCI,cAvCU,CAgCZ,oBAAoB,CAOlB,YAAY,CAAC;IACX,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK,GAoBjB;IA7DL,AA2CM,cA3CQ,CAgCZ,oBAAoB,CAOlB,YAAY,CAIV,iBAAiB,CAAC;MAChB,mBAAmB,EAAE,MAAM;MAC3B,iBAAiB,EAAE,SAAS;MAC5B,eAAe,EAAE,SAAS;MAC1B,uBAAuB,EAAE,IAAI;MAC7B,OAAO,EAAE,KAAK;MACd,IAAI,EAAE,kCAAkC;MACxC,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,MAAM;MACd,KAAK,EAAE,IAAI,GACZ;IArDP,AAuDM,cAvDQ,CAgCZ,oBAAoB,CAOlB,YAAY,CAgBV,oBAAoB,CAAC;MACnB,KAAK,EAAE,gCAAgC;MACvC,SAAS,EAAE,IAAI;MACf,aAAa,EAAE,CAAC;MAChB,UAAU,EAAE,MAAM,GACnB;EAGH,MAAM,EAAE,SAAS,EAAE,MAAM;IA/D7B,AAgCE,cAhCY,CAgCZ,oBAAoB,CAAC;MAgCjB,MAAM,EN+CQ,KAAK,GM7CtB;;AAGH,AAAA,6BAA6B,CAAC;EAC5B,KAAK,EAAE,2CAA2C;EAClD,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,UAAU,EN4CO,IAAI,GMpBtB;EA5BD,AAME,6BAN2B,CAM3B,CAAC,CAAC;IACA,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,IAAI,GAMlB;IAdH,AAME,6BAN2B,CAM3B,CAAC,AAIC,qBAAsB,CAAC;MACrB,WAAW,EAAE,MAAM;MACnB,SAAS,EAAE,IAAI,GAChB;EAGH,MAAM,EAAE,SAAS,EAAE,KAAK;IAhB1B,AAAA,6BAA6B,CAAC;MAiB1B,WAAW,EAAE,IAAI;MACjB,MAAM,EAAE,IAAI,GAUf;EA5BD,AAuBE,6BAvB2B,AAuB3B,OAAQ,CAAC;IACP,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK,GACf;;AAGH,MAAM,EAAE,SAAS,EAAE,MAAM;EACvB,AAGI,cAHU,CAEZ,aAAa,CACX,aAAa,CAAC;IACZ,qBAAqB,EAAE,uBAAmC,GAC3D;;ACzGP,AACE,gBADc,AACd,QAAS,CAAC;EACR,QAAQ,EAAE,MAAM,GACjB;;AAHH,AAMI,gBANY,AAKd,IAAM,CAAA,AAAA,QAAQ,EACZ,gBAAgB,CAAC;EACf,OAAO,EAAE,IAAI,GACd;;AAIL,AAAA,gBAAgB,CAAC;EACf,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,YAAY;EACxB,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,IAAI,GAkDjB;EA3DD,AAWE,gBAXc,AAWd,KAAM,CAAC;IACL,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,CAAC,GA6CX;IA1DH,AAeI,gBAfY,AAWd,KAAM,CAIJ,iBAAiB,CAAC;MAChB,UAAU,EAAE,4BAA4B;MACxC,gBAAgB,EAAE,IAAI;MACtB,SAAS,EAAE,gBAAgB,CAAC,QAAQ;MACpC,OAAO,EAAE,CAAC,GAQX;MANC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;QArBzC,AAeI,gBAfY,AAWd,KAAM,CAIJ,iBAAiB,CAAC;UAOd,KAAK,EAAE,IAAI;UACX,MAAM,EAAE,IAAI;UACZ,GAAG,EAAE,KAAK;UACV,aAAa,EAAE,KAAK,GAEvB;IA3BL,AA6BI,gBA7BY,AAWd,KAAM,CAkBJ,sBAAsB,CAAC;MACrB,UAAU,EAAE,YAAY;MACxB,OAAO,EAAE,CAAC,GACX;IAhCL,AAkCI,gBAlCY,AAWd,KAAM,CAuBJ,eAAe;IAlCnB,AAmCI,gBAnCY,AAWd,KAAM,CAwBJ,iBAAiB;IAnCrB,AAoCI,gBApCY,AAWd,KAAM,CAyBJ,cAAc,CAAC;MACb,UAAU,EAAE,4BAA4B;MACxC,SAAS,EAAE,aAAa;MACxB,OAAO,EAAE,CAAC,GACX;IAxCL,AA0CI,gBA1CY,AAWd,KAAM,CA+BJ,eAAe,CAAC;MACd,gBAAgB,EAAE,IAAI,GACvB;IA5CL,AA8CI,gBA9CY,AAWd,KAAM,CAmCJ,iBAAiB,CAAC;MAChB,gBAAgB,EAAE,IAAI,GACvB;IAhDL,AAkDI,gBAlDY,AAWd,KAAM,CAuCJ,cAAc,CAAC;MACb,gBAAgB,EAAE,IAAI,GACvB;IApDL,AAsDI,gBAtDY,AAWd,KAAM,CA2CJ,qBAAqB,CAAC;MACpB,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,CAAC,GACX;;AAIL,AAAA,WAAW;AACX,AAAA,IAAI,AAAA,UAAU,CAAC;EACb,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,KAAK;EACd,gBAAgB,EAAE,0CAAiC,EPhB5B,4FAAyH;EOiBhJ,qBAAqB,EAAE,MAAM;EAC7B,qBAAqB,EAAE,WAAW;EAClC,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EAAE,KAAK;EACtB,QAAQ,EAAE,KAAK,GAChB;;AAED,AAAA,iBAAiB,CAAC;EAChB,SAAS,EAAE,gBAAgB,CAAC,UAAU;EACtC,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,CAAC;EACV,gBAAgB,EP1CV,IAAI;EO2CV,KAAK,EAAE,UAAU;EACjB,KAAK,EPhFG,OAAO;EOiFf,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI,GAqHd;EA/HD,AAYE,iBAZe,CAYf,IAAI,CAAC;IACH,QAAQ,EAAE,QAAQ,GACnB;EAdH,AAgBE,iBAhBe,CAgBf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EP3CmB,OAAO;IO4C/B,MAAM,EAAE,OAAO,GAahB;IAlCH,AAuBI,iBAvBa,CAgBf,YAAY,CAOV,CAAC,CAAC;MACA,KAAK,EPpGD,OAAO;MOqGX,MAAM,EAAE,OAAO;MACf,eAAe,EAAE,SAAS,GAC3B;IA3BL,AA6BI,iBA7Ba,CAgBf,YAAY,CAaV,CAAC,AAAA,MAAM;IA7BX,AA8BI,iBA9Ba,CAgBf,YAAY,CAcV,CAAC,AAAA,OAAO;IA9BZ,AA+BI,iBA/Ba,CAgBf,YAAY,CAeV,CAAC,AAAA,MAAM,CAAC;MACN,KAAK,EPpHD,OAAO,GOqHZ;EAjCL,AAoCE,iBApCe,CAoCf,YAAY,CAAC;IACX,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,oBAAoB,EAAE,IAAI;IAC1B,MAAM,EAAE,GAAG,CAAC,KAAK,CPvHX,OAAO;IOwHb,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,oCAAoC,GAkBjD;IAhEH,AAoCE,iBApCe,CAoCf,YAAY,AAYV,MAAO,CAAC;MACN,YAAY,EPzHR,OAAO,GO0HZ;IAlDL,AAoCE,iBApCe,CAoCf,YAAY,AAgBV,MAAO,CAAC;MACN,YAAY,EPzIR,OAAO;MO0IX,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CP1IjB,uBAAO,GO2IZ;IAvDL,AAoCE,iBApCe,CAoCf,YAAY,AAqBV,QAAS,CAAC;MACR,YAAY,EPhIT,OAAO,GOiIX;IA3DL,AAoCE,iBApCe,CAoCf,YAAY,AAyBV,QAAS,AAAA,MAAM,CAAC;MACd,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CPpIlB,qBAAO,GOqIX;EA/DL,AAkEE,iBAlEe,CAkEf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,SAAS,GAClB;EArEH,AAuEe,iBAvEE,CAuEf,YAAY,CAAC,WAAW,CAAC;IACvB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,KAAK,GACf;EA3EH,AA6EE,iBA7Ee,CA6Ef,MAAM,CAAC;IACL,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,WAAW,GACpB;EAjFH,AAmFE,iBAnFe,CAmFf,gBAAgB,CAAC;IACf,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,GAAG;IAClB,KAAK,EP9HD,IAAI;IO+HR,gBAAgB,EP9KV,OAAO;IO+Kb,UAAU,EAAE,sBAAsB,GAOnC;IAnGH,AAmFE,iBAnFe,CAmFf,gBAAgB,AAWd,IAAM,EAAA,AAAA,AAAA,QAAC,AAAA,EAAU,OAAO,EA9F5B,AAmFE,iBAnFe,CAmFf,gBAAgB,AAYd,IAAM,EAAA,AAAA,AAAA,QAAC,AAAA,EAAU,MAAM,CAAC;MACtB,UAAU,EPlLN,OAAO;MOmLX,YAAY,EPlLR,OAAO,GOmLZ;EAlGL,AAqGE,iBArGe,CAqGf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,gBAAgB,EPzLV,OAAO;IO0Lb,KAAK,EP9LC,OAAO;IO+Lb,MAAM,EAAE,GAAG,CAAC,KAAK,CP/LX,OAAO;IOgMb,aAAa,EAAE,GAAG;IAClB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,uDAAuD,GAepE;IA9HH,AAqGE,iBArGe,CAqGf,YAAY,CAYV,AAAA,QAAE,AAAA,EAAU;MACV,gBAAgB,EPjMZ,OAAO;MOkMX,YAAY,EPhMR,OAAO;MOiMX,KAAK,EPhMD,OAAO;MOiMX,MAAM,EAAE,OAAO;MACf,OAAO,EAAE,GAAG,GACb;IAvHL,AAqGE,iBArGe,CAqGf,YAAY,AAoBV,IAAM,EAAA,AAAA,AAAA,QAAC,AAAA,EAAU,MAAM,CAAC;MACtB,gBAAgB,EP9MZ,OAAO;MO+MX,YAAY,EP9MR,OAAO;MO+MX,KAAK,EPhKH,IAAI,GOiKP;;AAIL,AAAA,sBAAsB,CAAC;EACrB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,YAAY;EACnB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,KAAK,GAYb;EAVC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IANrC,AAAA,sBAAsB,CAAC;MAOnB,KAAK,EAAE,KAAK,GASf;EANC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IAVrC,AAAA,sBAAsB,CAAC;MAWnB,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,KAAK,EAAE,KAAK;MACZ,UAAU,EAAE,MAAM,GAErB;;AAED,AAAA,iBAAiB,CAAC;EAChB,WAAW,EAAE,GAAG;EAChB,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,8CAAqC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;EACzE,cAAc,EAAE,KAAK,GACtB;;AAED,AAAA,CAAC,AAAA,cAAc,CAAC;EACd,KAAK,EPhMC,IAAI;EOiMV,OAAO,EAAE,KAAK;EACd,eAAe,EAAE,SAAS,GAO3B;EAVD,AAKE,CALD,AAAA,cAAc,AAKb,MAAO,EALT,AAME,CAND,AAAA,cAAc,AAMb,OAAQ,EANV,AAOE,CAPD,AAAA,cAAc,AAOb,MAAO,CAAC;IACN,KAAK,EPvMD,IAAI,GOwMT;;AAGH,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,+CAA+C,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS;EAC9E,eAAe,EAAE,SAAS;EAC1B,MAAM,EAAE,WAAW;EACnB,WAAW,EAAE,KAAK,GAUnB;EARC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IANrC,AAAA,eAAe,CAAC;MAOZ,UAAU,EAAE,+CAA+C,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS;MAChF,eAAe,EAAE,SAAS,GAM7B;EAdD,AAWE,eAXa,AAWb,IAAM,CAAA,AAAA,GAAG,EAAE;IACT,mBAAmB,EAAE,SAAS,GAC/B;;AAGH,AAAA,qBAAqB,CAAC;EACpB,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EPjOC,IAAI;EOkOV,MAAM,EAAE,KAAK;EACb,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,EAAE;EACX,UAAU,EAAE,YAAY;EACxB,OAAO,EAAE,CAAC,GAUX;EARC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IAdrC,AAAA,qBAAqB,CAAC;MAelB,KAAK,EAAE,KAAK,GAOf;EAJC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IAlBrC,AAAA,qBAAqB,CAAC;MAmBlB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI,GAEf;;AAED,AAAA,eAAe;AACf,AAAA,iBAAiB;AACjB,AAAA,cAAc,CAAC;EACb,OAAO,EAAE,CAAC;EACV,SAAS,EAAE,gBAAgB,GAC5B;;AAED,AAAA,MAAM,CAAC;EACL,OAAO,EAAE,IAAI,GACd;;AAED,AAAA,MAAM,AAAA,OAAO,CAAC;EACZ,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,QAAQ;EACjB,SAAS,EAAE,eAAe;EAC1B,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,KAAK,EPpQC,IAAI;EOqQV,gBAAgB,EPvST,OAAO;EOwSd,QAAQ,EAAE,QAAQ;EAClB,kBAAkB,EAAE,IAAI;EACxB,GAAG,EAAE,KAAK;EACV,aAAa,EAAE,GAAG,GAenB;EA1BD,AAaE,MAbI,AAAA,OAAO,AAaX,QAAS,CAAC;IACR,kBAAkB,EAAE,IAAI;IACxB,UAAU,EP/SL,OAAO;IOgTZ,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE,GACZ;;AAGH,UAAU,CAAV,SAAU;EACR,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,iBAAiB;EAG9B,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,aAAa;;ACpV5B,AACE,OADK,CACL,EAAE,CAAC;EACD,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC,GAKX;EAJC,MAAM,EAAE,SAAS,EAAE,KAAK;IAJ5B,AACE,OADK,CACL,EAAE,CAAC;MAIC,OAAO,EAAE,MAAM;MACf,oBAAoB,EAAE,IAAI,GAE7B;;AARH,AAUK,OAVE,CAUL,EAAE,CAAC,EAAE,CAAC;EACJ,OAAO,EAAE,YAAY,GAUtB;EArBH,AAUK,OAVE,CAUL,EAAE,CAAC,EAAE,AAGH,OAAQ,CAAC;IACP,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,GAAG,GACb;EAhBL,AAUK,OAVE,CAUL,EAAE,CAAC,EAAE,AAQH,WAAY,AAAA,OAAO,CAAC;IAClB,OAAO,EAAE,IAAI,GACd;;ACpBL,AAAA,eAAe,CAAC;EAQd,OAAO,EAAE,WAAW,GAqIrB;EAnIC,MAAM,EAAE,UAAU,EAAE,KAAK;IAV3B,AAWI,eAXW,CAWT;MACA,OAAO,EAAE,QAAQ,GAClB;EAGH,AAAa,YAAD,CAhBd,eAAe,CAgBE;IACb,OAAO,EAAE,QAAQ,GAClB;EAlBH,AAoBE,eApBa,CAoBb,kBAAkB,CAAC;IAIjB,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,MAAM;IACvB,aAAa,EAAE,IAAI,GAqCpB;IAhEH,AA6BI,eA7BW,CAoBb,kBAAkB,CAShB,KAAK,CAAC;MACJ,UAAU,EAAE,4CAA4C,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;MAChF,eAAe,EAVL,IAAI;MAWd,OAAO,EAAE,YAAY;MACrB,MAAM,EAZI,IAAI;MAad,KAAK,EAbK,IAAI,GAcf;IAnCL,AAqCI,eArCW,CAoBb,kBAAkB,CAiBhB,SAAS,CAAC;MACR,UAAU,EAAE,kDAAyC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;MAC7E,eAAe,EAjBD,KAAK;MAkBnB,uBAAuB,EAAE,IAAI;MAC7B,OAAO,EAAE,YAAY;MACrB,IAAI,EAAE,mCAAmC;MACzC,MAAM,EAtBI,IAAI;MAuBd,mBAAmB,EAAE,IAAI;MACzB,KAAK,EAvBS,KAAK,GAwBpB;IAED,MAAM,EAAE,SAAS,EAAE,KAAK;MAhD5B,AAoDM,eApDS,CAoBb,kBAAkB,CAgCd,KAAK,CAAC;QACJ,eAAe,EAJC,IAAI;QAKpB,MAAM,EALU,IAAI;QAMpB,KAAK,EANW,IAAI,GAOrB;MAxDP,AA0DM,eA1DS,CAoBb,kBAAkB,CAsCd,SAAS,CAAC;QACR,eAAe,EATK,KAAK;QAUzB,MAAM,EAXU,IAAI;QAYpB,KAAK,EAXe,KAAK,GAY1B;EA9DP,AAkEE,eAlEa,CAkEb,qBAAqB,CAAC;IACpB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,IAAI;IACb,MAAM,EApEQ,IAAI;IAqElB,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,QAAQ;IAClB,KAAK,ETWkB,KAAiC,GSEzD;IAXC,MAAM,EAAE,SAAS,EAAE,KAAK;MA1E5B,AAkEE,eAlEa,CAkEb,qBAAqB,CAAC;QASlB,KAAK,ETSa,KAAiC,GSCtD;IAPC,MAAM,EAAE,SAAS,EAAE,KAAK;MA9E5B,AAkEE,eAlEa,CAkEb,qBAAqB,CAAC;QAalB,KAAK,ETMc,KAAiC,GSAvD;IAHC,MAAM,EAAE,SAAS,EAAE,KAAK;MAlF5B,AAkEE,eAlEa,CAkEb,qBAAqB,CAAC;QAiBlB,KAAK,ETGa,KAAiC,GSDtD;EArFH,AAuFE,eAvFa,CAuFb,KAAK,CAAC;IACJ,UAAU,EAAE,sCAAsC,CAAC,yBAAyB,CArFxD,IAAI,CAqF0E,MAAM,CAAC,SAAS;IAClH,eAAe,EAvFE,IAAI;IAwFrB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,iCAAiC;IACnD,UAAU,ERzEK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO,ES6EkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CTlDpC,mBAAI;ISmDR,SAAS,EAAE,IAAI;IACf,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,CAAC;IACV,kBAAkB,EA3FE,IAAI;IA4FxB,oBAAoB,EA7FF,IAA+C;IA8FjE,KAAK,EAAE,IAAI,GAKZ;IAvGH,AAuFE,eAvFa,CAuFb,KAAK,AAaH,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,qBAAqB,EAAE,KAAK,CAlGV,IAAI,GAmGvB;EAtGL,AAyGU,eAzGK,AAyGb,MAAO,CAAC,KAAK,CAAC;IACZ,UAAU,ERxFK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO,ES4FkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CTjEpC,mBAAI,GSkET;EA3GH,AA6G+B,eA7GhB,CA6Gb,qBAAqB,AAAA,OAAO,CAAC,KAAK;EA7GpC,AA8GE,eA9Ga,CA8Gb,KAAK,AAAA,MAAM,CAAC;IACV,MAAM,ERjGY,GAAG,CAAC,KAAK,CAAC,iCAAiC;IQkG7D,UAAU,EAAE,qCAAqC,GAClD;EAjHH,AAmHE,eAnHa,CAmHb,cAAc,CAAC;IACb,UAAU,EA9GI,wCAAwC,CA8G3B,SAAS,CAAC,MAAM,CAAC,MAAM;IAClD,eAAe,EAAE,SAAS;IAC1B,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC,CTjDJ,GAAG,CAAH,GAAG,CSiDgC,CAAC;IAChD,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,CAAC;IACnB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAxHe,IAAI,GAuIzB;IA5IH,AAmHE,eAnHa,CAmHb,cAAc,AAYZ,MAAO,EA/HX,AAmHE,eAnHa,CAmHb,cAAc,AAaZ,MAAO,CAAC;MACN,gBAAgB,ETnHZ,qBAAO;MSoHX,MAAM,EAAE,OAAO,GAChB;IAnIL,AAmHE,eAnHa,CAmHb,cAAc,AAkBZ,OAAQ,CAAC;MACP,gBAAgB,ETxHZ,qBAAO,GSyHZ;IAvIL,AAmHE,eAnHa,CAmHb,cAAc,AAsBZ,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;;AAIL,MAAM,EAAE,UAAU,EAAE,KAAK;EACvB,AACE,aADW,CACX,IAAI,CAAC;IACH,WAAW,EAAE,KAAK,GACnB;EAHH,AAKE,aALW,CAKX,eAAe,CAAC;IAMd,gBAAgB,EAAE,4CAA4C;IAC9D,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,oCAAoC;IAC7D,MAAM,EAPqB,IAAI;IAQ/B,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,CAAC,GAcX;IAjCH,AAqBI,aArBS,CAKX,eAAe,CAgBb,qBAAqB,CAAC;MACpB,MAAM,EAfQ,IAAI,GAgBnB;IAvBL,AAyBI,aAzBS,CAKX,eAAe,CAoBb,KAAK,CAAC;MACJ,qBAAqB,EAjBD,IAAI;MAkBxB,eAAe,EAnBE,IAAI,GAwBtB;MAhCL,AAyBI,aAzBS,CAKX,eAAe,CAoBb,KAAK,AAIH,IAAM,CAAA,AAAA,GAAG,EAAE;QACT,qBAAqB,EAAE,KAAK,CArBV,IAAI,GAsBvB;;AAQP,AAAA,6BAA6B,CAAC;EAC5B,gBAAgB,EAAE,mCAAmC;EACrD,MAAM,EAAE,CAAC;EACT,UAAU,ETjEQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAhFxB,kBAAI,EAgFgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAhF7C,kBAAI;ESkJR,SAAS,EAAE,eAAgC,GA0E5C;EA9ED,AAME,6BAN2B,CAM3B,oBAAoB,CAAC;IACnB,gBAAgB,EAAE,0CAA0C;IAC5D,KAAK,EAAE,kCAAkC,GAC1C;EATH,AAWE,6BAX2B,CAW3B,oBAAoB,EAXtB,AAYE,6BAZ2B,CAY3B,4BAA4B,CAAC;IAC3B,YAAY,EAAE,oCAAoC,GACnD;EAdH,AAgBE,6BAhB2B,CAgB3B,6BAA6B,CAAC;IAC5B,MAAM,EAAE,CAAC,GACV;EAlBH,AAoBE,6BApB2B,CAoB3B,0BAA0B,CAAC;IACzB,gBAAgB,EAAE,0CAA0C;IAC5D,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,oCAAoC,GAC3D;EAvBH,AAyBE,6BAzB2B,CAyB3B,wCAAwC,CAAC;IACvC,KAAK,EAAE,gCAAgC,GACxC;EA3BH,AA6BE,6BA7B2B,CA6B3B,kCAAkC,CAAC;IACjC,gBAAgB,EAAE,mCAAmC,GACtD;EA/BH,AAiCE,6BAjC2B,CAiC3B,2BAA2B,AACzB,SAAU,CAAC;IACT,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,gCAAgC,GASxC;IA7CL,AAiCE,6BAjC2B,CAiC3B,2BAA2B,AACzB,SAAU,AAIR,OAAQ,CAAC;MACP,UAAU,EAAE,kCAAkC,GAC/C;IAxCP,AA0CM,6BA1CuB,CAiC3B,2BAA2B,AACzB,SAAU,CAQR,YAAY,CAAC;MACX,IAAI,EAAE,kCAAkC,GACzC;EA5CP,AAiDI,6BAjDyB,CAgD3B,0BAA0B,CACxB,kCAAkC,CAAC;IACjC,gBAAgB,EAAE,0CAA0C,GAC7D;EAnDL,AAsDE,6BAtD2B,CAsD3B,wBAAwB,CAAC;IAIvB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,qIAA+L,CAAC,CAAC;IAC/M,iBAAiB,EAAE,SAAS;IAC5B,QAAQ,EAAE,QAAQ,GASnB;IAtEH,AAsDE,6BAtD2B,CAsD3B,wBAAwB,AAStB,SAAU,CAAC;MACT,UAAU,EAAE,iCAAiC,GAC9C;IAjEL,AAsDE,6BAtD2B,CAsD3B,wBAAwB,AAatB,OAAQ,CAAC;MACP,UAAU,EAAE,kCAAkC,GAC/C;EArEL,AAwEE,6BAxE2B,CAwE3B,4BAA4B,AAC1B,MAAO,CAAC;IACN,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,gCAAgC,GACxC;;AAIL,AAA+B,uBAAR,GAAG,EAAE,GAAG,GAAG,EAClC,AAAmC,2BAAR,GAAG,EAAE,GAAG,YAAY,CAAC;EAC9C,mBAAmB,EAAE,GAAG;EACxB,iBAAiB,EAAE,IAAI,GACxB;;AC3QH,AAAA,aAAa,CAAC;EACZ,UAAU,EAAE,0CAA0C;EACtD,aAAa,EVyHc,GAAG;EUxH9B,UAAU,EVsHU,CAAC,CAAC,GAAG,CAAC,IAAI,CAhFxB,kBAAI,EAgFgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAhF7C,kBAAI;EUrCV,OAAO,EAAE,KAAK;EACd,SAAS,EVqHc,IAAI;EUpH3B,mBAAmB,EAAE,GAAG;EACxB,kBAAkB,EAAE,IAAI;EACxB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,MAA+B;EACpC,OAAO,EAAE,CAAC,GAyCX;EAnDD,AAYI,aAZS,GAYT,EAAE,CAAC;IACH,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,EV6GkB,GAAG,CU7GS,CAAC,GAmCvC;IAlDH,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,CAAC;MACH,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,IAAI,GA8BZ;MAjDL,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,AAIF,UAAW,CAAC;QACV,aAAa,ETXF,GAAG,CAAC,KAAK,CAAC,oCAAoC;QSYzD,MAAM,EVqGe,GAAG,CUrGY,CAAC,GACtC;MAxBP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,CAAC;QACF,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,EV4Fa,GAAG,CAAC,IAAI;QU3F5B,WAAW,EAAE,MAAM,GAcpB;QAhDP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAUD,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;UACzB,UAAU,EAAE,iCAAiC,GAC9C;QAtCT,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAcD,OAAQ,CAAC;UACP,UAAU,EAAE,kCAAkC,GAC/C;QA1CT,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAkBD,SAAU,CAAC;UACT,OAAO,EAAE,GAAG;UACZ,cAAc,EAAE,IAAI,GACrB;;AC/CT,AACE,oBADkB,CAClB,MAAM,CAAC;EACL,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CXuCnB,kBAAI;EWtCR,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,KAAK,GACb;;AATH,AAWE,oBAXkB,CAWlB,OAAO,CAAC;EACN,MAAM,EAAE,CAAC,GACV;;AAbH,AAeE,oBAfkB,CAelB,cAAc,CAAC;EACb,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,CAAC,GAMlB;EAxBH,AAoBI,oBApBgB,CAelB,cAAc,CAKZ,CAAC,CAAC;IACA,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,IAAI,GACpB;;AAvBL,AA0BE,oBA1BkB,CA0BlB,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,MAAM;EACjB,OAAO,EAAE,MAAM,GAchB;EA5CH,AAgCI,oBAhCgB,CA0BlB,QAAQ,CAMN,MAAM,CAAC;IACL,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,GAAG,GAMX;IA3CL,AAgCI,oBAhCgB,CA0BlB,QAAQ,CAMN,MAAM,AAOJ,KAAM,CAAC;MACL,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,CAAC,GACvB;;AA1CP,AA8CE,oBA9CkB,CA8ClB,KAAK,CAAC;EACJ,iBAAiB,EAAE,IAAI,GACxB;;AAGH,AAAA,cAAc,CAAC;EACb,UAAU,EAAE,2BAA2B;EACvC,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK,GACf;;AAED,AAAA,MAAM,CAAC;EACL,UAAU,EAAE,yBAAyB;EACrC,MAAM,EVpDW,GAAG,CAAC,KAAK,CAAC,oCAAoC;EUqD/D,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,KAAK,GACf;;ACnED,AAAA,WAAW,CAAC;EAEV,UAAU,EAAE,mCAAmC;EAC/C,aAAa,EZmEC,GAAG;EYlEjB,OAAO,EAAE,YAAY;EACrB,MAAM,EZoGM,KAAK;EYnGjB,iBAAiB,EZmEL,IAAI;EYlEhB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAsKZ;EA9KD,AZoJE,WYpJS,CZoJT,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sCAAsC;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,EC/IO,GAAG,CAAC,KAAK,CAAC,kCAAkC;IDgJzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAnCkB,CAAC,CAAC,GAAG,CA1G3B,qBAAO;IA8Ib,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAvCiB,IAAI;IAwC3B,gBAAgB,EAAI,OAA6B;IACjD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAI,OAA6B;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,kBAAkB;IACvC,KAAK,EA/CkB,IAAI,GAqD5B;IY5KH,AZoJE,WYpJS,CZoJT,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EY3KL,AAUE,WAVS,AAUT,YAAa,CAAC;IACZ,UAAU,EAAE,WAAW,GAUxB;IArBH,AAaI,WAbO,AAUT,YAAa,CAGX,KAAK,CAAC;MACJ,UAAU,EAAE,KAAK,CXFJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,GWG5D;IAfL,AAiBI,WAjBO,AAUT,YAAa,CAOX,yBAAyB;IAjB7B,AAkBI,WAlBO,AAUT,YAAa,CAQX,aAAa,CAAC;MACZ,OAAO,EAAE,IAAI,GACd;EApBL,AAuBE,WAvBS,CAuBT,KAAK,CAAC;IACJ,aAAa,EZ8CD,GAAG;IY7Cf,UAAU,EAAE,yBAAyB;IACrC,MAAM,EAAE,IAAI,GACb;EA3BH,AA6BI,WA7BO,GA6BP,CAAC,CAAC;IACF,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,IAAI,GAWZ;IA9CH,AAsCM,WAtCK,GA6BP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;MZyGV,UAAU,EC9HK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;MD+HhE,UAAU,EAAE,gBAAgB,GYxGvB;IAxCP,AA0CM,WA1CK,GA6BP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAKxB,WAAW,CAAC;MACV,KAAK,EAAE,gCAAgC,GACxC;EA5CP,AAgDE,WAhDS,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAAE;IZ+FtD,UAAU,EC9HK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;ID+HhE,UAAU,EAAE,gBAAgB;IY7F1B,OAAO,EAAE,IAAI,GAad;IAhEH,AZgLE,WYhLS,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EZgIpD,oBAAoB,CAAC;MACnB,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ;MACnB,gBAAgB,EAAE,KAAK,GACxB;IYpLH,AAqDI,WArDO,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAKlD,WAAW,CAAC;MACV,KAAK,EAAE,gCAAgC,GACxC;IAvDL,AAyDiB,WAzDN,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EASlD,UAAU,GAAG,eAAe,CAAC;MAC3B,OAAO,EAAE,IAAI,GACd;IA3DL,AA6DI,WA7DO,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAalD,eAAe,AAAA,UAAU,CAAC;MACxB,OAAO,EAAE,KAAK,GACf;EA/DL,AAkEE,WAlES,CAkET,yBAAyB,CAAC;IACxB,gBAAgB,EZ3DV,OAAO;IY4Db,aAAa,EZED,GAAG,CAAH,GAAG,CYF8B,CAAC,CAAC,CAAC;IAChD,MAAM,EZqCkB,KAAK;IYpC7B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,QAAQ,GA2BnB;KAzBC,AAAA,AAPF,qBAOG,AAAA,EAzEL,WAAW,CAkET,yBAAyB,CAOG;MACxB,gBAAgB,EZ/DZ,OAAO,GYgEZ;IA3EL,AAkEE,WAlES,CAkET,yBAAyB,AAWvB,OAAQ,CAAC;MACP,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,iCAAiC;MAC1D,MAAM,EAAE,CAAC;MACT,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,KAAK,EAAE,IAAI,GACZ;IAnFL,AAqFI,WArFO,CAkET,yBAAyB,CAmBvB,mBAAmB,CAAC;MAClB,mBAAmB,EAAE,MAAM;MAC3B,iBAAiB,EAAE,SAAS;MAC5B,eAAe,EAAE,KAAK;MACtB,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,CAAC;MACV,UAAU,EAAE,OAAO,CAAC,EAAE,CZvBZ,8BAA8B;MYwBxC,KAAK,EAAE,IAAI,GAKZ;MAjGL,AAqFI,WArFO,CAkET,yBAAyB,CAmBvB,mBAAmB,AASjB,OAAQ,CAAC;QACP,OAAO,EAAE,CAAC,GACX;EAhGP,AAoGE,WApGS,CAoGT,aAAa,CAAC;IACZ,OAAO,EAAE,cAAc,GACxB;EAtGH,AAwGE,WAxGS,CAwGT,UAAU,CAAC;IACT,UAAU,EAAE,IAA+C;IAC3D,QAAQ,EAAE,MAAM,GAejB;IAzHH,AAwGE,WAxGS,CAwGT,UAAU,AAIR,aAAc,EA5GlB,AAwGE,WAxGS,CAwGT,UAAU,AAKR,WAAY,CAAC;MACX,UAAU,EAAE,IAA+C,GAC5D;IA/GL,AAwGE,WAxGS,CAwGT,UAAU,AASR,aAAc,AAAA,WAAW,CAAC;MACxB,UAAU,EAAE,KAA+C,GAC5D;IAnHL,AAqH2B,WArHhB,CAwGT,UAAU,AAaR,IAAM,CAAA,AAAA,eAAe,EAAE,WAAW,CAAC;MACjC,UAAU,EAAE,IAA0B;MACtC,QAAQ,EAAE,MAAM,GACjB;EAxHL,AA2HE,WA3HS,CA2HT,eAAe,CAAC;IACd,KAAK,EAAE,kCAAkC;IACzC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,MAAM,GACpB;EAnIH,AAqIE,WArIS,CAqIT,eAAe,AAAA,UAAU,CAAC;IAAE,OAAO,EAAE,IAAI,GAAK;EArIhD,AAuIE,WAvIS,CAuIT,WAAW,CAAC;IACV,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EZ9BS,IAAI;IY+BxB,MAAM,EAAE,CAAC,CAAC,CAAC,CZhCK,GAAG;IYiCnB,SAAS,EAAE,UAAU,GACtB;EA7IH,AA+IE,WA/IS,CA+IT,iBAAiB,CAAC;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EZrCS,IAAI;IYsCxB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,UAAU,GACtB;EArJH,AAuJE,WAvJS,CAuJT,aAAa,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,CAAC;IACrB,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,QAAQ,GACnB;EA/JH,AAiKE,WAjKS,CAiKT,kBAAkB,CAAC;IACjB,IAAI,EAAE,kCAAkC;IACxC,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,GAAG,GACvB;EArKH,AAuKE,WAvKS,CAuKT,mBAAmB,CAAC;IAClB,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM,GACpB;;AAMC,MAAM,EAAE,SAAS,EAAE,MAAM;EAH7B,AACE,aADW,CACX,WAAW,CAAC;IAIR,MAAM,EZtEQ,KAAK,GY+GtB;IA9CH,AAOM,aAPO,CACX,WAAW,CAMP,yBAAyB,CAAC;MACxB,MAAM,EZxEoB,KAAK,GYyEhC;IATP,AAWM,aAXO,CACX,WAAW,CAUP,aAAa,CAAC;MACZ,OAAO,EAAE,cAAc,GACxB;IAbP,AAeM,aAfO,CACX,WAAW,CAcP,UAAU,CAAC;MACT,UAAU,EAAE,KAAqC,GAClD;IAjBP,AAmBM,aAnBO,CACX,WAAW,CAkBP,eAAe,CAAC;MACd,SAAS,EAAE,IAAI;MACf,cAAc,EAAE,GAAG,GACpB;IAtBP,AAwBM,aAxBO,CACX,WAAW,CAuBP,WAAW,CAAC;MACV,SAAS,EAAE,IAAI;MACf,WAAW,EAtBC,IAAI;MAuBhB,aAAa,EAAE,CAAC,GACjB;IA5BP,AA+BQ,aA/BK,CACX,WAAW,CA6BP,UAAU,AAAA,IAAK,CAAA,AAAA,eAAe,EAC5B,WAAW,CAAC;MACV,UAAU,EAAE,IAAgB,GAC7B;IAjCT,AAoCM,aApCO,CACX,WAAW,CAmCP,iBAAiB,CAAC;MAChB,SAAS,EAAE,IAAI;MACf,WAAW,EAlCC,IAAI,GAmCjB;IAvCP,AAyCM,aAzCO,CACX,WAAW,CAwCP,aAAa,CAAC;MACZ,MAAM,EAAE,GAAG;MACX,SAAS,EAAE,IAAI,GAChB;;AAKP,AAIE,cAJY,CAIZ,WAAW,CAAC;EACV,MAAM,EZpHY,KAAK,GYkMxB;EAnFH,AAOI,cAPU,CAIZ,WAAW,CAGT,yBAAyB,CAAC;IACxB,MAAM,EZtHwB,KAAK,GYuHpC;EATL,AAWI,cAXU,CAIZ,WAAW,CAOT,aAAa,CAAC;IACZ,OAAO,EAXoB,IAAI,CAWQ,IAAI,GAC5C;EAbL,AAeI,cAfU,CAIZ,WAAW,CAWT,eAAe,CAAC;IACd,WAAW,EAAE,IAAI,GAClB;EAjBL,AAoBM,cApBQ,CAIZ,WAAW,CAeT,UAAU,CACR,WAAW;EApBjB,AAqB6B,cArBf,CAIZ,WAAW,CAeT,UAAU,AAER,IAAM,CAAA,AAAA,eAAe,EAAE,WAAW,CAAC;IACjC,SAAS,EApBQ,IAAI;IAqBrB,WAAW,EAAE,IAAyB;IACtC,UAAU,EAAE,IAAyB;IACrC,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,OAAO;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM,GACpB;EA7BP,AAgCI,cAhCU,CAIZ,WAAW,CA4BT,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI,GACd;EAlCL,AAoCI,cApCU,CAIZ,WAAW,CAgCT,aAAa,CAAC;IAGZ,gBAAgB,EAAE,mCAAmC;IACrD,aAAa,EAAE,IAAmB;IAClC,SAAS,EAAE,oBAAkI;IAC7I,MAAM,EAJW,IAAI;IAKrB,KAAK,EALY,IAAI;IAMrB,OAAO,EAAE,GAAkC;IAC3C,GAAG,EAAE,IAA+C;IACpD,gBAAgB,EAAE,IAAI;IACtB,kBAAkB,EAAE,IAAI,GAmCzB;IAlFL,AAoCI,cApCU,CAIZ,WAAW,CAgCT,aAAa,AAaX,OAAQ,CAAC;MACP,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,iCAAiC;MACnD,aAAa,EAAE,CAAC;MAChB,aAAa,EAAE,IAAyB,CAAC,IAAyB,CAAC,CAAC,CAAC,CAAC;MACtE,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,MAAM,EAAE,IAAyB;MACjC,KAAK,EAAE,IAAmB;MAC1B,GAAG,EAAE,IAAI;MACT,IAAI,EAAE,IAAI,GACX;IA3DP,AA6DM,cA7DQ,CAIZ,WAAW,CAgCT,aAAa,CAyBX,kBAAkB,CAAC;MACjB,iBAAiB,EAAE,CAAC;MACpB,MAAM,EA1BI,IAAI;MA2Bd,KAAK,EA3BK,IAAI,GAwCf;MA7EP,AA6DM,cA7DQ,CAIZ,WAAW,CAgCT,aAAa,CAyBX,kBAAkB,AAKhB,oBAAqB,CAAC;QACpB,IAAI,EZ9OO,OAAO,GY+OnB;MApET,AA6DM,cA7DQ,CAIZ,WAAW,CAgCT,aAAa,CAyBX,kBAAkB,AAShB,cAAe,CAAC;QACd,IAAI,EZjPO,OAAO,GYkPnB;MAxET,AA6DM,cA7DQ,CAIZ,WAAW,CAgCT,aAAa,CAyBX,kBAAkB,AAahB,YAAa,CAAC;QACZ,IAAI,EZpPK,OAAO,GYqPjB;IA5ET,AA+EM,cA/EQ,CAIZ,WAAW,CAgCT,aAAa,CA2CX,mBAAmB,CAAC;MAClB,OAAO,EAAE,IAAI,GACd;;AAIL,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,MAAM;EArFvC,AAsFI,cAtFU,CAsFV,gBAAgB,CAAC;IACf,OAAO,EAAE,IAAI,GACd;;ACzTL,AAAA,2BAA2B,CAAC;EAC1B,KAAK,EAAE,oCAAoC;EAC3C,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,aAAa,EbwEG,IAAoC;EavEpD,UAAU,EAAE,MAAM,GA0BnB;EAxBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,2BAA2B,CAAC;MAQxB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,aAAa;MAC9B,UAAU,EAAE,IAAI,GAqBnB;EA/BD,AAaE,2BAbyB,CAazB,CAAC,CAAC;IACA,MAAM,EAAE,CAAC,GAMV;IALC,MAAM,EAAE,SAAS,EAAE,KAAK;MAf5B,AAaE,2BAbyB,CAazB,CAAC,CAAC;QAGE,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,aAAa,GAEjC;EApBH,AAsBE,2BAtByB,CAsBzB,KAAK,CAAC;IACJ,OAAO,EAAE,IAAI,GAOd;IANC,MAAM,EAAE,SAAS,EAAE,KAAK;MAxB5B,AAsBE,2BAtByB,CAsBzB,KAAK,CAAC;QAGF,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,kCAAkC;QACxC,iBAAiB,EAAE,GAAG,GAEzB;;AAGH,AAAA,yBAAyB,CAAC;EACxB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,MAAM,GAelB;EAbC,MAAM,EAAE,SAAS,EAAE,KAAK;IAL1B,AAAA,yBAAyB,CAAC;MAMtB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,aAAa;MAC9B,OAAO,EAAE,CAAC,GAUb;EAlBD,AAWE,yBAXuB,CAWvB,MAAM,CAAC;IACL,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IACT,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE,MAAM,GAChB;;AClDH,AAAA,oBAAoB,CAAC;EACnB,OAAO,Ed0EkB,IAAI,CADF,IAAI;EcxE/B,gBAAgB,EAAE,KAAK;EACvB,mBAAmB,EAAE,KAAK;EAC1B,mBAAmB,EAAE,gBAAgB,GA8HtC;EAlID,AAME,oBANkB,CAMlB,cAAc,CAAC;IACb,SAAS,Ed+Fa,IAAI;Ic9F1B,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,CAAC,GAsBV;IA/BH,AAWI,oBAXgB,CAMlB,cAAc,CAKZ,IAAI,CAAC;MACH,KAAK,EAAE,uCAAuC;MAC9C,OAAO,EAAE,YAAY;MACrB,IAAI,EAAE,uCAAuC;MAC7C,cAAc,EAAE,MAAM,GACvB;IAhBL,AAkBI,oBAlBgB,CAMlB,cAAc,CAYZ,uBAAuB,CAAC;MACtB,cAAc,EAAE,GAAG,GAMpB;MAzBL,AAqBM,oBArBc,CAMlB,cAAc,CAYZ,uBAAuB,CAGrB,aAAa,CAAC;QACZ,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,MAAM,GACpB;IAxBP,AA2BI,oBA3BgB,CAMlB,cAAc,CAqBZ,kBAAkB,CAAC;MACjB,mBAAmB,EAAE,GAAG;MACxB,UAAU,EAAE,IAAI,GACjB;EA9BL,AAiCE,oBAjCkB,CAiClB,gBAAgB,CAAC;IACf,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ,GA6BnB;IAjEH,AAsCI,oBAtCgB,CAiClB,gBAAgB,CAKd,oBAAoB,CAAC;MACnB,UAAU,EAAE,4CAA4C,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;MAC/E,MAAM,EAAE,CAAC;MACT,MAAM,EAAE,OAAO;MACf,IAAI,EAAE,uCAAuC;MAC7C,MAAM,EAAE,IAAI;MACZ,gBAAgB,EAAE,CAAC;MACnB,OAAO,EAAE,CAAC;MACV,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,CAAC;MACN,mBAAmB,EAAE,KAAK;MAC1B,mBAAmB,EAAE,OAAO;MAC5B,KAAK,EdqEgB,IAAI,Gc/D1B;MAxDL,AAsCI,oBAtCgB,CAiClB,gBAAgB,CAKd,oBAAoB,AAclB,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;QAClC,IAAI,EdvCF,OAAO;QcwCT,OAAO,EAAE,CAAC,GACX;IAvDP,AA0DI,oBA1DgB,CAiClB,gBAAgB,CAyBd,aAAa,CAAC;MACZ,GAAG,EAAE,IAAI,GACV;IAED,MAAM,EAAE,SAAS,EAAE,MAAM;MA9D7B,AdiME,oBcjMkB,CAiClB,gBAAgB,CdgKhB,aAAa,CAAC;QACZ,iBAAiB,EAAE,GAAG;QACtB,mBAAmB,EAAE,IAAI;QACzB,gBAAgB,EAAE,CAAC;QACnB,kBAAkB,EAAE,IAAI,GACzB;EctMH,AAsEM,oBAtEc,AAmElB,MAAO,CAEL,gBAAgB,CACd,oBAAoB,EAtE1B,AAsEM,oBAtEc,AAoElB,OAAQ,CACN,gBAAgB,CACd,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC,GACX;EAxEP,AA4EE,oBA5EkB,AA4ElB,OAAQ,CAAC;IACP,UAAU,EAAE,iCAAiC;IAC7C,aAAa,EAAE,GAAG,GAOnB;IArFH,AAiFM,oBAjFc,AA4ElB,OAAQ,CAIN,gBAAgB,CACd,oBAAoB,CAAC;MACnB,IAAI,EAAE,8CAA8C,GACrD;EAnFP,AAuFE,oBAvFkB,CAuFlB,gBAAgB,CAAC;IACf,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,IAAI,GAK1B;IA9FH,AA2FM,oBA3Fc,CAuFlB,gBAAgB,CAId,CAAC,CAAC,IAAI,CAAC;MACL,KAAK,EAAE,kCAAkC,GAC1C;EA7FL,AAgGE,oBAhGkB,CAgGlB,sBAAsB,CAAC;IACrB,MAAM,EdQI,KAAK,GcPhB;EAlGH,AAoGE,oBApGkB,CAoGlB,aAAa,CAAC;IAGZ,MAAM,EAAE,CAAC,CADY,IAAG;IAExB,OAAO,EAAE,CAAC,CAFW,GAAG,GAQzB;IA9GH,AAoGE,oBApGkB,CAoGlB,aAAa,AAMX,UAAW,CAAC;MACV,QAAQ,EAAE,MAAM;MAChB,cAAc,EAAE,IAAI,GACrB;EA7GL,AAkHM,oBAlHc,AAgHlB,kBAAmB,CACjB,cAAc,CACZ,kBAAkB,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC,IAAI,Cd/ClB,8BAA8B,GcgDvC;EApHP,AAuHI,oBAvHgB,AAgHlB,kBAAmB,CAOjB,aAAa,CAAC;IACZ,UAAU,EAAE,UAAU,CAAC,IAAI,CdpDjB,8BAA8B,GcqDzC;EAzHL,AA6HI,oBA7HgB,AA4HlB,UAAW,CACT,aAAa,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,MAAM,GACjB;;AC/HL,AAAA,eAAe,CAAC;EAGd,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,MAAM;EACd,SAAS,EAAE,IAAI;EAEf,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,QAAQ,GAoElB;EA5ED,AAUE,eAVa,CAUb,EAAE,CAAC;IACD,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI,GAChB;EAbH,AAeE,eAfa,CAeb,KAAK,CAAC;IACJ,eAAe,EAAE,QAAQ;IACzB,KAAK,EAAE,IAAI,GACZ;EAlBH,AAqBkB,eArBH,CAoBb,aAAa,AACX,YAAa,CAAC,EAAE,CAAC;IACf,UAAU,EAAE,GAAG,CAAC,KAAK,CArBV,oCAAoC,GAsBhD;EAvBL,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,CAAC;IACD,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG,CAAC,KAAK,CA1Bb,oCAAoC;IA2B/C,OAAO,EAAE,GAAG,GASb;IArCL,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,AAKA,YAAa,CAAC;MACZ,WAAW,EAAE,GAAG,CAAC,KAAK,CA9Bb,oCAAoC,GA+B9C;IAhCP,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,AASA,WAAY,CAAC;MACX,YAAY,EAAE,GAAG,CAAC,KAAK,CAlCd,oCAAoC,GAmC9C;EApCP,AAwCkB,eAxCH,CAoBb,aAAa,AAmBX,QAAS,CACP,WAAW,CAAC,IAAI,CAAC;IACf,UAAU,EfzBN,OAAO;Ie0BX,OAAO,EAAE,OAAO,GAKjB;KAHC,AAAA,AAJU,qBAIT,AAAA,EA5CT,eAAe,CAoBb,aAAa,AAmBX,QAAS,CACP,WAAW,CAAC,IAAI,CAIY;MACxB,KAAK,EfLP,IAAI,GeMH;EA9CT,AAmDM,eAnDS,CAoBb,aAAa,AA8BX,QAAS,CACP,WAAW;EAnDjB,AAoDM,eApDS,CAoBb,aAAa,AA8BX,QAAS,CAEP,gBAAgB,CAAC;IACf,OAAO,EAAE,GAAG,GACb;EAtDP,AAwDM,eAxDS,CAoBb,aAAa,AA8BX,QAAS,CAMP,WAAW,CAAC;IACV,OAAO,EAAE,GAAG,GACb;EA1DP,AA6DI,eA7DW,CAoBb,aAAa,CAyCX,WAAW,CAAC;IACV,WAAW,EA5DH,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS;IA6DxG,SAAS,EAAE,IAAI,GAChB;EAhEL,AAmEE,eAnEa,CAmEb,GAAG,CAAC;IACF,UAAU,EAAE,sCAAsC;IAClD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,IAAI;IACd,WAAW,EAxED,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,GAyE3G;;AC5EH,AAAA,qBAAqB,CAAC;EAGpB,SAAS,EAAE,IAAI;EACf,iBAAiB,EAAE,IAAI;EACvB,OAAO,EAAE,YAAY,GA8BtB;EAnCD,AAOE,qBAPmB,CAOnB,kBAAkB,CAAC;IACjB,UAAU,EhBLJ,OAAO;IgBMb,cAAc,EAAE,OAAO;IACvB,KAAK,EhBwCD,IAAI;IgBvCR,aAAa,EAAE,GAAG;IAClB,MAAM,EAAE,OAAO;IACf,SAAS,EAZQ,KAAK;IAetB,UAAU,EAAE,IAAI;IAChB,UAAU,EAfQ,IAAI;IAgBtB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,WAAW;IACpB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI,GACxB;EAxBH,AA0BE,qBA1BmB,CA0BnB,SAAS,CAAC;IACR,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,IAAI,GAChB;EA7BH,AA+BE,qBA/BmB,CA+BnB,kBAAkB;EA/BpB,AAgCE,qBAhCmB,CAgCnB,SAAS,CAAC;IACR,cAAc,EAAE,GAAG,GACpB;;ACjCD,MAAM,EAAE,SAAS,EAAE,KAAK;EAD1B,AAAA,qBAAqB,CAAC;IAIlB,KAAK,EAAE,KAAK,GAsBf;IA1BD,AAMI,qBANiB,AAMjB,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,KAAK,EAAE,IAAI,GACZ;;AARL,AAWE,qBAXmB,AAWnB,OAAQ,CAAC;EACP,UAAU,EAAE,oDAA2C,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;EAC/E,OAAO,EAAE,EAAE;EACX,uBAAuB,EAAE,IAAI;EAC7B,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,kCAAkC;EACxC,MAAM,EAAE,IAAI;EACZ,mBAAmB,EAAE,GAAG;EACxB,cAAc,EAAE,GAAG;EACnB,KAAK,EAAE,IAAI,GACZ;;AArBH,AAuBE,qBAvBmB,AAuBnB,IAAM,CAAA,AAAA,GAAG,CAAC,OAAO,CAAE;EACjB,SAAS,EAAE,UAAU,GACtB;;ACzBH,AAAA,eAAe,CAAC;EACd,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,MAAM;EACnB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,oCAAoC;EACtD,gBAAgB,EAAE,oCAAoC;EACtD,WAAW,EAAE,OAAO;EACpB,OAAO,EAAE,QAAQ;EACjB,mBAAmB,EAAE,IAAI;EACzB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO,GAkBhB;EAhBC,AAAM,KAAD,CAZP,eAAe,CAYL;IACN,mBAAmB,EAAE,IAAI,GAC1B;EAdH,AAgBE,eAhBa,AAgBb,QAAS,CAAC;IACR,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,kCAAkC;IACpD,gBAAgB,EAAE,kCAAkC;IACpD,KAAK,ElBbC,OAAO,GkBcd;EApBH,AAsBE,eAtBa,AAsBb,UAAW,CAAC;IACV,UAAU,EAAE,oCAAoC;IAChD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,kCAAkC;IACpD,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG,GACjB;;AC3BH,AAAA,qBAAqB,CAAC;EACpB,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,gBAAgB,EAAE,uCAAuC;EACzD,KAAK,EAAE,gCAAgC;EACvC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,qCAAqC;EAC3D,UAAU,ElBQO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO;EmBHf,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM,GA8DpB;EA1ED,AAcE,qBAdmB,CAcnB,CAAC,CAAC;IACA,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,gCAAgC;IACvC,eAAe,EAAE,SAAS,GAK3B;KAHC,AAAA,AALF,qBAKG,AAAA,EAnBL,qBAAqB,CAcnB,CAAC,CAK2B;MACxB,WAAW,EAAE,IAAI,GAClB;EArBL,AAwBE,qBAxBmB,CAwBnB,aAAa,CAAC;IACZ,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI,CnB8CY,IAAI;ImB3C7B,kBAAkB,EAAE,IAAI;IAKxB,SAAS,EnBuDa,KAAmE,GmBnD1F;IARC,MAAM,EAAE,SAAS,EAAE,KAAK;MAhC5B,AAwBE,qBAxBmB,CAwBnB,aAAa,CAAC;QASV,kBAAkB,EnByCK,IAAI,GmBlC9B;IAHC,MAAM,EAAE,SAAS,EAAE,MAAM;MArC7B,AAwBE,qBAxBmB,CAwBnB,aAAa,CAAC;QAcV,SAAS,EnBsDY,MAAmE,GmBpD3F;EAxCH,AA0CE,qBA1CmB,CA0CnB,YAAY,CAAC;IACX,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,gBAAgB,EAAE,IAAI;IACtB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,0EAA0E;IAC5F,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,gCAAgC;IACtC,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,OAAO,GAKhB;IAHC,MAAM,EAAE,SAAS,EAAE,KAAK;MA3D5B,AA0CE,qBA1CmB,CA0CnB,YAAY,CAAC;QAkBT,gBAAgB,EAAE,IAAI,GAEzB;EA9DH,AAgEU,qBAhEW,AAgEnB,MAAO,CAAC,YAAY,CAAC;IACnB,OAAO,EAAE,KAAK,GACf;EAlEH,AAoEE,qBApEmB,CAoEnB,KAAK,CAAC;IACJ,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,iBAAiB,EAAE,IAAI;IACvB,WAAW,EAAE,CAAC,GACf;;AAGH,AAAA,wBAAwB,CAAC;EACvB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,KAAK,EnBpEG,qBAAO;EmBqEf,UAAU,EnBxEF,wBAAO;EmByEf,UAAU,EAAE,MAAM;EAClB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI,GAKZ;EAbD,AAUE,wBAVsB,CAUtB,IAAI,CAAC;IACH,cAAc,EAAE,MAAM,GACvB;;ACxFH,AACE,gBADc,AACd,WAAY,CAAC;EACX,QAAQ,EAAE,MAAM,GACjB;;AAGH,AAAA,kBAAkB,CAAC;EACjB,UAAU,EpB2CJ,IAAI;EoB1CV,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,IAAI,GAKd;EAbD,AAUE,kBAVgB,AAUhB,OAAQ,CAAC;IACP,OAAO,EAAE,KAAK,GACf;;AAGH,AAAA,kBAAkB,CAAC;EACjB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,iBAAiB;EACtB,IAAI,EAAE,iBAAiB;EACvB,UAAU,EpBuBJ,IAAI;EoBtBV,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CpBalB,kBAAI;EoBZV,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,IAAI,GA+Ed;EA3EC,MAAM,EAAC,SAAS,EAAE,KAAK;IAdzB,AAAA,kBAAkB,CAAC;MAef,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,GAAG,EAAE,CAAC;MACN,IAAI,EAAE,CAAC;MACP,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,CAAC,GAqEnB;EAjEC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;IAxBjD,AAAA,kBAAkB,CAAC;MAyBf,UAAU,EAAE,MAAM,GAgErB;EA5DC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;IA7BjD,AAAA,kBAAkB,CAAC;MA8Bf,UAAU,EAAE,MAAM,GA2DrB;EAzFD,AAiCE,kBAjCgB,AAiChB,OAAQ,CAAC;IACP,OAAO,EAAE,KAAK,GACf;EAnCH,AAqCE,kBArCgB,CAqChB,EAAE,CAAC;IACD,KAAK,EpBhDC,OAAO;IoBiDb,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,OAAO,GASxB;IAPC,MAAM,EAAC,SAAS,EAAE,KAAK;MA9C3B,AAqCE,kBArCgB,CAqChB,EAAE,CAAC;QAUC,UAAU,EAAE,KAAK,GAMpB;IAHC,MAAM,EAAC,SAAS,EAAE,KAAK;MAlD3B,AAqCE,kBArCgB,CAqChB,EAAE,CAAC;QAcC,UAAU,EAAE,IAAI,GAEnB;EArDH,AAuDE,kBAvDgB,CAuDhB,OAAO,CAAC;IACN,UAAU,EAAE,GAAG,CAAC,KAAK,CpBrEf,OAAO;IoBsEb,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,MAAM;IAClB,gBAAgB,EpBjCZ,IAAI,GoB2DT;IAvBC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;MAjEnD,AAuDE,kBAvDgB,CAuDhB,OAAO,CAAC;QAWJ,QAAQ,EAAE,MAAM,GAsBnB;IAlBC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;MAtEnD,AAuDE,kBAvDgB,CAuDhB,OAAO,CAAC;QAgBJ,QAAQ,EAAE,MAAM,GAiBnB;IAxFH,AA0EI,kBA1Ec,CAuDhB,OAAO,CAmBL,YAAY,CAAC;MACX,UAAU,EAAE,IAAI;MAChB,SAAS,EAAE,KAAK;MAChB,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,YAAY;MACrB,SAAS,EAAE,IAAI,GAQhB;MAvFL,AA0EI,kBA1Ec,CAuDhB,OAAO,CAmBL,YAAY,AAOV,MAAO,EAjFb,AA0EI,kBA1Ec,CAuDhB,OAAO,CAmBL,YAAY,AAQV,OAAQ,EAlFd,AA0EI,kBA1Ec,CAuDhB,OAAO,CAmBL,YAAY,AASV,MAAO,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CpBjGnB,OAAO;QoBkGT,UAAU,EAAE,gBAAgB,GAC7B;;AC3GP,AACE,cADY,AACZ,KAAM,CAAC;EACL,OAAO,EAAE,MAAM,GAChB;;AAHH,AAKI,cALU,CAKZ,CAAC,CAAC,EAAE,CAAC;EACH,KAAK,ErBQC,OAAO;EqBPb,UAAU,EAAE,MAAM;EAClB,UAAU,ErBSF,OAAO,GqBRhB;;AATH,AAaI,cAbU,AAWZ,KAAM,CAEJ,kBAAkB;AAbtB,AAcI,cAdU,AAWZ,KAAM,CAGJ,gBAAgB,EAdpB,AAaI,cAbU,AAYZ,SAAU,CACR,kBAAkB;AAbtB,AAcI,cAdU,AAYZ,SAAU,CAER,gBAAgB,CAAC;EACf,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,GAAG,GACpB;;AAjBL,AAoBE,cApBY,AAoBZ,KAAM,CAAC;EACL,MAAM,EAAE,KAAK,GAYd;EAjCH,AAuBI,cAvBU,AAoBZ,KAAM,CAGJ,KAAK,CAAC;IACJ,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI,GACpB;EA3BL,AA6BI,cA7BU,AAoBZ,KAAM,CASJ,KAAK,CAAC;IACJ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI,GACb;;AAhCL,AAmCE,cAnCY,AAmCZ,SAAU,CAAC;EACT,MAAM,EAAE,KAAK,GAYd;EAhDH,AAsCI,cAtCU,AAmCZ,SAAU,CAGR,KAAK,CAAC;IACJ,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI,GACpB;EA1CL,AA4CI,cA5CU,AAmCZ,SAAU,CASR,KAAK,CAAC;IACJ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI,GACb;;AA/CL,AAkDE,cAlDY,CAkDZ,MAAM,CAAC;EACL,OAAO,EAAE,MAAM;EACf,SAAS,EAAE,OAAO;EAClB,MAAM,EAAE,CAAC,GACV;;AAtDH,AAwDE,cAxDY,CAwDZ,UAAU,CAAC;EACT,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EAAE,IAAI;EACrB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,GAAG;EACf,iBAAiB,EAAE,GAAG;EACtB,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,GAAG,GACpB;;AAjEH,AAmEE,cAnEY,CAmEZ,KAAK,CAAC;EACJ,OAAO,EAAE,MAAM;EACf,MAAM,EAAE,CAAC,GACV;;AAtEH,AAwES,cAxEK,AAwEZ,KAAM,CAAC,KAAK,CAAC;EACX,iBAAiB,EAAE,IAAI,GACxB;;AA1EH,AA8EI,cA9EU,AA4EZ,SAAU,CAER,KAAK,EA9ET,AA8EI,cA9EU,AA6EZ,KAAM,CACJ,KAAK,CAAC;EACJ,iBAAiB,EAAE,IAAI,GACxB;;AAhFL,AAmFE,cAnFY,CAmFZ,KAAK,CAAC;EACJ,UAAU,EAAE,UAAU,GACvB;;AArFH,AAuFE,cAvFY,CAuFZ,eAAe,CAAC;EACd,MAAM,EAAE,OAAO,GAChB;;ACzFH,AAAA,kBAAkB,CAAC;EACjB,cAAc,EAAE,MAAM;EACtB,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,IAAI,GAyFZ;EA5FD,AAKE,kBALgB,AAKhB,uBAAwB,CAAC;IACvB,UAAU,EAAE,MAAM,GAKnB;IAXH,AAQI,kBARc,AAKhB,uBAAwB,CAGtB,QAAQ,CAAC;MACP,SAAS,EAAE,IAAI,GAChB;EAVL,AAaE,kBAbgB,CAahB,eAAe,AACb,QAAS,CAAC;IACR,IAAI,EAAE,KAAK,GACZ;EAhBL,AAmBE,kBAnBgB,CAmBhB,WAAW,CAAC;IACV,KAAK,EAAE,IAAI,GAMZ;IA1BH,AAsBI,kBAtBc,CAmBhB,WAAW,CAGT,GAAG,CAAC;MACF,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,YAAY,GACtB;EAzBL,AA4BE,kBA5BgB,CA4BhB,IAAI,CAAC;IACH,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,KAAK,EAAE,IAAI,GACZ;EAhCH,AAkCE,kBAlCgB,CAkChB,QAAQ,CAAC;IACP,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,QAAQ,GAKf;IA1CH,AAuCI,kBAvCc,CAkChB,QAAQ,CAKN,CAAC,CAAC;MACA,UAAU,EAAE,CAAC,GACd;EAzCL,AA4CE,kBA5CgB,CA4ChB,cAAc,CAAC;IACb,KAAK,EAAE,kCAAkC;IACzC,IAAI,EAAE,QAAQ,GAKf;IAnDH,AAgDI,kBAhDc,CA4ChB,cAAc,CAIZ,CAAC,CAAC;MACA,aAAa,EAAE,CAAC,GACjB;EAlDL,AAqDE,kBArDgB,CAqDhB,aAAa,CAAC;IACZ,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI,GACrB;EA3DH,AA6DE,kBA7DgB,CA6DhB,OAAO,CAAC;IACN,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,8BAA8B;IAChD,OAAO,EAAE,MAAM,GAQhB;IA1EH,AAoEI,kBApEc,CA6DhB,OAAO,CAOL,eAAe,CAAC;MACd,MAAM,EAAE,MAAM;MACd,SAAS,EAAE,KAAK;MAChB,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,KAAK,GAClB;EAzEL,AA4EE,kBA5EgB,CA4EhB,KAAK,AACH,UAAW,CAAC;IACV,aAAa,EAAE,GAAG;IAClB,gBAAgB,EAAE,sCAAsC;IACxD,MAAM,ErBnEG,GAAG,CAAC,KAAK,CAAC,4BAA4B;IqBoE/C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,GAAG,GAMX;IA1FL,AA4EE,kBA5EgB,CA4EhB,KAAK,AACH,UAAW,AAST,MAAO,CAAC;MACN,MAAM,ErBzEQ,GAAG,CAAC,KAAK,CAAC,iCAAiC;MqB0EzD,UAAU,EAAE,qCAAqC,GAClD;;AAKP,AAAA,iBAAiB,CAAC;EAChB,UAAU,EAAE,MAAM;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,MAAM,GAKhB;EARD,AAKE,iBALe,CAKf,kBAAkB,CAAC;IACjB,SAAS,EAAE,IAAI,GAChB;;ACrGH,AAAA,2BAA2B,CAAC;EAC1B,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,IAAI;EACrB,qBAAqB,EAAE,cAAc;EACrC,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI,GASpB;EANC,MAAM,EAAC,SAAS,EAAE,KAAK;IARzB,AAAA,2BAA2B,CAAC;MASxB,qBAAqB,EAAE,IAAI;MAC3B,kBAAkB,EAAE,cAAc;MAClC,YAAY,EAAE,KAAK;MACnB,aAAa,EAAE,KAAK,GAEvB;;AAED,AAAA,kBAAkB,CAAC;EACjB,MAAM,EAAE,KAAK;EACb,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,GAAG,GA6IjB;EA1IC,MAAM,EAAC,SAAS,EAAE,KAAK;IAPzB,AAAA,kBAAkB,CAAC;MAQf,MAAM,EAAE,KAAK;MACb,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,IAAI;MACb,aAAa,EAAE,GAAG,CAAC,KAAK,CvBnBlB,OAAO;MuBoBb,OAAO,EAAE,IAAI;MACb,aAAa,EAAE,IAAI,GAoItB;MAjJD,AAeI,kBAfc,AAed,WAAY,CAAC;QACX,MAAM,EAAE,CAAC,GACV;MAjBL,AAmBI,kBAnBc,CAmBd,kBAAkB,CAAC;QACjB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI,GAab;QAlCL,AAuBe,kBAvBG,CAmBd,kBAAkB,GAId,IAAI,GAAG,EAAE,CAAC;UACV,UAAU,EAAE,CAAC;UACb,aAAa,EAAE,GAAG;UAClB,WAAW,EAAE,GAAG,GACjB;QA3BP,AA6Be,kBA7BG,CAmBd,kBAAkB,GAUd,IAAI,GAAG,CAAC,CAAC;UACT,UAAU,EAAE,CAAC;UACb,WAAW,EAAE,IAAI;UACjB,SAAS,EAAE,IAAI,GAChB;EAIL,MAAM,EAAC,SAAS,EAAE,KAAK;IArCzB,AAAA,kBAAkB,CAAC;MAsCf,MAAM,EAAE,KAAK,GA2GhB;EAjJD,AAyCE,kBAzCgB,CAyChB,uBAAuB,CAAC;IACtB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,eAAe,EAAE,KAAK;IACtB,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,SAAS;IAC5B,OAAO,EAAE,YAAY;IACrB,cAAc,EAAE,MAAM,GAwBvB;IArBC,MAAM,EAAC,SAAS,EAAE,KAAK;MAnD3B,AAyCE,kBAzCgB,CAyChB,uBAAuB,CAAC;QAWpB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI,GAkBxB;IAxEH,AAyCE,kBAzCgB,CAyChB,uBAAuB,AAgBrB,OAAQ,CAAC;MACP,gBAAgB,EAAE,gFAAgF,GACnG;IA3DL,AAyCE,kBAzCgB,CAyChB,uBAAuB,AAoBrB,gBAAiB,CAAC;MAChB,gBAAgB,EAAE,yFAAyF,GAC5G;IA/DL,AAyCE,kBAzCgB,CAyChB,uBAAuB,AAwBrB,YAAa,CAAC;MACZ,gBAAgB,EAAE,qFAAqF,GACxG;IAnEL,AAyCE,kBAzCgB,CAyChB,uBAAuB,AA4BrB,KAAM,CAAC;MACL,gBAAgB,EAAE,8EAA8E,GACjG;EAvEL,AA0EE,kBA1EgB,CA0EhB,kBAAkB,CAAC;IACjB,MAAM,EAAE,KAAK,GAqBd;IAhGH,AA6Ea,kBA7EK,CA0EhB,kBAAkB,GAGd,IAAI,GAAG,EAAE,CAAC;MACV,KAAK,EvBhFD,OAAO;MuBiFX,aAAa,EAAE,GAAG;MAClB,WAAW,EAAE,GAAG,GACjB;IAjFL,AAmFa,kBAnFK,CA0EhB,kBAAkB,GASd,IAAI,GAAG,CAAC,CAAC;MACT,KAAK,EvBzFD,OAAO;MuB0FX,UAAU,EAAE,CAAC;MACb,MAAM,EAAE,KAAK;MACb,aAAa,EAAE,IAAI;MACnB,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,IAAI,GAMlB;MAJC,MAAM,EAAC,SAAS,EAAE,KAAK;QA3F7B,AAmFa,kBAnFK,CA0EhB,kBAAkB,GASd,IAAI,GAAG,CAAC,CAAC;UASP,aAAa,EAAE,CAAC;UAChB,MAAM,EAAE,KAAK,GAEhB;EA/FL,AAkGE,kBAlGgB,CAkGhB,iBAAiB,CAAC;IAChB,gBAAgB,EvBrGV,qBAAO;IuBsGb,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,IAAI,GAmBhB;IAhBC,MAAM,EAAC,SAAS,EAAE,KAAK;MA5G3B,AAkGE,kBAlGgB,CAkGhB,iBAAiB,CAAC;QAWd,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,MAAM;QAClB,iBAAiB,EAAE,KAAK,GAa3B;IAVC,MAAM,EAAC,SAAS,EAAE,KAAK;MAlH3B,AAkGE,kBAlGgB,CAkGhB,iBAAiB,CAAC;QAiBd,KAAK,EAAE,IAAI,GASd;IA5HH,AAkGE,kBAlGgB,CAkGhB,iBAAiB,AAoBf,MAAO,EAtHX,AAkGE,kBAlGgB,CAkGhB,iBAAiB,AAqBf,OAAQ,EAvHZ,AAkGE,kBAlGgB,CAkGhB,iBAAiB,AAsBf,MAAO,CAAC;MACN,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CvBjIjB,OAAO;MuBkIX,UAAU,EAAE,gBAAgB,GAC7B;EA3HL,AA+HE,kBA/HgB,AA+HhB,QAAS,CAAC;IACR,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,QAAQ;IAClB,gBAAgB,EvB5IV,OAAO;IuB6Ib,UAAU,EAAE,IAAI;IAChB,mBAAmB,EAAE,KAAK,GAM3B;IAHC,MAAM,EAAC,SAAS,EAAE,KAAK;MAzI3B,AA+HE,kBA/HgB,AA+HhB,QAAS,CAAC;QAWN,OAAO,EAAE,IAAI,GAEhB;EA5IH,AA8IE,kBA9IgB,AA8IhB,WAAY,AAAA,QAAQ,CAAC;IACnB,OAAO,EAAE,IAAI,GACd;;AChKH,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM,GA4CpB;EAjDD,AAOE,eAPa,CAOb,gBAAgB;EAPlB,AAQE,eARa,CAQb,kBAAkB,CAAC;IACjB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,QAAQ;IACjB,aAAa,EAAE,GAAG,GACnB;EAbH,AAeE,eAfa,CAeb,gBAAgB,CAAC;IACf,KAAK,ExBFC,OAAO;IwBGb,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,GAAG,CAAC,KAAK,CxBTX,OAAO;IwBUb,UAAU,ExBbJ,OAAO;IwBcb,MAAM,EAAE,OAAO,GAChB;EArBH,AAuBE,eAvBa,CAuBb,KAAK,CACH,AAAA,IAAE,CAAK,OAAO,AAAZ,EAAc;IACd,OAAO,EAAE,CAAC;IACV,iBAAiB,EAAE,KAAK,GAOzB;IAjCL,AA4BgB,eA5BD,CAuBb,KAAK,CACH,AAAA,IAAE,CAAK,OAAO,AAAZ,CAIA,QAAS,GAAC,gBAAgB,CAAC;MACzB,UAAU,ExBnBR,OAAO;MwBoBT,KAAK,ExBoBL,IAAI;MwBnBJ,MAAM,EAAE,GAAG,CAAC,KAAK,CxBpBf,OAAO,GwBqBV;EAhCP,AAoCE,eApCa,CAoCb,2BAA2B,CAAC;IAC1B,KAAK,EAAE,IAAI,GACZ;EAtCH,AAwCE,eAxCa,CAwCb,kBAAkB,CAAC;IACjB,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,ExB2FU,OAAO;IwB1FjC,MAAM,EAAE,CAAC;IACT,KAAK,ExBMD,IAAI;IwBLR,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,OAAO,GAChB"
}
\ No newline at end of file
diff --git a/browser/components/newtab/css/activity-stream-windows.css b/browser/components/newtab/css/activity-stream-windows.css
index 68edeeba2d09..ad8d0a3dec0b 100644
--- a/browser/components/newtab/css/activity-stream-windows.css
+++ b/browser/components/newtab/css/activity-stream-windows.css
@@ -1931,7 +1931,8 @@ a.firstrun-link {
align-items: center; }
.SnippetBaseContainer a {
cursor: pointer;
- color: var(--newtab-link-primary-color); }
+ color: var(--newtab-link-primary-color);
+ text-decoration: underline; }
[lwt-newtab-brighttext] .SnippetBaseContainer a {
font-weight: bold; }
.SnippetBaseContainer .innerWrapper {
@@ -2069,6 +2070,37 @@ a.firstrun-link {
.SimpleSnippet.tall {
padding: 27px 0; }
+.SimpleSnippet p em {
+ color: #0C0C0D;
+ font-style: normal;
+ background: #FFE900; }
+
+.SimpleSnippet.bold .donation-form-url,
+.SimpleSnippet.bold .donation-amount, .SimpleSnippet.takeover .donation-form-url,
+.SimpleSnippet.takeover .donation-amount {
+ padding-top: 8px;
+ padding-bottom: 8px; }
+
+.SimpleSnippet.bold {
+ height: 176px; }
+ .SimpleSnippet.bold .body {
+ font-size: 14px;
+ line-height: 20px;
+ margin-bottom: 20px; }
+ .SimpleSnippet.bold .icon {
+ width: 71px;
+ height: 71px; }
+
+.SimpleSnippet.takeover {
+ height: 344px; }
+ .SimpleSnippet.takeover .body {
+ font-size: 16px;
+ line-height: 24px;
+ margin-bottom: 35px; }
+ .SimpleSnippet.takeover .icon {
+ width: 79px;
+ height: 79px; }
+
.SimpleSnippet .title {
display: inline;
font-size: inherit;
@@ -2091,6 +2123,12 @@ a.firstrun-link {
.SimpleSnippet.tall .icon {
margin-inline-end: 20px; }
+.SimpleSnippet.takeover .icon, .SimpleSnippet.bold .icon {
+ margin-inline-end: 20px; }
+
+.SimpleSnippet .icon {
+ align-self: flex-start; }
+
.SimpleSnippet .ASRouterButton {
cursor: pointer; }
@@ -2273,4 +2311,40 @@ a.firstrun-link {
.onboardingMessage:last-child::before {
content: none; }
+.EOYSnippetForm {
+ margin-top: 12px;
+ align-self: start;
+ font-size: 12px;
+ display: flex;
+ align-items: center; }
+ .EOYSnippetForm .donation-amount,
+ .EOYSnippetForm .donation-form-url {
+ white-space: nowrap;
+ font-size: 14px;
+ padding: 5px 14px;
+ border-radius: 2px; }
+ .EOYSnippetForm .donation-amount {
+ color: #0C0C0D;
+ margin-inline-end: 18px;
+ border: 1px solid #B1B1B3;
+ background: #F9F9FA;
+ cursor: pointer; }
+ .EOYSnippetForm input[type='radio'] {
+ opacity: 0;
+ margin-inline-end: -18px; }
+ .EOYSnippetForm input[type='radio']:checked + .donation-amount {
+ background: #737373;
+ color: #FFF;
+ border: 1px solid #4A4A4F; }
+ .EOYSnippetForm .monthly-checkbox-container {
+ width: 100%; }
+ .EOYSnippetForm .donation-form-url {
+ margin-inline-start: 18px;
+ background-color: #0C99D5;
+ border: 0;
+ color: #FFF;
+ align-self: flex-end;
+ display: flex;
+ cursor: pointer; }
+
/*# sourceMappingURL=activity-stream-windows.css.map */
\ No newline at end of file
diff --git a/browser/components/newtab/css/activity-stream-windows.css.map b/browser/components/newtab/css/activity-stream-windows.css.map
index 13045ca9e081..6bb650704ff6 100644
--- a/browser/components/newtab/css/activity-stream-windows.css.map
+++ b/browser/components/newtab/css/activity-stream-windows.css.map
@@ -28,13 +28,14 @@
"../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss",
"../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss",
"../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss",
- "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss"
+ "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss",
+ "../content-src/asrouter/templates/EOYSnippet/_EOYSnippet.scss"
],
"sourcesContent": [
"/* This is the windows variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 6px;\n$os-infopanel-arrow-width: 20px;\n\n@import './activity-stream';\n",
- "@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n",
+ "@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n@import '../asrouter/templates/EOYSnippet/EOYSnippet';\n",
"html {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n border: 0;\n}\n\nbody {\n margin: 0;\n}\n\nbutton,\ninput {\n background-color: inherit;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n\n[hidden] {\n display: none !important; // sass-lint:disable-line no-important\n}\n",
- "// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-10-95: rgba($grey-10, 0.95);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n inset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 150ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n inset-inline-end: 0;\n inset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
+ "// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-10-95: rgba($grey-10, 0.95);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n$snippets-donation-button-bg: #0C99D5;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n inset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 150ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n inset-inline-end: 0;\n inset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
"@function textbox-shadow($color) {\n @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n --newtab-textbox-focus-color: $color;\n --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n // General styles\n --newtab-background-color: $grey-10;\n --newtab-border-primary-color: $grey-40;\n --newtab-border-secondary-color: $grey-30;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: inherit;\n --newtab-element-active-color: $grey-30-60;\n --newtab-element-hover-color: $grey-20;\n --newtab-icon-primary-color: $grey-90-80;\n --newtab-icon-secondary-color: $grey-90-60;\n --newtab-icon-tertiary-color: $grey-30;\n --newtab-inner-box-shadow-color: $black-10;\n --newtab-link-primary-color: $blue-60;\n --newtab-link-secondary-color: $teal-70;\n --newtab-text-conditional-color: $grey-60;\n --newtab-text-primary-color: $grey-90;\n --newtab-text-secondary-color: $grey-50;\n --newtab-textbox-background-color: $white;\n --newtab-textbox-border: $grey-90-20;\n @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-10;\n --newtab-contextmenu-button-color: $white;\n\n // Modal + overlay\n --newtab-modal-color: $white;\n --newtab-overlay-color: $grey-20-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-50;\n --newtab-section-navigation-text-color: $grey-50;\n --newtab-section-active-contextmenu-color: $grey-90;\n\n // Search\n --newtab-search-border-color: transparent;\n --newtab-search-dropdown-color: $white;\n --newtab-search-dropdown-header-color: $grey-10;\n --newtab-search-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\n\n // Top Sites\n --newtab-topsites-background-color: $white;\n --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n --newtab-topsites-label-color: inherit;\n\n // Cards\n --newtab-card-active-outline-color: $grey-30;\n --newtab-card-background-color: $white;\n --newtab-card-hairline-color: $black-10;\n --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n // Snippets\n --newtab-snippets-background-color: $white;\n --newtab-snippets-hairline-color: transparent;\n\n &[lwt-newtab-brighttext] {\n // General styles\n --newtab-background-color: $grey-80;\n --newtab-border-primary-color: $grey-10-80;\n --newtab-border-secondary-color: $grey-10-10;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: $grey-70;\n --newtab-element-active-color: $grey-10-20;\n --newtab-element-hover-color: $grey-10-10;\n --newtab-icon-primary-color: $grey-10-80;\n --newtab-icon-secondary-color: $grey-10-40;\n --newtab-icon-tertiary-color: $grey-10-40;\n --newtab-inner-box-shadow-color: $grey-10-20;\n --newtab-link-primary-color: $blue-40;\n --newtab-link-secondary-color: $pocket-teal;\n --newtab-text-conditional-color: $grey-10;\n --newtab-text-primary-color: $grey-10;\n --newtab-text-secondary-color: $grey-10-80;\n --newtab-textbox-background-color: $grey-70;\n --newtab-textbox-border: $grey-10-20;\n @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-60;\n --newtab-contextmenu-button-color: $grey-80;\n\n // Modal + overlay\n --newtab-modal-color: $grey-80;\n --newtab-overlay-color: $grey-90-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-10-80;\n --newtab-section-navigation-text-color: $grey-10-80;\n --newtab-section-active-contextmenu-color: $white;\n\n // Search\n --newtab-search-border-color: $grey-10-20;\n --newtab-search-dropdown-color: $grey-70;\n --newtab-search-dropdown-header-color: $grey-60;\n --newtab-search-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\n\n // Top Sites\n --newtab-topsites-background-color: $grey-70;\n --newtab-topsites-icon-shadow: none;\n --newtab-topsites-label-color: $grey-10-80;\n\n // Cards\n --newtab-card-active-outline-color: $grey-60;\n --newtab-card-background-color: $grey-70;\n --newtab-card-hairline-color: $grey-10-10;\n --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n // Snippets\n --newtab-snippets-background-color: $grey-70;\n --newtab-snippets-hairline-color: $white-10;\n }\n}\n",
".icon {\n background-position: center center;\n background-repeat: no-repeat;\n background-size: $icon-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-icon-primary-color);\n height: $icon-size;\n vertical-align: middle;\n width: $icon-size;\n\n &.icon-spacer {\n margin-inline-end: 8px;\n }\n\n &.icon-small-spacer {\n margin-inline-end: 6px;\n }\n\n &.icon-bookmark-added {\n background-image: url('chrome://browser/skin/bookmark.svg');\n }\n\n &.icon-bookmark-hollow {\n background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n }\n\n &.icon-clear-input {\n fill: var(--newtab-icon-secondary-color);\n background-image: url('#{$image-path}glyph-cancel-16.svg');\n }\n\n &.icon-delete {\n background-image: url('#{$image-path}glyph-delete-16.svg');\n }\n\n &.icon-search {\n background-image: url('chrome://browser/skin/search-glass.svg');\n }\n\n &.icon-modal-delete {\n flex-shrink: 0;\n background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n background-size: $larger-icon-size;\n height: $larger-icon-size;\n width: $larger-icon-size;\n }\n\n &.icon-dismiss {\n background-image: url('#{$image-path}glyph-dismiss-16.svg');\n }\n\n &.icon-info {\n background-image: url('#{$image-path}glyph-info-16.svg');\n }\n\n &.icon-import {\n background-image: url('#{$image-path}glyph-import-16.svg');\n }\n\n &.icon-new-window {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-newWindow-16.svg');\n }\n\n &.icon-new-window-private {\n background-image: url('chrome://browser/skin/privateBrowsing.svg');\n }\n\n &.icon-settings {\n background-image: url('chrome://browser/skin/settings.svg');\n }\n\n &.icon-pin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-16.svg');\n }\n\n &.icon-unpin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-unpin-16.svg');\n }\n\n &.icon-edit {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.icon-pocket {\n background-image: url('#{$image-path}glyph-pocket-16.svg');\n }\n\n &.icon-pocket-save {\n background-image: url('#{$image-path}glyph-pocket-save-16.svg');\n }\n\n &.icon-history-item {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-trending {\n background-image: url('#{$image-path}glyph-trending-16.svg');\n transform: translateY(2px); // trending bolt is visually top heavy\n }\n\n &.icon-now {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-topsites {\n background-image: url('#{$image-path}glyph-topsites-16.svg');\n }\n\n &.icon-pin-small {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-check {\n background-image: url('chrome://global/skin/icons/check.svg');\n }\n\n &.icon-download {\n background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n }\n\n &.icon-copy {\n background-image: url('chrome://browser/skin/edit-copy.svg');\n }\n\n &.icon-open-file {\n background-image: url('#{$image-path}glyph-open-file-16.svg');\n }\n\n &.icon-webextension {\n background-image: url('#{$image-path}glyph-webextension-16.svg');\n }\n\n &.icon-highlights {\n background-image: url('#{$image-path}glyph-highlights-16.svg');\n }\n\n &.icon-arrowhead-down {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n }\n\n &.icon-arrowhead-down-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-arrowhead-forward-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n transform: rotate(-90deg);\n width: $smaller-icon-size;\n\n &:dir(rtl) {\n transform: rotate(90deg);\n }\n }\n\n &.icon-arrowhead-up {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n transform: rotate(180deg);\n }\n\n &.icon-add {\n background-image: url('#{$image-path}glyph-add-16.svg');\n }\n\n &.icon-minimize {\n background-image: url('#{$image-path}glyph-minimize-16.svg');\n }\n\n &.icon-maximize {\n background-image: url('#{$image-path}glyph-maximize-16.svg');\n }\n}\n",
".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n &.only-search {\n display: block;\n padding-top: 134px;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n\n .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n inset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 1000;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
@@ -53,12 +54,13 @@
".pocket-logged-in-cta {\n $max-button-width: 130px;\n $min-button-height: 18px;\n font-size: 13px;\n margin-inline-end: 20px;\n display: inline-block;\n\n .pocket-cta-button {\n background: $blue-60;\n letter-spacing: -0.34px;\n color: $white;\n border-radius: 4px;\n cursor: pointer;\n max-width: $max-button-width;\n // The button height is 2px taller than the rest of the cta text.\n // So I move it up by 1px to align with the rest of the cta text.\n margin-top: -1px;\n min-height: $min-button-height;\n padding: 0 8px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n font-size: 11px;\n margin-inline-end: 10px;\n }\n\n .cta-text {\n font-weight: normal;\n font-size: 13px;\n }\n\n .pocket-cta-button,\n .cta-text {\n vertical-align: top;\n }\n}\n",
".more-recommendations {\n @media (min-width: $break-point-large) {\n // This is floating to accomodate a very large number of topics and/or\n // very long topic names due to l10n.\n float: right;\n\n &:dir(rtl) {\n float: left;\n }\n }\n\n &::after {\n background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n content: '';\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-link-secondary-color);\n height: 16px;\n margin-inline-start: 5px;\n vertical-align: top;\n width: 12px;\n }\n\n &:dir(rtl)::after {\n transform: scaleX(-1);\n }\n}\n",
".ASRouterButton {\n font-weight: bold;\n white-space: nowrap;\n border-radius: 4px;\n border: 1px solid var(--newtab-border-secondary-color);\n background-color: var(--newtab-button-secondary-color);\n font-family: inherit;\n padding: 8px 15px;\n margin-inline-start: 12px;\n color: inherit;\n cursor: pointer;\n\n .tall & {\n margin-inline-start: 20px;\n }\n\n &.primary {\n border: 1px solid var(--newtab-button-primary-color);\n background-color: var(--newtab-button-primary-color);\n color: $grey-10;\n }\n\n &.secondary {\n background: var(--newtab-button-secondary-color);\n border: 1px solid var(--newtab-border-primary-color);\n font-size: 14px;\n font-weight: 600;\n }\n}\n",
- ".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n\n [lwt-newtab-brighttext] & {\n font-weight: bold;\n }\n }\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n inset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n",
+ ".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n text-decoration: underline;\n\n [lwt-newtab-brighttext] & {\n font-weight: bold;\n }\n }\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n inset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n",
".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 1100;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 570px;\n position: fixed;\n top: calc(50% - 285px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 1101;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n // if modal is narrow enough, add a vertical scroll bar\n @media(max-width: 650px) and (max-height: 600px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n // if modal is narrow enough, footer becomes sticky\n @media(max-width: 650px) and (max-height: 600px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n min-width: 150px;\n height: 30px;\n padding: 4px 30px 6px;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n }\n}\n",
- ".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n",
+ ".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n p em {\n color: $grey-90;\n font-style: normal;\n background: $yellow-50;\n }\n\n &.bold,\n &.takeover {\n .donation-form-url,\n .donation-amount {\n padding-top: 8px;\n padding-bottom: 8px;\n }\n }\n\n &.bold {\n height: 176px;\n\n .body {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .icon {\n width: 71px;\n height: 71px;\n }\n }\n\n &.takeover {\n height: 344px;\n\n .body {\n font-size: 16px;\n line-height: 24px;\n margin-bottom: 35px;\n }\n\n .icon {\n width: 79px;\n height: 79px;\n }\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n &.takeover,\n &.bold {\n .icon {\n margin-inline-end: 20px;\n }\n }\n\n .icon {\n align-self: flex-start;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n",
".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n &.send_to_device_snippet {\n text-align: center;\n\n .message {\n font-size: 16px;\n }\n }\n\n .ASRouterButton {\n &.primary {\n flex: 1 1 0;\n }\n }\n\n .scene2Icon {\n width: 100%;\n\n img {\n width: 98px;\n display: inline-block;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n\n p {\n margin-top: 0;\n }\n }\n\n .privacyNotice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n\n p {\n margin-bottom: 0;\n }\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n padding-top: 40px;\n padding-bottom: 40px;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background-color: var(--newtab-background-color);\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &.mainInput {\n border-radius: 3px;\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 100%;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n\n.submissionStatus {\n text-align: center;\n font-size: 14px;\n padding: 20px 0;\n\n .submitStatusTitle {\n font-size: 20px;\n }\n}\n",
- ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url('resource://activity-stream/data/content/assets/illustration-addons@2x.png');\n }\n\n &.privatebrowsing {\n background-image: url('resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png');\n }\n\n &.screenshots {\n background-image: url('resource://activity-stream/data/content/assets/illustration-screenshots@2x.png');\n }\n\n &.gift {\n background-image: url('resource://activity-stream/data/content/assets/illustration-gift@2x.png');\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 180px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0;\n height: 160px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -105px;\n margin-inline-end: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n }\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 230px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\n margin-top: 40px;\n margin-inline-start: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
+ ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url('resource://activity-stream/data/content/assets/illustration-addons@2x.png');\n }\n\n &.privatebrowsing {\n background-image: url('resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png');\n }\n\n &.screenshots {\n background-image: url('resource://activity-stream/data/content/assets/illustration-screenshots@2x.png');\n }\n\n &.gift {\n background-image: url('resource://activity-stream/data/content/assets/illustration-gift@2x.png');\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 180px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0;\n height: 160px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -105px;\n margin-inline-end: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n }\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 230px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\n margin-top: 40px;\n margin-inline-start: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n",
+ ".EOYSnippetForm {\n margin-top: 12px;\n align-self: start;\n font-size: 12px;\n display: flex;\n align-items: center;\n\n .donation-amount,\n .donation-form-url {\n white-space: nowrap;\n font-size: 14px;\n padding: 5px 14px;\n border-radius: 2px;\n }\n\n .donation-amount {\n color: $grey-90;\n margin-inline-end: 18px;\n border: 1px solid $grey-40;\n background: $grey-10;\n cursor: pointer;\n }\n\n input {\n &[type='radio'] {\n opacity: 0;\n margin-inline-end: -18px;\n\n &:checked+.donation-amount {\n background: $grey-50;\n color: $white;\n border: 1px solid $grey-60;\n }\n }\n }\n\n .monthly-checkbox-container {\n width: 100%;\n }\n\n .donation-form-url {\n margin-inline-start: 18px;\n background-color: $snippets-donation-button-bg;\n border: 0;\n color: $white;\n align-self: flex-end;\n display: flex;\n cursor: pointer;\n }\n}\n"
],
"names": [],
- "mappings": "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"
+ "mappings": "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"
}
\ No newline at end of file
diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js b/browser/components/newtab/data/content/activity-stream.bundle.js
index d34a75c68ec9..b3b747f7ea2c 100644
--- a/browser/components/newtab/data/content/activity-stream.bundle.js
+++ b/browser/components/newtab/data/content/activity-stream.bundle.js
@@ -93,17 +93,17 @@ __webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var content_src_lib_snippets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var content_src_asrouter_asrouter_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4);
-/* harmony import */ var content_src_components_Base_Base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18);
-/* harmony import */ var content_src_lib_detect_user_session_start__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46);
-/* harmony import */ var content_src_lib_asroutercontent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47);
+/* harmony import */ var content_src_components_Base_Base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
+/* harmony import */ var content_src_lib_detect_user_session_start__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(40);
+/* harmony import */ var content_src_lib_asroutercontent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41);
/* harmony import */ var content_src_lib_init_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_9__);
-/* harmony import */ var common_Reducers_jsm__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(50);
+/* harmony import */ var common_Reducers_jsm__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(45);
@@ -928,15 +928,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var content_src_lib_init_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
/* harmony import */ var _rich_text_strings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
/* harmony import */ var _components_ImpressionsWrapper_ImpressionsWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8);
-/* harmony import */ var fluent_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49);
-/* harmony import */ var _templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52);
+/* harmony import */ var fluent_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44);
+/* harmony import */ var _templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_7__);
-/* harmony import */ var _templates_SendToDeviceSnippet_SendToDeviceSnippet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51);
-/* harmony import */ var _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(16);
-/* harmony import */ var _templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12);
+/* harmony import */ var _templates_template_manifest__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(42);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
@@ -949,16 +947,6 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
-
-
-// Key names matching schema name of templates
-const SnippetComponents = {
- simple_snippet: _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_9__["SimpleSnippet"],
- newsletter_snippet: props => react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__["SubmitFormSnippet"], _extends({}, props, { form_method: "POST" })),
- fxa_signup_snippet: props => react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__["SubmitFormSnippet"], _extends({}, props, { form_method: "GET" })),
- send_to_device_snippet: _templates_SendToDeviceSnippet_SendToDeviceSnippet__WEBPACK_IMPORTED_MODULE_8__["SendToDeviceSnippet"]
-};
-
const INCOMING_MESSAGE_NAME = "ASRouter:parent-to-child";
const OUTGOING_MESSAGE_NAME = "ASRouter:child-to-parent";
const ASR_CONTAINER_ID = "asr-newtab-container";
@@ -1136,7 +1124,7 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_6___default.a.Pur
}
renderSnippets() {
- const SnippetComponent = SnippetComponents[this.state.message.template];
+ const SnippetComponent = _templates_template_manifest__WEBPACK_IMPORTED_MODULE_8__["SnippetsTemplates"][this.state.message.template];
const { content } = this.state.message;
return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(
@@ -1406,7 +1394,7 @@ module.exports = Redux;
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RICH_TEXT_KEYS", function() { return RICH_TEXT_KEYS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generateMessages", function() { return generateMessages; });
-/* harmony import */ var fluent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
+/* harmony import */ var fluent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43);
/**
@@ -1539,581 +1527,26 @@ module.exports = ReactDOM;
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubmitFormSnippet", function() { return SubmitFormSnippet; });
-/* harmony import */ var _components_Button_Button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _components_RichText_RichText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
-/* harmony import */ var _SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
-/* harmony import */ var _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17);
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
-
-
-
-
-
-
-
-class SubmitFormSnippet extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent {
- constructor(props) {
- super(props);
- this.expandSnippet = this.expandSnippet.bind(this);
- this.handleSubmit = this.handleSubmit.bind(this);
- this.onInputChange = this.onInputChange.bind(this);
- this.state = {
- expanded: false,
- signupSubmitted: false,
- signupSuccess: false,
- disableForm: false
- };
- }
-
- handleSubmit(event) {
- var _this = this;
-
- return _asyncToGenerator(function* () {
- let json;
-
- if (_this.state.disableForm) {
- return;
- }
-
- event.preventDefault();
- _this.setState({ disableForm: true });
- _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "conversion-subscribe-activation", id: "NEWTAB_FOOTER_BAR_CONTENT" });
-
- if (_this.props.form_method.toUpperCase() === "GET") {
- _this.refs.form.submit();
- return;
- }
-
- const { url, formData } = _this.props.processFormData ? _this.props.processFormData(_this.refs.mainInput, _this.props) : { url: _this.refs.form.action, formData: new FormData(_this.refs.form) };
-
- try {
- const fetchRequest = new Request(url, { body: formData, method: "POST" });
- const response = yield fetch(fetchRequest);
- json = yield response.json();
- } catch (err) {
- console.log(err); // eslint-disable-line no-console
- }
-
- if (json && json.status === "ok") {
- _this.setState({ signupSuccess: true, signupSubmitted: true });
- _this.props.onBlock({ preventDismiss: true });
- _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-success", id: "NEWTAB_FOOTER_BAR_CONTENT" });
- } else {
- console.error("There was a problem submitting the form", json || "[No JSON response]"); // eslint-disable-line no-console
- _this.setState({ signupSuccess: false, signupSubmitted: true });
- _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-error", id: "NEWTAB_FOOTER_BAR_CONTENT" });
- }
-
- _this.setState({ disableForm: false });
- })();
- }
-
- expandSnippet() {
- this.setState({
- expanded: true,
- signupSuccess: false,
- signupSubmitted: false
- });
- }
-
- renderHiddenFormInputs() {
- const { hidden_inputs } = this.props.content;
-
- if (!hidden_inputs) {
- return null;
- }
-
- return Object.keys(hidden_inputs).map((key, idx) => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { key: idx, type: "hidden", name: key, value: hidden_inputs[key] }));
- }
-
- renderDisclaimer() {
- const { content } = this.props;
- if (!content.scene2_disclaimer_html) {
- return null;
- }
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "p",
- { className: "disclaimerText" },
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_components_RichText_RichText__WEBPACK_IMPORTED_MODULE_2__["RichText"], { text: content.scene2_disclaimer_html,
- localization_id: "disclaimer_html",
- links: content.links,
- autoBlock: false,
- sendClick: this.props.sendClick })
- );
- }
-
- renderFormPrivacyNotice() {
- const { content } = this.props;
- if (!content.scene2_privacy_html) {
- return null;
- }
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "label",
- { className: "privacyNotice", htmlFor: "id_privacy" },
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "p",
- null,
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { type: "checkbox", id: "id_privacy", name: "privacy", required: "required" }),
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "span",
- null,
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_components_RichText_RichText__WEBPACK_IMPORTED_MODULE_2__["RichText"], { text: content.scene2_privacy_html,
- localization_id: "privacy_html",
- links: content.links,
- autoBlock: false,
- sendClick: this.props.sendClick })
- )
- )
- );
- }
-
- renderSignupSubmitted() {
- const { content } = this.props;
- const isSuccess = this.state.signupSuccess;
- const successTitle = isSuccess && content.success_title;
- const bodyText = isSuccess ? content.success_text : content.error_text;
- const retryButtonText = content.scene1_button_label;
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_4__["SnippetBase"],
- this.props,
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "div",
- { className: "submissionStatus" },
- successTitle ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "h2",
- { className: "submitStatusTitle" },
- successTitle
- ) : null,
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "p",
- null,
- bodyText,
- isSuccess ? null : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- _components_Button_Button__WEBPACK_IMPORTED_MODULE_0__["Button"],
- { onClick: this.expandSnippet },
- retryButtonText
- )
- )
- )
- );
- }
-
- onInputChange(event) {
- if (!this.props.validateInput) {
- return;
- }
- const hasError = this.props.validateInput(event.target.value, this.props.content);
- event.target.setCustomValidity(hasError);
- }
-
- renderInput() {
- const placholder = this.props.content.scene2_email_placeholder_text || this.props.content.scene2_input_placeholder;
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", {
- ref: "mainInput",
- type: this.props.inputType || "email",
- className: "mainInput",
- name: "email",
- required: true,
- placeholder: placholder,
- onChange: this.props.validateInput ? this.onInputChange : null,
- autoFocus: true });
- }
-
- renderSignupView() {
- const { content } = this.props;
- const containerClass = `SubmitFormSnippet ${this.props.className}`;
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_4__["SnippetBase"],
- _extends({}, this.props, { className: containerClass, footerDismiss: true }),
- content.scene2_icon ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "div",
- { className: "scene2Icon" },
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("img", { src: content.scene2_icon })
- ) : null,
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "div",
- { className: "message" },
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "p",
- null,
- content.scene2_text
- )
- ),
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "form",
- { action: content.form_action, method: this.props.form_method, onSubmit: this.handleSubmit, ref: "form" },
- this.renderHiddenFormInputs(),
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "div",
- null,
- this.renderInput(),
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "button",
- { type: "submit", className: "ASRouterButton primary", ref: "formSubmitBtn" },
- content.scene2_button_label
- )
- ),
- this.renderFormPrivacyNotice() || this.renderDisclaimer()
- )
- );
- }
-
- getFirstSceneContent() {
- return Object.keys(this.props.content).filter(key => key.includes("scene1")).reduce((acc, key) => {
- acc[key.substr(7)] = this.props.content[key];
- return acc;
- }, {});
- }
-
- render() {
- const content = Object.assign({}, this.props.content, this.getFirstSceneContent());
-
- if (this.state.signupSubmitted) {
- return this.renderSignupSubmitted();
- }
- if (this.state.expanded) {
- return this.renderSignupView();
- }
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_3__["SimpleSnippet"], _extends({}, this.props, { content: content, onButtonClick: this.expandSnippet }));
- }
-}
-
-/***/ }),
-/* 13 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return Button; });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
-
-
-const ALLOWED_STYLE_TAGS = ["color", "backgroundColor"];
-
-const Button = props => {
- const style = {};
-
- // Add allowed style tags from props, e.g. props.color becomes style={color: props.color}
- for (const tag of ALLOWED_STYLE_TAGS) {
- if (typeof props[tag] !== "undefined") {
- style[tag] = props[tag];
- }
- }
- // remove border if bg is set to something custom
- if (style.backgroundColor) {
- style.border = "0";
- }
-
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(
- "button",
- { onClick: props.onClick,
- className: props.className || "ASRouterButton",
- style: style },
- props.children
- );
-};
-
-/***/ }),
-/* 14 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertLinks", function() { return convertLinks; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RichText", function() { return RichText; });
-/* harmony import */ var fluent_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49);
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _rich_text_strings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
-/* harmony import */ var _template_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-
-
-
-
-
-// Elements allowed in snippet content
-const ALLOWED_TAGS = {
- b: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("b", null),
- i: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("i", null),
- u: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("u", null),
- strong: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("strong", null),
- em: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("em", null),
- br: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("br", null)
-};
-
-/**
- * Transform an object (tag name: {url}) into (tag name: anchor) where the url
- * is used as href, in order to render links inside a Fluent.Localized component.
- */
-function convertLinks(links, sendClick, autoBlock) {
- if (links) {
- return Object.keys(links).reduce((acc, linkTag) => {
- const { action } = links[linkTag];
- // Setting the value to false will not include the attribute in the anchor
- const url = action ? false : Object(_template_utils__WEBPACK_IMPORTED_MODULE_3__["safeURI"])(links[linkTag].url);
-
- acc[linkTag] = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("a", { href: url,
- target: autoBlock === false ? "_blank" : "",
- "data-metric": links[linkTag].metric,
- "data-action": action,
- "data-args": links[linkTag].args,
- "data-do_not_autoblock": autoBlock === false,
- onClick: sendClick });
- return acc;
- }, {});
- }
-
- return null;
-}
-
-/**
- * Message wrapper used to sanitize markup and render HTML.
- */
-function RichText(props) {
- if (!_rich_text_strings__WEBPACK_IMPORTED_MODULE_2__["RICH_TEXT_KEYS"].includes(props.localization_id)) {
- throw new Error(`ASRouter: ${props.localization_id} is not a valid rich text property. If you want it to be processed, you need to add it to asrouter/rich-text-strings.js`);
- }
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- fluent_react__WEBPACK_IMPORTED_MODULE_0__["Localized"],
- _extends({ id: props.localization_id }, ALLOWED_TAGS, convertLinks(props.links, props.sendClick, props.autoBlock)),
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "span",
- null,
- props.text
- )
- );
-}
-
-/***/ }),
-/* 15 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "safeURI", function() { return safeURI; });
-function safeURI(url) {
- if (!url) {
- return "";
- }
- const { protocol } = new URL(url);
- const isAllowed = ["http:", "https:", "data:", "resource:", "chrome:"].includes(protocol);
- if (!isAllowed) {
- console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console
- }
- return isAllowed ? url : "";
-}
-
-/***/ }),
-/* 16 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleSnippet", function() { return SimpleSnippet; });
-/* harmony import */ var _components_Button_Button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _components_RichText_RichText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
-/* harmony import */ var _template_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
-/* harmony import */ var _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17);
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-
-
-
-
-
-
-const DEFAULT_ICON_PATH = "chrome://branding/content/icon64.png";
-
-class SimpleSnippet extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent {
- constructor(props) {
- super(props);
- this.onButtonClick = this.onButtonClick.bind(this);
- }
-
- onButtonClick() {
- if (this.props.provider !== "preview") {
- this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", id: this.props.UISurface });
- }
- const { button_url } = this.props.content;
- // If button_url is defined handle it as OPEN_URL action
- const type = this.props.content.button_action || button_url && "OPEN_URL";
- this.props.onAction({
- type,
- data: { args: this.props.content.button_action_args || button_url }
- });
- if (!this.props.content.do_not_autoblock) {
- this.props.onBlock();
- }
- }
-
- renderTitle() {
- const { title } = this.props.content;
- return title ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "h3",
- { className: "title" },
- title
- ) : null;
- }
-
- renderTitleIcon() {
- const titleIcon = Object(_template_utils__WEBPACK_IMPORTED_MODULE_3__["safeURI"])(this.props.content.title_icon);
- return titleIcon ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { className: "titleIcon", style: { backgroundImage: `url("${titleIcon}")` } }) : null;
- }
-
- renderButton() {
- const { props } = this;
- if (!props.content.button_action && !props.onButtonClick && !props.content.button_url) {
- return null;
- }
-
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- _components_Button_Button__WEBPACK_IMPORTED_MODULE_0__["Button"],
- {
- onClick: props.onButtonClick || this.onButtonClick,
- color: props.content.button_color,
- backgroundColor: props.content.button_background_color },
- props.content.button_label
- );
- }
-
- renderText() {
- const { props } = this;
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_components_RichText_RichText__WEBPACK_IMPORTED_MODULE_2__["RichText"], { text: props.content.text,
- localization_id: "text",
- links: props.content.links,
- sendClick: props.sendClick });
- }
-
- render() {
- const { props } = this;
- const className = `SimpleSnippet${props.content.tall ? " tall" : ""}`;
- return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_4__["SnippetBase"],
- _extends({}, props, { className: className }),
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("img", { src: Object(_template_utils__WEBPACK_IMPORTED_MODULE_3__["safeURI"])(props.content.icon) || DEFAULT_ICON_PATH, className: "icon" }),
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "div",
- null,
- this.renderTitleIcon(),
- " ",
- this.renderTitle(),
- " ",
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "p",
- { className: "body" },
- this.renderText()
- )
- ),
- react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
- "div",
- null,
- this.renderButton()
- )
- );
- }
-}
-
-/***/ }),
-/* 17 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SnippetBase", function() { return SnippetBase; });
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
-/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
-
-
-class SnippetBase extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent {
- constructor(props) {
- super(props);
- this.onBlockClicked = this.onBlockClicked.bind(this);
- }
-
- onBlockClicked() {
- if (this.props.provider !== "preview") {
- this.props.sendUserActionTelemetry({ event: "BLOCK", id: this.props.UISurface });
- }
-
- this.props.onBlock();
- }
-
- renderDismissButton() {
- if (this.props.footerDismiss) {
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(
- "div",
- { className: "footer" },
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(
- "div",
- { className: "footer-content" },
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(
- "button",
- {
- className: "ASRouterButton secondary",
- onClick: this.props.onDismiss },
- this.props.content.scene2_dismiss_button_text
- )
- )
- );
- }
-
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("button", { className: "blockButton", title: this.props.content.block_button_text, onClick: this.onBlockClicked });
- }
-
- render() {
- const { props } = this;
-
- const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : ""}`;
-
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(
- "div",
- { className: containerClassName },
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(
- "div",
- { className: "innerWrapper" },
- props.children
- ),
- this.renderDismissButton()
- );
- }
-}
-
-/***/ }),
-/* 18 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
"use strict";
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_Base", function() { return _Base; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseContent", function() { return BaseContent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Base", function() { return Base; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var content_src_components_ASRouterAdmin_ASRouterAdmin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
-/* harmony import */ var content_src_components_ConfirmDialog_ConfirmDialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);
+/* harmony import */ var content_src_components_ASRouterAdmin_ASRouterAdmin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
+/* harmony import */ var content_src_components_ConfirmDialog_ConfirmDialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
-/* harmony import */ var content_src_components_ErrorBoundary_ErrorBoundary__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
-/* harmony import */ var content_src_components_ManualMigration_ManualMigration__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24);
-/* harmony import */ var common_PrerenderData_jsm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(25);
+/* harmony import */ var content_src_components_ErrorBoundary_ErrorBoundary__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17);
+/* harmony import */ var content_src_components_ManualMigration_ManualMigration__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(18);
+/* harmony import */ var common_PrerenderData_jsm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(19);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_8__);
-/* harmony import */ var content_src_components_Search_Search__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(26);
-/* harmony import */ var content_src_components_Sections_Sections__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28);
-/* harmony import */ var content_src_components_StartupOverlay_StartupOverlay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(45);
+/* harmony import */ var content_src_components_Search_Search__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20);
+/* harmony import */ var content_src_components_Sections_Sections__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(22);
+/* harmony import */ var content_src_components_StartupOverlay_StartupOverlay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(39);
@@ -2199,8 +1632,11 @@ class _Base extends react__WEBPACK_IMPORTED_MODULE_8___default.a.PureComponent {
const { initialized } = App;
const prefs = props.Prefs.values;
- if (prefs["asrouter.devtoolsEnabled"] && window.location.hash === "#asrouter") {
- return react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(content_src_components_ASRouterAdmin_ASRouterAdmin__WEBPACK_IMPORTED_MODULE_2__["ASRouterAdmin"], null);
+ if (prefs["asrouter.devtoolsEnabled"]) {
+ if (window.location.hash === "#asrouter") {
+ return react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(content_src_components_ASRouterAdmin_ASRouterAdmin__WEBPACK_IMPORTED_MODULE_2__["ASRouterAdmin"], null);
+ }
+ console.log("ASRouter devtools enabled. To access visit %cabout:newtab#asrouter", "font-weight: bold"); // eslint-disable-line no-console
}
if (!props.isPrerendered && !initialized) {
@@ -2301,13 +1737,13 @@ const Base = Object(react_redux__WEBPACK_IMPORTED_MODULE_4__["connect"])(state =
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1)))
/***/ }),
-/* 19 */
+/* 13 */
/***/ (function(module, exports) {
module.exports = ReactIntl;
/***/ }),
-/* 20 */
+/* 14 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -2323,8 +1759,10 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
constructor(props) {
super(props);
this.onMessage = this.onMessage.bind(this);
+ this.handleEnabledToggle = this.handleEnabledToggle.bind(this);
+ this.onChangeMessageFilter = this.onChangeMessageFilter.bind(this);
this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);
- this.state = {};
+ this.state = { messageFilter: "all" };
}
onMessage({ data: action }) {
@@ -2373,6 +1811,10 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
_asrouter_asrouter_content__WEBPACK_IMPORTED_MODULE_0__["ASRouterUtils"].sendMessage({ type: "EXPIRE_QUERY_CACHE" });
}
+ resetPref() {
+ _asrouter_asrouter_content__WEBPACK_IMPORTED_MODULE_0__["ASRouterUtils"].sendMessage({ type: "RESET_PROVIDER_PREF" });
+ }
+
renderMessageItem(msg) {
const isCurrent = msg.id === this.state.lastMessageId;
const isBlocked = this.state.messageBlockList.includes(msg.id);
@@ -2434,13 +1876,43 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
if (!this.state.messages) {
return null;
}
+ const messagesToShow = this.state.messageFilter === "all" ? this.state.messages : this.state.messages.filter(message => message.provider === this.state.messageFilter);
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"table",
null,
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"tbody",
null,
- this.state.messages.map(msg => this.renderMessageItem(msg))
+ messagesToShow.map(msg => this.renderMessageItem(msg))
+ )
+ );
+ }
+
+ onChangeMessageFilter(event) {
+ this.setState({ messageFilter: event.target.value });
+ }
+
+ renderMessageFilter() {
+ if (!this.state.providers) {
+ return null;
+ }
+ return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
+ "p",
+ null,
+ "Show messages from ",
+ react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
+ "select",
+ { value: this.state.messageFilter, onChange: this.onChangeMessageFilter },
+ react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
+ "option",
+ { value: "all" },
+ "all providers"
+ ),
+ this.state.providers.map(provider => react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
+ "option",
+ { key: provider.id, value: provider.id },
+ provider.id
+ ))
)
);
}
@@ -2457,6 +1929,11 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
null,
"id"
),
+ react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
+ "td",
+ null,
+ "enabled"
+ ),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
@@ -2471,7 +1948,15 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
);
}
+ handleEnabledToggle(event) {
+ const action = { type: event.target.checked ? "ENABLE_PROVIDER" : "DISABLE_PROVIDER", data: event.target.name };
+ _asrouter_asrouter_content__WEBPACK_IMPORTED_MODULE_0__["ASRouterUtils"].sendMessage(action);
+ this.setState({ messageFilter: "all" });
+ }
+
renderProviders() {
+ const providersConfig = this.state.providerPrefs;
+ const providerInfo = this.state.providers;
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"table",
null,
@@ -2479,13 +1964,15 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"tbody",
null,
- this.state.providers.map((provider, i) => {
+ providersConfig.map((provider, i) => {
+ const isTestProvider = provider.id === "snippets_local_testing";
+ const info = providerInfo.find(p => p.id === provider.id) || {};
let label = "(local)";
if (provider.type === "remote") {
label = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"a",
- { target: "_blank", href: provider.url },
- provider.url
+ { target: "_blank", href: info.url },
+ info.url
);
} else if (provider.type === "remote-settings") {
label = `${provider.bucket} (Remote Settings)`;
@@ -2501,12 +1988,17 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
- label
+ isTestProvider ? null : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { type: "checkbox", name: provider.id, checked: provider.enabled, onChange: this.handleEnabledToggle })
),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
- provider.lastUpdated ? new Date(provider.lastUpdated).toString() : ""
+ label
+ ),
+ react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
+ "td",
+ { style: { whiteSpace: "nowrap" } },
+ info.lastUpdated ? new Date(info.lastUpdated).toLocaleString() : ""
)
);
})
@@ -2539,19 +2031,25 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
null,
"Message Providers"
),
+ react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
+ "button",
+ { className: "button", onClick: this.resetPref },
+ "Restore defaults"
+ ),
this.state.providers ? this.renderProviders() : null,
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"h2",
null,
"Messages"
),
+ this.renderMessageFilter(),
this.renderMessages()
);
}
}
/***/ }),
-/* 21 */
+/* 15 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -2559,9 +2057,9 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_ConfirmDialog", function() { return _ConfirmDialog; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConfirmDialog", function() { return ConfirmDialog; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
@@ -2663,20 +2161,20 @@ class _ConfirmDialog extends react__WEBPACK_IMPORTED_MODULE_3___default.a.PureCo
const ConfirmDialog = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["connect"])(state => state.Dialog)(_ConfirmDialog);
/***/ }),
-/* 22 */
+/* 16 */
/***/ (function(module, exports) {
module.exports = ReactRedux;
/***/ }),
-/* 23 */
+/* 17 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorBoundaryFallback", function() { return ErrorBoundaryFallback; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorBoundary", function() { return ErrorBoundary; });
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
@@ -2756,7 +2254,7 @@ class ErrorBoundary extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
ErrorBoundary.defaultProps = { FallbackComponent: ErrorBoundaryFallback };
/***/ }),
-/* 24 */
+/* 18 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -2764,9 +2262,9 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_ManualMigration", function() { return _ManualMigration; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ManualMigration", function() { return ManualMigration; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
@@ -2831,7 +2329,7 @@ class _ManualMigration extends react__WEBPACK_IMPORTED_MODULE_3___default.a.Pure
const ManualMigration = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["connect"])()(_ManualMigration);
/***/ }),
-/* 25 */
+/* 19 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -2933,19 +2431,19 @@ var PrerenderData = new _PrerenderData({
});
/***/ }),
-/* 26 */
+/* 20 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_Search", function() { return _Search; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Search", function() { return Search; });
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var content_src_lib_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27);
+/* harmony import */ var content_src_lib_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* globals ContentSearchUIController */
@@ -3061,7 +2559,7 @@ class _Search extends react__WEBPACK_IMPORTED_MODULE_4___default.a.PureComponent
const Search = Object(react_redux__WEBPACK_IMPORTED_MODULE_2__["connect"])()(Object(react_intl__WEBPACK_IMPORTED_MODULE_0__["injectIntl"])(_Search));
/***/ }),
-/* 27 */
+/* 21 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -3071,7 +2569,7 @@ const IS_NEWTAB = global.document && global.document.documentURI === "about:newt
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1)))
/***/ }),
-/* 28 */
+/* 22 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -3081,19 +2579,19 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_Sections", function() { return _Sections; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Sections", function() { return Sections; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var content_src_components_Card_Card__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
+/* harmony import */ var content_src_components_Card_Card__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var content_src_components_CollapsibleSection_CollapsibleSection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
-/* harmony import */ var content_src_components_ComponentPerfTimer_ComponentPerfTimer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22);
+/* harmony import */ var content_src_components_CollapsibleSection_CollapsibleSection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27);
+/* harmony import */ var content_src_components_ComponentPerfTimer_ComponentPerfTimer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_5__);
-/* harmony import */ var content_src_components_MoreRecommendations_MoreRecommendations__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38);
-/* harmony import */ var content_src_components_PocketLoggedInCta_PocketLoggedInCta__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(39);
+/* harmony import */ var content_src_components_MoreRecommendations_MoreRecommendations__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32);
+/* harmony import */ var content_src_components_PocketLoggedInCta_PocketLoggedInCta__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_8__);
-/* harmony import */ var content_src_components_Topics_Topics__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(40);
-/* harmony import */ var content_src_components_TopSites_TopSites__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(41);
+/* harmony import */ var content_src_components_Topics_Topics__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34);
+/* harmony import */ var content_src_components_TopSites_TopSites__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(35);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
@@ -3400,7 +2898,7 @@ const Sections = Object(react_redux__WEBPACK_IMPORTED_MODULE_5__["connect"])(sta
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1)))
/***/ }),
-/* 29 */
+/* 23 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -3627,7 +3125,7 @@ const LinkMenuOptions = {
};
/***/ }),
-/* 30 */
+/* 24 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -3635,12 +3133,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_LinkMenu", function() { return _LinkMenu; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LinkMenu", function() { return LinkMenu; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var content_src_components_ContextMenu_ContextMenu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
+/* harmony import */ var content_src_components_ContextMenu_ContextMenu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var content_src_lib_link_menu_options__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29);
+/* harmony import */ var content_src_lib_link_menu_options__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
@@ -3701,7 +3199,7 @@ const getState = state => ({ isPrivateBrowsingEnabled: state.Prefs.values.isPriv
const LinkMenu = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["connect"])(getState)(Object(react_intl__WEBPACK_IMPORTED_MODULE_3__["injectIntl"])(_LinkMenu));
/***/ }),
-/* 31 */
+/* 25 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -3800,7 +3298,7 @@ class ContextMenuItem extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureC
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1)))
/***/ }),
-/* 32 */
+/* 26 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -3857,21 +3355,21 @@ const ScreenshotUtils = {
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1)))
/***/ }),
-/* 33 */
+/* 27 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_CollapsibleSection", function() { return _CollapsibleSection; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CollapsibleSection", function() { return CollapsibleSection; });
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
-/* harmony import */ var content_src_components_ErrorBoundary_ErrorBoundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
+/* harmony import */ var content_src_components_ErrorBoundary_ErrorBoundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var content_src_components_SectionMenu_SectionMenu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(34);
-/* harmony import */ var content_src_lib_section_menu_options__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35);
+/* harmony import */ var content_src_components_SectionMenu_SectionMenu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(28);
+/* harmony import */ var content_src_lib_section_menu_options__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29);
@@ -4113,7 +3611,7 @@ const CollapsibleSection = Object(react_intl__WEBPACK_IMPORTED_MODULE_0__["injec
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1)))
/***/ }),
-/* 34 */
+/* 28 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -4121,12 +3619,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_SectionMenu", function() { return _SectionMenu; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SectionMenu", function() { return SectionMenu; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var content_src_components_ContextMenu_ContextMenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
+/* harmony import */ var content_src_components_ContextMenu_ContextMenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var content_src_lib_section_menu_options__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35);
+/* harmony import */ var content_src_lib_section_menu_options__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29);
@@ -4185,7 +3683,7 @@ class _SectionMenu extends react__WEBPACK_IMPORTED_MODULE_3___default.a.PureComp
const SectionMenu = Object(react_intl__WEBPACK_IMPORTED_MODULE_2__["injectIntl"])(_SectionMenu);
/***/ }),
-/* 35 */
+/* 29 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -4274,14 +3772,14 @@ const SectionMenuOptions = {
};
/***/ }),
-/* 36 */
+/* 30 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentPerfTimer", function() { return ComponentPerfTimer; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var common_PerfService_jsm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37);
+/* harmony import */ var common_PerfService_jsm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
@@ -4448,7 +3946,7 @@ class ComponentPerfTimer extends react__WEBPACK_IMPORTED_MODULE_2___default.a.Co
}
/***/ }),
-/* 37 */
+/* 31 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -4583,13 +4081,13 @@ _PerfService.prototype = {
var perfService = new _PerfService();
/***/ }),
-/* 38 */
+/* 32 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoreRecommendations", function() { return MoreRecommendations; });
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
@@ -4611,16 +4109,16 @@ class MoreRecommendations extends react__WEBPACK_IMPORTED_MODULE_1___default.a.P
}
/***/ }),
-/* 39 */
+/* 33 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_PocketLoggedInCta", function() { return _PocketLoggedInCta; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PocketLoggedInCta", function() { return PocketLoggedInCta; });
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
@@ -4655,14 +4153,14 @@ class _PocketLoggedInCta extends react__WEBPACK_IMPORTED_MODULE_2___default.a.Pu
const PocketLoggedInCta = Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])(state => ({ Pocket: state.Pocket }))(_PocketLoggedInCta);
/***/ }),
-/* 40 */
+/* 34 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Topic", function() { return Topic; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Topics", function() { return Topics; });
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
@@ -4705,7 +4203,7 @@ class Topics extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent
}
/***/ }),
-/* 41 */
+/* 35 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -4713,19 +4211,19 @@ __webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_TopSites", function() { return _TopSites; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TopSites", function() { return TopSites; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var _TopSitesConstants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
-/* harmony import */ var content_src_components_CollapsibleSection_CollapsibleSection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
-/* harmony import */ var content_src_components_ComponentPerfTimer_ComponentPerfTimer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);
+/* harmony import */ var _TopSitesConstants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36);
+/* harmony import */ var content_src_components_CollapsibleSection_CollapsibleSection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27);
+/* harmony import */ var content_src_components_ComponentPerfTimer_ComponentPerfTimer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
-/* harmony import */ var _SearchShortcutsForm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(43);
-/* harmony import */ var common_Reducers_jsm__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(50);
-/* harmony import */ var _TopSiteForm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54);
-/* harmony import */ var _TopSite__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(44);
+/* harmony import */ var _SearchShortcutsForm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(37);
+/* harmony import */ var common_Reducers_jsm__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(45);
+/* harmony import */ var _TopSiteForm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(48);
+/* harmony import */ var _TopSite__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(38);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
@@ -4914,7 +4412,7 @@ const TopSites = Object(react_redux__WEBPACK_IMPORTED_MODULE_4__["connect"])(sta
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1)))
/***/ }),
-/* 42 */
+/* 36 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -4934,18 +4432,18 @@ const MIN_RICH_FAVICON_SIZE = 96;
const MIN_CORNER_FAVICON_SIZE = 16;
/***/ }),
-/* 43 */
+/* 37 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchShortcutsForm", function() { return SearchShortcutsForm; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _TopSitesConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
+/* harmony import */ var _TopSitesConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36);
@@ -5114,7 +4612,7 @@ class SearchShortcutsForm extends react__WEBPACK_IMPORTED_MODULE_2___default.a.P
}
/***/ }),
-/* 44 */
+/* 38 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -5125,14 +4623,14 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_TopSiteList", function() { return _TopSiteList; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TopSiteList", function() { return TopSiteList; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _TopSitesConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
-/* harmony import */ var content_src_components_LinkMenu_LinkMenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30);
+/* harmony import */ var _TopSitesConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36);
+/* harmony import */ var content_src_components_LinkMenu_LinkMenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
-/* harmony import */ var content_src_lib_screenshot_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(32);
-/* harmony import */ var common_Reducers_jsm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50);
+/* harmony import */ var content_src_lib_screenshot_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26);
+/* harmony import */ var common_Reducers_jsm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
@@ -5657,7 +5155,7 @@ class _TopSiteList extends react__WEBPACK_IMPORTED_MODULE_4___default.a.PureComp
const TopSiteList = Object(react_intl__WEBPACK_IMPORTED_MODULE_1__["injectIntl"])(_TopSiteList);
/***/ }),
-/* 45 */
+/* 39 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -5665,9 +5163,9 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_StartupOverlay", function() { return _StartupOverlay; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StartupOverlay", function() { return StartupOverlay; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
+/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);
+/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
@@ -5885,14 +5383,14 @@ const getState = state => ({ fxa_endpoint: state.Prefs.values.fxa_endpoint });
const StartupOverlay = Object(react_redux__WEBPACK_IMPORTED_MODULE_2__["connect"])(getState)(Object(react_intl__WEBPACK_IMPORTED_MODULE_1__["injectIntl"])(_StartupOverlay));
/***/ }),
-/* 46 */
+/* 40 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetectUserSessionStart", function() { return DetectUserSessionStart; });
/* harmony import */ var common_Actions_jsm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
-/* harmony import */ var common_PerfService_jsm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37);
+/* harmony import */ var common_PerfService_jsm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31);
@@ -5960,7 +5458,7 @@ class DetectUserSessionStart {
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1)))
/***/ }),
-/* 47 */
+/* 41 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -5983,7 +5481,774 @@ function enableASRouterContent(store, asrouterContent) {
}
/***/ }),
-/* 48 */
+/* 42 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXTERNAL MODULE: external "React"
+var external_React_ = __webpack_require__(9);
+var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
+
+// CONCATENATED MODULE: ./content-src/asrouter/components/Button/Button.jsx
+
+
+const ALLOWED_STYLE_TAGS = ["color", "backgroundColor"];
+
+const Button = props => {
+ const style = {};
+
+ // Add allowed style tags from props, e.g. props.color becomes style={color: props.color}
+ for (const tag of ALLOWED_STYLE_TAGS) {
+ if (typeof props[tag] !== "undefined") {
+ style[tag] = props[tag];
+ }
+ }
+ // remove border if bg is set to something custom
+ if (style.backgroundColor) {
+ style.border = "0";
+ }
+
+ return external_React_default.a.createElement(
+ "button",
+ { onClick: props.onClick,
+ className: props.className || "ASRouterButton",
+ style: style },
+ props.children
+ );
+};
+// EXTERNAL MODULE: ./node_modules/fluent-react/src/index.js + 7 modules
+var src = __webpack_require__(44);
+
+// EXTERNAL MODULE: ./content-src/asrouter/rich-text-strings.js
+var rich_text_strings = __webpack_require__(7);
+
+// CONCATENATED MODULE: ./content-src/asrouter/template-utils.js
+function safeURI(url) {
+ if (!url) {
+ return "";
+ }
+ const { protocol } = new URL(url);
+ const isAllowed = ["http:", "https:", "data:", "resource:", "chrome:"].includes(protocol);
+ if (!isAllowed) {
+ console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console
+ }
+ return isAllowed ? url : "";
+}
+// CONCATENATED MODULE: ./content-src/asrouter/components/RichText/RichText.jsx
+var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
+
+
+
+
+
+
+// Elements allowed in snippet content
+const ALLOWED_TAGS = {
+ b: external_React_default.a.createElement("b", null),
+ i: external_React_default.a.createElement("i", null),
+ u: external_React_default.a.createElement("u", null),
+ strong: external_React_default.a.createElement("strong", null),
+ em: external_React_default.a.createElement("em", null),
+ br: external_React_default.a.createElement("br", null)
+};
+
+/**
+ * Transform an object (tag name: {url}) into (tag name: anchor) where the url
+ * is used as href, in order to render links inside a Fluent.Localized component.
+ */
+function convertLinks(links, sendClick, doNotAutoBlock) {
+ if (links) {
+ return Object.keys(links).reduce((acc, linkTag) => {
+ const { action } = links[linkTag];
+ // Setting the value to false will not include the attribute in the anchor
+ const url = action ? false : safeURI(links[linkTag].url);
+
+ acc[linkTag] = external_React_default.a.createElement("a", { href: url,
+ target: doNotAutoBlock ? "_blank" : "",
+ "data-metric": links[linkTag].metric,
+ "data-action": action,
+ "data-args": links[linkTag].args,
+ "data-do_not_autoblock": doNotAutoBlock,
+ onClick: sendClick });
+ return acc;
+ }, {});
+ }
+
+ return null;
+}
+
+/**
+ * Message wrapper used to sanitize markup and render HTML.
+ */
+function RichText(props) {
+ if (!rich_text_strings["RICH_TEXT_KEYS"].includes(props.localization_id)) {
+ throw new Error(`ASRouter: ${props.localization_id} is not a valid rich text property. If you want it to be processed, you need to add it to asrouter/rich-text-strings.js`);
+ }
+ return external_React_default.a.createElement(
+ src["Localized"],
+ _extends({ id: props.localization_id }, ALLOWED_TAGS, props.customElements, convertLinks(props.links, props.sendClick, props.doNotAutoBlock)),
+ external_React_default.a.createElement(
+ "span",
+ null,
+ props.text
+ )
+ );
+}
+// CONCATENATED MODULE: ./content-src/asrouter/components/SnippetBase/SnippetBase.jsx
+
+
+class SnippetBase_SnippetBase extends external_React_default.a.PureComponent {
+ constructor(props) {
+ super(props);
+ this.onBlockClicked = this.onBlockClicked.bind(this);
+ }
+
+ onBlockClicked() {
+ if (this.props.provider !== "preview") {
+ this.props.sendUserActionTelemetry({ event: "BLOCK", id: this.props.UISurface });
+ }
+
+ this.props.onBlock();
+ }
+
+ renderDismissButton() {
+ if (this.props.footerDismiss) {
+ return external_React_default.a.createElement(
+ "div",
+ { className: "footer" },
+ external_React_default.a.createElement(
+ "div",
+ { className: "footer-content" },
+ external_React_default.a.createElement(
+ "button",
+ {
+ className: "ASRouterButton secondary",
+ onClick: this.props.onDismiss },
+ this.props.content.scene2_dismiss_button_text
+ )
+ )
+ );
+ }
+
+ return external_React_default.a.createElement("button", { className: "blockButton", title: this.props.content.block_button_text || "Remove this", onClick: this.onBlockClicked });
+ }
+
+ render() {
+ const { props } = this;
+
+ const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : ""}`;
+
+ return external_React_default.a.createElement(
+ "div",
+ { className: containerClassName, style: this.props.textStyle },
+ external_React_default.a.createElement(
+ "div",
+ { className: "innerWrapper" },
+ props.children
+ ),
+ this.renderDismissButton()
+ );
+ }
+}
+// CONCATENATED MODULE: ./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx
+var SimpleSnippet_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
+
+
+
+
+
+
+
+const DEFAULT_ICON_PATH = "chrome://branding/content/icon64.png";
+
+class SimpleSnippet_SimpleSnippet extends external_React_default.a.PureComponent {
+ constructor(props) {
+ super(props);
+ this.onButtonClick = this.onButtonClick.bind(this);
+ }
+
+ onButtonClick() {
+ if (this.props.provider !== "preview") {
+ this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", id: this.props.UISurface });
+ }
+ const { button_url } = this.props.content;
+ // If button_url is defined handle it as OPEN_URL action
+ const type = this.props.content.button_action || button_url && "OPEN_URL";
+ this.props.onAction({
+ type,
+ data: { args: this.props.content.button_action_args || button_url }
+ });
+ if (!this.props.content.do_not_autoblock) {
+ this.props.onBlock();
+ }
+ }
+
+ renderTitle() {
+ const { title } = this.props.content;
+ return title ? external_React_default.a.createElement(
+ "h3",
+ { className: "title" },
+ title
+ ) : null;
+ }
+
+ renderTitleIcon() {
+ const titleIcon = safeURI(this.props.content.title_icon);
+ return titleIcon ? external_React_default.a.createElement("span", { className: "titleIcon", style: { backgroundImage: `url("${titleIcon}")` } }) : null;
+ }
+
+ renderButton() {
+ const { props } = this;
+ if (!props.content.button_action && !props.onButtonClick && !props.content.button_url) {
+ return null;
+ }
+
+ return external_React_default.a.createElement(
+ Button,
+ {
+ onClick: props.onButtonClick || this.onButtonClick,
+ color: props.content.button_color,
+ backgroundColor: props.content.button_background_color },
+ props.content.button_label
+ );
+ }
+
+ renderText() {
+ const { props } = this;
+ return external_React_default.a.createElement(RichText, { text: props.content.text,
+ customElements: this.props.customElements,
+ localization_id: "text",
+ links: props.content.links,
+ sendClick: props.sendClick });
+ }
+
+ render() {
+ const { props } = this;
+ let className = "SimpleSnippet";
+ if (props.className) {
+ className += ` ${props.className}`;
+ }
+ if (props.content.tall) {
+ className += " tall";
+ }
+ return external_React_default.a.createElement(
+ SnippetBase_SnippetBase,
+ SimpleSnippet_extends({}, props, { className: className, textStyle: this.props.textStyle }),
+ external_React_default.a.createElement("img", { src: safeURI(props.content.icon) || DEFAULT_ICON_PATH, className: "icon" }),
+ external_React_default.a.createElement(
+ "div",
+ null,
+ this.renderTitleIcon(),
+ " ",
+ this.renderTitle(),
+ " ",
+ external_React_default.a.createElement(
+ "p",
+ { className: "body" },
+ this.renderText()
+ ),
+ this.props.extraContent
+ ),
+ external_React_default.a.createElement(
+ "div",
+ null,
+ this.renderButton()
+ )
+ );
+ }
+}
+// CONCATENATED MODULE: ./content-src/asrouter/templates/EOYSnippet/EOYSnippet.jsx
+var EOYSnippet_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
+
+
+
+
+class EOYSnippet_EOYSnippetBase extends external_React_default.a.PureComponent {
+ constructor(props) {
+ super(props);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ }
+
+ /**
+ * setFrequencyValue - `frequency` form parameter value should be `monthly`
+ * if `monthly-checkbox` is selected or `single` otherwise
+ */
+ setFrequencyValue() {
+ const frequencyCheckbox = this.refs.form.querySelector("#monthly-checkbox");
+ if (frequencyCheckbox.checked) {
+ this.refs.form.querySelector("[name='frequency']").value = "monthly";
+ }
+ }
+
+ handleSubmit(event) {
+ event.preventDefault();
+ this.setFrequencyValue();
+ this.refs.form.submit();
+ if (!this.props.content.do_not_autoblock) {
+ this.props.onBlock();
+ }
+ }
+
+ renderDonations() {
+ const fieldNames = ["first", "second", "third", "fourth"];
+ const numberFormat = new Intl.NumberFormat(this.props.content.locale || navigator.language, {
+ style: "currency",
+ currency: this.props.content.currency_code,
+ minimumFractionDigits: 0
+ });
+ // Default to `second` button
+ const { selected_button } = this.props.content;
+ const btnStyle = {
+ color: this.props.content.button_color,
+ backgroundColor: this.props.content.button_background_color
+ };
+
+ return external_React_default.a.createElement(
+ "form",
+ { className: "EOYSnippetForm", action: this.props.content.donation_form_url, method: this.props.form_method, onSubmit: this.handleSubmit, ref: "form" },
+ fieldNames.map((field, idx) => {
+ const button_name = `donation_amount_${field}`;
+ const amount = this.props.content[button_name];
+ return external_React_default.a.createElement(
+ external_React_default.a.Fragment,
+ { key: idx },
+ external_React_default.a.createElement("input", { type: "radio", name: "amount", value: amount, id: field, defaultChecked: button_name === selected_button }),
+ external_React_default.a.createElement(
+ "label",
+ { htmlFor: field, className: "donation-amount" },
+ numberFormat.format(amount)
+ )
+ );
+ }),
+ external_React_default.a.createElement(
+ "div",
+ { className: "monthly-checkbox-container" },
+ external_React_default.a.createElement("input", { id: "monthly-checkbox", type: "checkbox" }),
+ external_React_default.a.createElement(
+ "label",
+ { htmlFor: "monthly-checkbox" },
+ this.props.content.monthly_checkbox_label_text
+ )
+ ),
+ external_React_default.a.createElement("input", { type: "hidden", name: "frequency", value: "single" }),
+ external_React_default.a.createElement("input", { type: "hidden", name: "currency", value: this.props.content.currency_code }),
+ external_React_default.a.createElement("input", { type: "hidden", name: "presets", value: fieldNames.map(field => this.props.content[`donation_amount_${field}`]) }),
+ external_React_default.a.createElement(
+ "button",
+ { style: btnStyle, type: "submit", className: "ASRouterButton donation-form-url" },
+ this.props.content.button_label
+ )
+ );
+ }
+
+ render() {
+ const textStyle = {
+ color: this.props.content.text_color,
+ backgroundColor: this.props.content.background_color
+ };
+ const customElement = external_React_default.a.createElement("em", { style: { backgroundColor: this.props.content.highlight_color } });
+ return external_React_default.a.createElement(SimpleSnippet_SimpleSnippet, EOYSnippet_extends({}, this.props, {
+ className: this.props.content.test,
+ customElements: { em: customElement },
+ textStyle: textStyle,
+ extraContent: this.renderDonations() }));
+ }
+}
+
+const EOYSnippet = props => {
+ const extendedContent = Object.assign({
+ monthly_checkbox_label_text: "Make my donation monthly",
+ locale: "en-US",
+ currency_code: "usd",
+ selected_button: "donation_amount_second"
+ }, props.content);
+
+ return external_React_default.a.createElement(EOYSnippet_EOYSnippetBase, EOYSnippet_extends({}, props, {
+ content: extendedContent,
+ form_method: "GET" }));
+};
+// CONCATENATED MODULE: ./content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx
+var SubmitFormSnippet_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
+
+function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
+
+
+
+
+
+
+
+class SubmitFormSnippet_SubmitFormSnippet extends external_React_default.a.PureComponent {
+ constructor(props) {
+ super(props);
+ this.expandSnippet = this.expandSnippet.bind(this);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ this.onInputChange = this.onInputChange.bind(this);
+ this.state = {
+ expanded: false,
+ signupSubmitted: false,
+ signupSuccess: false,
+ disableForm: false
+ };
+ }
+
+ handleSubmit(event) {
+ var _this = this;
+
+ return _asyncToGenerator(function* () {
+ let json;
+
+ if (_this.state.disableForm) {
+ return;
+ }
+
+ event.preventDefault();
+ _this.setState({ disableForm: true });
+ _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "conversion-subscribe-activation", id: "NEWTAB_FOOTER_BAR_CONTENT" });
+
+ if (_this.props.form_method.toUpperCase() === "GET") {
+ _this.refs.form.submit();
+ return;
+ }
+
+ const { url, formData } = _this.props.processFormData ? _this.props.processFormData(_this.refs.mainInput, _this.props) : { url: _this.refs.form.action, formData: new FormData(_this.refs.form) };
+
+ try {
+ const fetchRequest = new Request(url, { body: formData, method: "POST" });
+ const response = yield fetch(fetchRequest);
+ json = yield response.json();
+ } catch (err) {
+ console.log(err); // eslint-disable-line no-console
+ }
+
+ if (json && json.status === "ok") {
+ _this.setState({ signupSuccess: true, signupSubmitted: true });
+ if (!_this.props.content.do_not_autoblock) {
+ _this.props.onBlock({ preventDismiss: true });
+ }
+ _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-success", id: "NEWTAB_FOOTER_BAR_CONTENT" });
+ } else {
+ console.error("There was a problem submitting the form", json || "[No JSON response]"); // eslint-disable-line no-console
+ _this.setState({ signupSuccess: false, signupSubmitted: true });
+ _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-error", id: "NEWTAB_FOOTER_BAR_CONTENT" });
+ }
+
+ _this.setState({ disableForm: false });
+ })();
+ }
+
+ expandSnippet() {
+ this.setState({
+ expanded: true,
+ signupSuccess: false,
+ signupSubmitted: false
+ });
+ }
+
+ renderHiddenFormInputs() {
+ const { hidden_inputs } = this.props.content;
+
+ if (!hidden_inputs) {
+ return null;
+ }
+
+ return Object.keys(hidden_inputs).map((key, idx) => external_React_default.a.createElement("input", { key: idx, type: "hidden", name: key, value: hidden_inputs[key] }));
+ }
+
+ renderDisclaimer() {
+ const { content } = this.props;
+ if (!content.scene2_disclaimer_html) {
+ return null;
+ }
+ return external_React_default.a.createElement(
+ "p",
+ { className: "disclaimerText" },
+ external_React_default.a.createElement(RichText, { text: content.scene2_disclaimer_html,
+ localization_id: "disclaimer_html",
+ links: content.links,
+ doNotAutoBlock: true,
+ sendClick: this.props.sendClick })
+ );
+ }
+
+ renderFormPrivacyNotice() {
+ const { content } = this.props;
+ if (!content.scene2_privacy_html) {
+ return null;
+ }
+ return external_React_default.a.createElement(
+ "label",
+ { className: "privacyNotice", htmlFor: "id_privacy" },
+ external_React_default.a.createElement(
+ "p",
+ null,
+ external_React_default.a.createElement("input", { type: "checkbox", id: "id_privacy", name: "privacy", required: "required" }),
+ external_React_default.a.createElement(
+ "span",
+ null,
+ external_React_default.a.createElement(RichText, { text: content.scene2_privacy_html,
+ localization_id: "privacy_html",
+ links: content.links,
+ doNotAutoBlock: true,
+ sendClick: this.props.sendClick })
+ )
+ )
+ );
+ }
+
+ renderSignupSubmitted() {
+ const { content } = this.props;
+ const isSuccess = this.state.signupSuccess;
+ const successTitle = isSuccess && content.success_title;
+ const bodyText = isSuccess ? content.success_text : content.error_text;
+ const retryButtonText = content.scene1_button_label;
+ return external_React_default.a.createElement(
+ SnippetBase_SnippetBase,
+ this.props,
+ external_React_default.a.createElement(
+ "div",
+ { className: "submissionStatus" },
+ successTitle ? external_React_default.a.createElement(
+ "h2",
+ { className: "submitStatusTitle" },
+ successTitle
+ ) : null,
+ external_React_default.a.createElement(
+ "p",
+ null,
+ bodyText,
+ isSuccess ? null : external_React_default.a.createElement(
+ Button,
+ { onClick: this.expandSnippet },
+ retryButtonText
+ )
+ )
+ )
+ );
+ }
+
+ onInputChange(event) {
+ if (!this.props.validateInput) {
+ return;
+ }
+ const hasError = this.props.validateInput(event.target.value, this.props.content);
+ event.target.setCustomValidity(hasError);
+ }
+
+ renderInput() {
+ const placholder = this.props.content.scene2_email_placeholder_text || this.props.content.scene2_input_placeholder;
+ return external_React_default.a.createElement("input", {
+ ref: "mainInput",
+ type: this.props.inputType || "email",
+ className: "mainInput",
+ name: "email",
+ required: true,
+ placeholder: placholder,
+ onChange: this.props.validateInput ? this.onInputChange : null,
+ autoFocus: true });
+ }
+
+ renderSignupView() {
+ const { content } = this.props;
+ const containerClass = `SubmitFormSnippet ${this.props.className}`;
+ return external_React_default.a.createElement(
+ SnippetBase_SnippetBase,
+ SubmitFormSnippet_extends({}, this.props, { className: containerClass, footerDismiss: true }),
+ content.scene2_icon ? external_React_default.a.createElement(
+ "div",
+ { className: "scene2Icon" },
+ external_React_default.a.createElement("img", { src: content.scene2_icon })
+ ) : null,
+ external_React_default.a.createElement(
+ "div",
+ { className: "message" },
+ external_React_default.a.createElement(
+ "p",
+ null,
+ content.scene2_text
+ )
+ ),
+ external_React_default.a.createElement(
+ "form",
+ { action: content.form_action, method: this.props.form_method, onSubmit: this.handleSubmit, ref: "form" },
+ this.renderHiddenFormInputs(),
+ external_React_default.a.createElement(
+ "div",
+ null,
+ this.renderInput(),
+ external_React_default.a.createElement(
+ "button",
+ { type: "submit", className: "ASRouterButton primary", ref: "formSubmitBtn" },
+ content.scene2_button_label
+ )
+ ),
+ this.renderFormPrivacyNotice() || this.renderDisclaimer()
+ )
+ );
+ }
+
+ getFirstSceneContent() {
+ return Object.keys(this.props.content).filter(key => key.includes("scene1")).reduce((acc, key) => {
+ acc[key.substr(7)] = this.props.content[key];
+ return acc;
+ }, {});
+ }
+
+ render() {
+ const content = Object.assign({}, this.props.content, this.getFirstSceneContent());
+
+ if (this.state.signupSubmitted) {
+ return this.renderSignupSubmitted();
+ }
+ if (this.state.expanded) {
+ return this.renderSignupView();
+ }
+ return external_React_default.a.createElement(SimpleSnippet_SimpleSnippet, SubmitFormSnippet_extends({}, this.props, { content: content, onButtonClick: this.expandSnippet }));
+ }
+}
+// CONCATENATED MODULE: ./content-src/asrouter/templates/FXASignupSnippet/FXASignupSnippet.jsx
+var FXASignupSnippet_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
+
+
+
+
+const FXASignupSnippet = props => {
+ const userAgent = window.navigator.userAgent.match(/Firefox\/([0-9]+)\./);
+ const firefox_version = userAgent ? parseInt(userAgent[1], 10) : 0;
+ const extendedContent = Object.assign({
+ form_action: "https://accounts.firefox.com/"
+ }, props.content, {
+ hidden_inputs: Object.assign({
+ action: "email",
+ context: "fx_desktop_v3",
+ entrypoint: "snippets",
+ service: "sync",
+ utm_source: "snippet",
+ utm_content: firefox_version,
+ utm_campaign: props.content.utm_campaign,
+ utm_term: props.content.utm_term
+ }, props.content.hidden_inputs)
+ });
+
+ return external_React_default.a.createElement(SubmitFormSnippet_SubmitFormSnippet, FXASignupSnippet_extends({}, props, {
+ content: extendedContent,
+ form_method: "GET" }));
+};
+// CONCATENATED MODULE: ./content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx
+var NewsletterSnippet_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
+
+
+
+
+const NewsletterSnippet = props => {
+ const extendedContent = Object.assign({
+ form_action: "https://basket.mozilla.org/subscribe.json"
+ }, props.content, {
+ hidden_inputs: Object.assign({
+ newsletters: props.content.scene2_newsletter || "mozilla-foundation",
+ fmt: "H",
+ lang: "en-US",
+ source_url: `https://snippets.mozilla.com/show/${props.id}`
+ }, props.content.hidden_inputs)
+ });
+
+ return external_React_default.a.createElement(SubmitFormSnippet_SubmitFormSnippet, NewsletterSnippet_extends({}, props, {
+ content: extendedContent,
+ form_method: "POST" }));
+};
+// CONCATENATED MODULE: ./content-src/asrouter/templates/SendToDeviceSnippet/isEmailOrPhoneNumber.js
+/**
+ * Checks if a given string is an email or phone number or neither
+ * @param {string} val The user input
+ * @param {ASRMessageContent} content .content property on ASR message
+ * @returns {"email"|"phone"|""} The type of the input
+ */
+function isEmailOrPhoneNumber(val, content) {
+ const { locale } = content;
+ // http://emailregex.com/
+ const email_re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+ const check_email = email_re.test(val);
+ let check_phone; // depends on locale
+ switch (locale) {
+ case "en-US":
+ case "en-CA":
+ // allow 10-11 digits in case user wants to enter country code
+ check_phone = val.length >= 10 && val.length <= 11 && !isNaN(val);
+ break;
+ case "de":
+ // allow between 2 and 12 digits for german phone numbers
+ check_phone = val.length >= 2 && val.length <= 12 && !isNaN(val);
+ break;
+ // this case should never be hit, but good to have a fallback just in case
+ default:
+ check_phone = !isNaN(val);
+ break;
+ }
+ if (check_email) {
+ return "email";
+ } else if (check_phone) {
+ return "phone";
+ }
+ return "";
+}
+// CONCATENATED MODULE: ./content-src/asrouter/templates/SendToDeviceSnippet/SendToDeviceSnippet.jsx
+var SendToDeviceSnippet_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
+
+
+
+
+
+function validateInput(value, content) {
+ const type = isEmailOrPhoneNumber(value, content);
+ return type ? "" : "Must be an email or a phone number.";
+}
+
+function processFormData(input, message) {
+ const { content } = message;
+ const type = content.include_sms ? isEmailOrPhoneNumber(input.value, content) : "email";
+ const formData = new FormData();
+ let url;
+ if (type === "phone") {
+ url = "https://basket.mozilla.org/news/subscribe_sms/";
+ formData.append("mobile_number", input.value);
+ formData.append("msg_name", content.message_id_sms);
+ formData.append("country", content.country);
+ } else if (type === "email") {
+ url = "https://basket.mozilla.org/news/subscribe/";
+ formData.append("email", input.value);
+ formData.append("newsletters", content.message_id_email);
+ formData.append("source_url", encodeURIComponent(`https://snippets.mozilla.com/show/${message.id}`));
+ }
+ formData.append("lang", content.locale);
+ return { formData, url };
+}
+
+const SendToDeviceSnippet = props => external_React_default.a.createElement(SubmitFormSnippet_SubmitFormSnippet, SendToDeviceSnippet_extends({}, props, {
+ form_method: "POST",
+ className: "send_to_device_snippet",
+ inputType: props.content.include_sms ? "text" : "email",
+ validateInput: props.content.include_sms ? validateInput : null,
+ processFormData: processFormData }));
+// CONCATENATED MODULE: ./content-src/asrouter/templates/template-manifest.jsx
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SnippetsTemplates", function() { return SnippetsTemplates; });
+
+
+
+
+
+
+// Key names matching schema name of templates
+const SnippetsTemplates = {
+ simple_snippet: SimpleSnippet_SimpleSnippet,
+ newsletter_snippet: NewsletterSnippet,
+ fxa_signup_snippet: FXASignupSnippet,
+ send_to_device_snippet: SendToDeviceSnippet,
+ eoy_snippet: EOYSnippet
+};
+
+/***/ }),
+/* 43 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -8084,7 +8349,7 @@ function ftl(strings) {
/***/ }),
-/* 49 */
+/* 44 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -8097,7 +8362,7 @@ var external_PropTypes_ = __webpack_require__(10);
var external_PropTypes_default = /*#__PURE__*/__webpack_require__.n(external_PropTypes_);
// EXTERNAL MODULE: ./node_modules/fluent/src/index.js + 8 modules
-var src = __webpack_require__(48);
+var src = __webpack_require__(43);
// CONCATENATED MODULE: ./node_modules/fluent-react/src/localization.js
@@ -8599,7 +8864,7 @@ localized_Localized.propTypes = {
/***/ }),
-/* 50 */
+/* 45 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -9078,95 +9343,7 @@ function Pocket(prevState = INITIAL_STATE.Pocket, action) {
var reducers = { TopSites, App, ASRouter, Snippets, Prefs, Dialog, Sections, Pocket };
/***/ }),
-/* 51 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// CONCATENATED MODULE: ./content-src/asrouter/templates/SendToDeviceSnippet/isEmailOrPhoneNumber.js
-/**
- * Checks if a given string is an email or phone number or neither
- * @param {string} val The user input
- * @param {ASRMessageContent} content .content property on ASR message
- * @returns {"email"|"phone"|""} The type of the input
- */
-function isEmailOrPhoneNumber(val, content) {
- const { locale } = content;
- // http://emailregex.com/
- const email_re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- const check_email = email_re.test(val);
- let check_phone; // depends on locale
- switch (locale) {
- case "en-US":
- case "en-CA":
- // allow 10-11 digits in case user wants to enter country code
- check_phone = val.length >= 10 && val.length <= 11 && !isNaN(val);
- break;
- case "de":
- // allow between 2 and 12 digits for german phone numbers
- check_phone = val.length >= 2 && val.length <= 12 && !isNaN(val);
- break;
- // this case should never be hit, but good to have a fallback just in case
- default:
- check_phone = !isNaN(val);
- break;
- }
- if (check_email) {
- return "email";
- } else if (check_phone) {
- return "phone";
- }
- return "";
-}
-// EXTERNAL MODULE: external "React"
-var external_React_ = __webpack_require__(9);
-var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
-
-// EXTERNAL MODULE: ./content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx
-var SubmitFormSnippet = __webpack_require__(12);
-
-// CONCATENATED MODULE: ./content-src/asrouter/templates/SendToDeviceSnippet/SendToDeviceSnippet.jsx
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SendToDeviceSnippet", function() { return SendToDeviceSnippet; });
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-
-
-
-
-function validateInput(value, content) {
- const type = isEmailOrPhoneNumber(value, content);
- return type ? "" : "Must be an email or a phone number.";
-}
-
-function processFormData(input, message) {
- const { content } = message;
- const type = content.include_sms ? isEmailOrPhoneNumber(input.value, content) : "email";
- const formData = new FormData();
- let url;
- if (type === "phone") {
- url = "https://basket.mozilla.org/news/subscribe_sms/";
- formData.append("mobile_number", input.value);
- formData.append("msg_name", content.message_id_sms);
- formData.append("country", content.country);
- } else if (type === "email") {
- url = "https://basket.mozilla.org/news/subscribe/";
- formData.append("email", input.value);
- formData.append("newsletters", content.message_id_email);
- formData.append("source_url", encodeURIComponent(`https://snippets.mozilla.com/show/${message.id}`));
- }
- formData.append("lang", content.locale);
- return { formData, url };
-}
-
-const SendToDeviceSnippet = props => external_React_default.a.createElement(SubmitFormSnippet["SubmitFormSnippet"], _extends({}, props, {
- form_method: "POST",
- className: "send_to_device_snippet",
- inputType: props.content.include_sms ? "text" : "email",
- validateInput: props.content.include_sms ? validateInput : null,
- processFormData: processFormData }));
-
-/***/ }),
-/* 52 */
+/* 46 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -9310,7 +9487,7 @@ class OnboardingMessage_OnboardingMessage extends external_React_default.a.PureC
}
/***/ }),
-/* 53 */
+/* 47 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -9319,7 +9496,7 @@ class OnboardingMessage_OnboardingMessage extends external_React_default.a.PureC
var Actions = __webpack_require__(2);
// EXTERNAL MODULE: external "ReactIntl"
-var external_ReactIntl_ = __webpack_require__(19);
+var external_ReactIntl_ = __webpack_require__(13);
// CONCATENATED MODULE: ./content-src/components/Card/types.js
const cardContextTypes = {
@@ -9349,20 +9526,20 @@ const cardContextTypes = {
}
};
// EXTERNAL MODULE: external "ReactRedux"
-var external_ReactRedux_ = __webpack_require__(22);
+var external_ReactRedux_ = __webpack_require__(16);
// EXTERNAL MODULE: ./content-src/lib/link-menu-options.js
-var link_menu_options = __webpack_require__(29);
+var link_menu_options = __webpack_require__(23);
// EXTERNAL MODULE: ./content-src/components/LinkMenu/LinkMenu.jsx
-var LinkMenu = __webpack_require__(30);
+var LinkMenu = __webpack_require__(24);
// EXTERNAL MODULE: external "React"
var external_React_ = __webpack_require__(9);
var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
// EXTERNAL MODULE: ./content-src/lib/screenshot-utils.js
-var screenshot_utils = __webpack_require__(32);
+var screenshot_utils = __webpack_require__(26);
// CONCATENATED MODULE: ./content-src/components/Card/Card.jsx
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_Card", function() { return Card_Card; });
@@ -9674,7 +9851,7 @@ const Card = Object(external_ReactRedux_["connect"])(state => ({ platform: state
const PlaceholderCard = props => external_React_default.a.createElement(Card, { placeholder: true, className: props.className });
/***/ }),
-/* 54 */
+/* 48 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -9683,14 +9860,14 @@ const PlaceholderCard = props => external_React_default.a.createElement(Card, {
var Actions = __webpack_require__(2);
// EXTERNAL MODULE: external "ReactIntl"
-var external_ReactIntl_ = __webpack_require__(19);
+var external_ReactIntl_ = __webpack_require__(13);
// EXTERNAL MODULE: external "React"
var external_React_ = __webpack_require__(9);
var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
// EXTERNAL MODULE: ./content-src/components/TopSites/TopSitesConstants.js
-var TopSitesConstants = __webpack_require__(42);
+var TopSitesConstants = __webpack_require__(36);
// CONCATENATED MODULE: ./content-src/components/TopSites/TopSiteFormInput.jsx
@@ -9768,7 +9945,7 @@ TopSiteFormInput_TopSiteFormInput.defaultProps = {
validationError: false
};
// EXTERNAL MODULE: ./content-src/components/TopSites/TopSite.jsx
-var TopSite = __webpack_require__(44);
+var TopSite = __webpack_require__(38);
// CONCATENATED MODULE: ./content-src/components/TopSites/TopSiteForm.jsx
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TopSiteForm", function() { return TopSiteForm_TopSiteForm; });
diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js.map b/browser/components/newtab/data/content/activity-stream.bundle.js.map
index 0a2b5e68e22d..d625e77f2449 100644
--- a/browser/components/newtab/data/content/activity-stream.bundle.js.map
+++ b/browser/components/newtab/data/content/activity-stream.bundle.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./content-src/activity-stream.jsx","webpack:///(webpack)/buildin/global.js","webpack:///./common/Actions.jsm","webpack:///./content-src/lib/snippets.js","webpack:///./content-src/asrouter/asrouter-content.jsx","webpack:///./content-src/lib/init-store.js","webpack:///external \"Redux\"","webpack:///./content-src/asrouter/rich-text-strings.js","webpack:///./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///external \"React\"","webpack:///external \"PropTypes\"","webpack:///external \"ReactDOM\"","webpack:///./content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx","webpack:///./content-src/asrouter/components/Button/Button.jsx","webpack:///./content-src/asrouter/components/RichText/RichText.jsx","webpack:///./content-src/asrouter/template-utils.js","webpack:///./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./content-src/components/Base/Base.jsx","webpack:///external \"ReactIntl\"","webpack:///./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///external \"ReactRedux\"","webpack:///./content-src/components/ErrorBoundary/ErrorBoundary.jsx","webpack:///./content-src/components/ManualMigration/ManualMigration.jsx","webpack:///./common/PrerenderData.jsm","webpack:///./content-src/components/Search/Search.jsx","webpack:///./content-src/lib/constants.js","webpack:///./content-src/components/Sections/Sections.jsx","webpack:///./content-src/lib/link-menu-options.js","webpack:///./content-src/components/LinkMenu/LinkMenu.jsx","webpack:///./content-src/components/ContextMenu/ContextMenu.jsx","webpack:///./content-src/lib/screenshot-utils.js","webpack:///./content-src/components/CollapsibleSection/CollapsibleSection.jsx","webpack:///./content-src/components/SectionMenu/SectionMenu.jsx","webpack:///./content-src/lib/section-menu-options.js","webpack:///./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./common/PerfService.jsm","webpack:///./content-src/components/MoreRecommendations/MoreRecommendations.jsx","webpack:///./content-src/components/PocketLoggedInCta/PocketLoggedInCta.jsx","webpack:///./content-src/components/Topics/Topics.jsx","webpack:///./content-src/components/TopSites/TopSites.jsx","webpack:///./content-src/components/TopSites/TopSitesConstants.js","webpack:///./content-src/components/TopSites/SearchShortcutsForm.jsx","webpack:///./content-src/components/TopSites/TopSite.jsx","webpack:///./content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./content-src/lib/detect-user-session-start.js","webpack:///./content-src/lib/asroutercontent.js","webpack:///./node_modules/fluent/src/parser.js","webpack:///./node_modules/fluent/src/types.js","webpack:///./node_modules/fluent/src/builtins.js","webpack:///./node_modules/fluent/src/resolver.js","webpack:///./node_modules/fluent/src/context.js","webpack:///./node_modules/fluent/src/cached_iterable.js","webpack:///./node_modules/fluent/src/fallback.js","webpack:///./node_modules/fluent/src/util.js","webpack:///./node_modules/fluent/src/index.js","webpack:///./node_modules/fluent-react/src/localization.js","webpack:///./node_modules/fluent-react/src/provider.js","webpack:///./node_modules/fluent-react/src/with_localization.js","webpack:///./node_modules/fluent-react/src/markup.js","webpack:///./node_modules/fluent-react/vendor/omittedCloseTags.js","webpack:///./node_modules/fluent-react/vendor/voidElementTags.js","webpack:///./node_modules/fluent-react/src/localized.js","webpack:///./node_modules/fluent-react/src/index.js","webpack:///./common/Dedupe.jsm","webpack:///./common/Reducers.jsm","webpack:///./content-src/asrouter/templates/SendToDeviceSnippet/isEmailOrPhoneNumber.js","webpack:///./content-src/asrouter/templates/SendToDeviceSnippet/SendToDeviceSnippet.jsx","webpack:///./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","webpack:///./content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","webpack:///./content-src/components/Card/types.js","webpack:///./content-src/components/Card/Card.jsx","webpack:///./content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./content-src/components/TopSites/TopSiteForm.jsx"],"names":["store","initStore","global","gActivityStreamPrerenderedState","asrouterContent","sendEventOrAddListener","dispatch","ac","AlsoToMain","type","at","NEW_TAB_STATE_REQUEST","ReactDOM","hydrate","document","location","href","documentElement","lang","gActivityStreamStrings","getElementById","enableASRouterContent","addSnippetsSubscriber","globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","fromTarget","skipLocal","CONTENT_MESSAGE_TYPE","MAIN_MESSAGE_TYPE","OnlyToMain","BroadcastToContent","AlsoToOneContent","target","skipMain","toTarget","OnlyToOneContent","AlsoToPreloaded","PRELOAD_MESSAGE_TYPE","UserEvent","data","TELEMETRY_USER_EVENT","ASRouterUserEvent","AS_ROUTER_TELEMETRY_USER_EVENT","UndesiredEvent","importContext","TELEMETRY_UNDESIRED_EVENT","PerfEvent","TELEMETRY_PERFORMANCE_EVENT","ImpressionStats","TELEMETRY_IMPRESSION_STATS","SetPref","name","value","SET_PREF","WebExtEvent","source","isSendToMain","isBroadcastToContent","isSendToOneContent","isSendToPreloaded","isFromMain","getPortIdOfSender","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","Map","constructor","_db","_dispatch","set","key","_dbTransaction","db","put","delete","clear","SNIPPETS_BLOCKLIST_CLEARED","blockList","get","blockSnippetById","id","includes","push","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","RPMAddMessageListener","onMessage","TOTAL_BOOKMARKS_RESPONSE","RPMRemoveMessageListener","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","connect","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","event","onerror","error","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","result","objectStoreNames","contains","createObjectStore","err","console","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","bind","snippetsMap","_refreshSnippets","cachedVersion","appData","version","lastUpdate","needsUpdate","Date","now","snippetsURL","response","fetch","status","payload","text","e","_noSnippetFallback","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","msg","SNIPPET_BLOCKED","concat","style","display","init","Object","assign","keys","window","dispatchEvent","Event","initialized","uninit","snippets","initializing","subscribe","state","getState","Prefs","values","ASRouter","allowLegacySnippets","disableSnippets","Snippets","hash","log","SnippetComponents","simple_snippet","newsletter_snippet","props","fxa_signup_snippet","send_to_device_snippet","SendToDeviceSnippet","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASR_CONTAINER_ID","ASRouterUtils","addListener","listener","removeListener","sendMessage","RPMSendAsyncMessage","blockById","dismissById","blockBundle","bundle","executeAction","button_action","unblockById","unblockBundle","overrideMessage","sendTelemetry","ping","getPreviewEndpoint","params","URLSearchParams","slice","indexOf","endpoint","URL","url","snippetId","shouldSendImpressionOnUpdate","nextProps","prevProps","message","ASRouterUISurface","React","PureComponent","onMessageFromParent","sendClick","sendImpression","sendUserActionTelemetry","extraProps","message_id","eventType","provider","metric","dataset","args","content","do_not_autoblock","onBlockById","onDismissById","clearBundle","setState","componentWillMount","trigger","componentWillUnmount","renderSnippets","SnippetComponent","template","generateMessages","renderOnboarding","renderPreviewBanner","render","defaultProps","ASRouterContent","containerElement","_mount","zIndex","body","appendChild","_unmount","unmountComponentAtNode","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","prevState","messageMiddleware","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","_didRequestInitialState","INIT","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","reducers","initialState","createStore","combineReducers","applyMiddleware","ex","dump","JSON","stringify","stack","RICH_TEXT_CONFIG","RICH_TEXT_KEYS","cx","attrs","attrsToTry","Array","isArray","string","length","attr","pop","addMessages","VISIBLE","VISIBILITY_CHANGE_EVENT","ImpressionsWrapper","sendImpressionOrAddListener","visibilityState","_onVisibilityChange","removeEventListener","addEventListener","componentDidMount","sendOnMount","componentDidUpdate","children","SubmitFormSnippet","expandSnippet","handleSubmit","onInputChange","expanded","signupSubmitted","signupSuccess","disableForm","json","preventDefault","form_method","toUpperCase","refs","form","submit","formData","processFormData","mainInput","FormData","fetchRequest","Request","method","onBlock","preventDismiss","renderHiddenFormInputs","hidden_inputs","map","idx","renderDisclaimer","scene2_disclaimer_html","links","renderFormPrivacyNotice","scene2_privacy_html","renderSignupSubmitted","isSuccess","successTitle","success_title","bodyText","success_text","error_text","retryButtonText","scene1_button_label","validateInput","hasError","setCustomValidity","renderInput","placholder","scene2_email_placeholder_text","scene2_input_placeholder","inputType","renderSignupView","containerClass","className","scene2_icon","scene2_text","form_action","scene2_button_label","getFirstSceneContent","filter","reduce","acc","substr","ALLOWED_STYLE_TAGS","Button","tag","backgroundColor","border","onClick","ALLOWED_TAGS","b","i","u","strong","em","br","convertLinks","autoBlock","linkTag","safeURI","RichText","localization_id","protocol","isAllowed","warn","DEFAULT_ICON_PATH","SimpleSnippet","onButtonClick","UISurface","button_url","onAction","button_action_args","renderTitle","title","renderTitleIcon","titleIcon","title_icon","backgroundImage","renderButton","button_color","button_background_color","button_label","renderText","tall","icon","SnippetBase","onBlockClicked","renderDismissButton","footerDismiss","onDismiss","scene2_dismiss_button_text","block_button_text","containerClassName","PrefsButton","injectIntl","intl","formatMessage","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","debounce","func","wait","timer","wakeUp","setTimeout","apply","_Base","isFirstrun","classList","add","isPrerendered","updateTheme","componentWillUpdate","bodyClassName","v","join","App","strings","prefs","BaseContent","openPreferences","onWindowScroll","fixedSearch","SCROLL_THRESHOLD","scrollY","SETTINGS_OPEN","shouldBeFixedToTop","PrerenderData","arePrefsValid","noSectionsEnabled","Sections","section","enabled","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","messages","bundled","handleBlock","handleUnblock","handleOverride","expireCache","renderMessageItem","isCurrent","lastMessageId","isBlocked","messageBlockList","impressions","messageImpressions","itemClassName","renderMessages","renderTableHead","renderProviders","providers","label","bucket","lastUpdated","toString","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","DIALOG_CANCEL","eventSource","onConfirm","_renderModalMessage","message_body","body_string_id","visible","cancel_button_string_id","confirm_button_string_id","ConfirmDialog","Dialog","ErrorBoundaryFallback","windowObj","reload","defaultClass","ErrorBoundary","componentDidCatch","info","FallbackComponent","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","pref","order","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","showLogo","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","getFormattedMessage","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","rows","needsImpressionStats","tiles","link","guid","impressionCardGuids","sendImpressionStatsOrAddListener","shouldSendImpressionStats","collapsed","sendNewTabRehydrated","isCollapsed","wasCollapsed","renderNotified","NEW_TAB_REHYDRATED","Pocket","topics","emptyState","read_more_endpoint","contextMenuOptions","learnMore","privacyNoticeURL","isFirst","isLast","waitingForSpoc","maxCardsPerRow","maxCardsOnNarrow","pocketCta","isUserLoggedIn","useCta","isPocketLoggedInDefined","shouldShowPocketCta","shouldShowTopics","realRows","shouldShowEmptyState","usePlaceholder","isWebExtension","sectionClassName","feed","padding","startsWith","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","commonProps","find","s","_OpenInPrivateWindow","site","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","bookmarkGuid","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","index","BLOCK_URL","open_url","pocket_id","impression","block","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","DIALOG_OPEN","DELETE_HISTORY_URL","forceBlock","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","searchTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","DELETE_FROM_POCKET","ArchiveFromPocket","ARCHIVE_FROM_POCKET","EditTopSite","TOP_SITES_EDIT","CheckBookmark","CheckPinTopSite","isPinned","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","userEventData","first","last","onUpdate","LinkMenu","ContextMenu","hideContext","stopPropagation","ContextMenuItem","onKeyDown","shiftKey","ScreenshotUtils","isBlob","isLocal","image","path","createLocalImageObject","remoteImage","createObjectURL","maybeRevokeBlobObjectURL","localImage","revokeObjectURL","isRemoteImageLocal","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","sectionBody","scrollHeight","node","undefined","maxHeight","_getSectionBodyHeight","SectionMenuOptions","CheckCollapsed","div","currentTarget","renderIcon","isCollapsible","extraMenuOptions","showPrefName","active","bodyStyle","CollapsibleSection","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","splice","SectionMenu","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","AddSearchShortcut","TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","MoreRecommendations","_PocketLoggedInCta","ctaUrl","ctaButton","ctaText","PocketLoggedInCta","Topic","Topics","t","topSiteIconType","customScreenshotURL","tippyTopIcon","faviconRef","faviconSize","screenshot","countTopSitesIconsTypes","topSites","countTopSitesTypes","_TopSites","onEditFormClose","onSearchShortcutsFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","searchShortcuts","topsites_icon_stats","topsites_pinned","topsites_search_shortcuts","sitesPerRow","TopSites","TopSitesRows","TOP_SITES_CANCEL_EDIT","TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL","editForm","showSearchShortcutsForm","topSitesRows","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","SelectableSearchShortcut","shortcut","selected","imageStyle","keyword","onChange","SearchShortcutsForm","handleChange","onCancelButtonClick","onSaveButtonClick","shortcuts","isSelected","row","checked","ev","onClose","pinQueue","unpinQueue","alreadyPinned","_searchTopSite","searchVendor","shortURL","UPDATE_PINNED_SEARCH_SHORTCUTS","addedShortcuts","deletedShortcuts","search_vendor","TopSiteLink","screenshotImage","onDragEvent","onKeyPress","_allowDrop","dataTransfer","types","dragged","effectAllowed","setData","blur","button","getNextStateFromProps","imageInState","nextState","componentWillReceiveProps","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","letterFallback","imageClassName","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","hasScreenshotImage","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","hostname","altKey","ctrlKey","metaKey","FILL_SEARCH_TERM","onActivate","isContextMenuOpen","activeIndex","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","preview","shift","topSitesUI","maxNarrowVisibleIndex","l","slotProps","TopSiteList","_StartupOverlay","onSubmit","clickSkip","initScene","removeOverlay","onInputInvalid","emailInput","overlayRemoved","flowId","flowBeginTime","didFetch","fxa_endpoint","fxaParams","show","remove","previousSibling","_getFormInfo","has_flow_params","focus","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts","MAX_PLACEABLES","entryIdentifierRe","identifierRe","functionIdentifierRe","RuntimeParser","getResource","_source","_index","_length","errors","skipWS","getEntry","SyntaxError","skipToNextEntryStart","ch","skipComment","skipSection","getMessage","skipInlineWS","getVariantName","getEntryIdentifier","val","getPattern","lineStart","getAttributes","skipBlankLines","ptr","getIdentifier","re","lastIndex","exec","start","cc","charCodeAt","getString","substring","eol","firstLineContent","getComplexPattern","buffer","placeables","blankLinesStart","blankLinesEnd","ch2","getPlaceable","variants","getVariants","exp","vars","def","selector","getSelectorExpression","literal","getLiteral","getVariantKey","getCallArgs","test","fun","lastIndexOf","getNumber","num","defaultIndex","cc0","cc1","parse","parser","FluentType","opts","valueOf","FluentNone","FluentNumber","parseFloat","ctx","nf","_memoizeIntlObject","Intl","NumberFormat","format","match","other","FluentDateTime","dtf","DateTimeFormat","FluentSymbol","pr","PluralRules","select","arg","merge","argopts","unwrapped","opt","MAX_PLACEABLE_LENGTH","FSI","PDI","DefaultMember","env","members","RangeError","MessageReference","_terms","_messages","ReferenceError","VariantExpression","Type","isVariantList","variant","variantKey","AttributeExpression","attrName","SelectExpression","keyCanMatch","expr","Pattern","ExternalArgument","FunctionReference","CallExpression","member","hasOwnProperty","TypeError","_functions","builtins","callee","posargs","keyargs","ptn","dirty","has","useIsolating","_useIsolating","elem","part","WeakSet","locales","functions","_intls","WeakMap","Symbol","iterator","hasMessage","ctor","cache","CachedIterable","iterable","asyncIterator","seen","cur","touchNext","done","mapContextSync","ids","getContextForId","context","remainingCount","foundContexts","fill","mapContextAsync","nonBlank","line","countIndent","indent","ftl","code","lines","indents","common","Math","min","RegExp","replace","contexts","subs","Set","comp","unsubscribe","setMessages","relocalize","getMessageContext","formatCompound","mcx","fallback","isReactLocalization","propName","prop","l10n","getChildContext","Children","only","LocalizationProvider","childContextTypes","propTypes","PropTypes","element","isRequired","isIterable","componentName","withLocalization","Inner","WithLocalization","forceUpdate","displayName","contextTypes","component","TEMPLATE","parseMarkup","omittedCloseTags","area","base","col","embed","hr","img","keygen","param","track","wbr","voidElementTags","menuitem","reMarkup","toArguments","elems","propname","propval","isValidElement","toLowerCase","messageValue","messageAttrs","localizedProps","cloneElement","translationNodes","childNodes","translatedChildren","childNode","nodeType","TEXT_NODE","textContent","localName","sourceChild","Localized","Dedupe","createKey","defaultCreateKey","item","group","groups","globalKeys","valueMap","m","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","INITIAL_STATE","AS_ROUTER_INITIALIZED","AS_ROUTER_PREF_CHANGED","insertPinned","pinned","pinnedUrls","newLinks","pinIndex","hasMatch","newRows","TOP_SITES_UPDATED","TOP_SITES_PREFS_UPDATED","previewResponse","PREVIEW_RESPONSE","previewUrl","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","PLACES_BOOKMARK_ADDED","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","UPDATE_SEARCH_SHORTCUTS","SNIPPETS_PREVIEW_MODE","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","SECTION_REGISTER","SECTION_UPDATE","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","dedupeSectionId","dedupeSection","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","PLACES_LINK_BLOCKED","SNIPPETS_DATA","SNIPPETS_RESET","POCKET_WAITING_FOR_SPOC","POCKET_LOGGED_IN","POCKET_CTA","cta_button","cta_text","cta_url","use_cta","isEmailOrPhoneNumber","email_re","check_email","check_phone","isNaN","include_sms","append","message_id_sms","country","message_id_email","encodeURIComponent","onDoneButton","header","extraTemplateStrings","cardContextTypes","history","intlID","bookmark","trending","download","gImageLoading","activeCard","imageLoaded","cardImage","maybeLoadImage","imageUrl","loaderPromise","loader","Image","src","catch","then","WEBEXT_CLICK","click","_Card","hasImage","placeholder","description","Card","PlaceholderCard","validationError","onMount","shouldFocus","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm"],"mappings":"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","file":"activity-stream.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {enableASRouterContent} from \"content-src/lib/asroutercontent\";\nimport {initStore} from \"content-src/lib/init-store\";\nimport {Provider} from \"react-redux\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {reducers} from \"common/Reducers.jsm\";\n\nconst store = initStore(reducers, global.gActivityStreamPrerenderedState);\nconst asrouterContent = new ASRouterContent();\n\nnew DetectUserSessionStart(store).sendEventOrAddListener();\n\n// If we are starting in a prerendered state, we must wait until the first render\n// to request state rehydration (see Base.jsx). If we are NOT in a prerendered state,\n// we can request it immedately.\nif (!global.gActivityStreamPrerenderedState) {\n store.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n}\n\nReactDOM.hydrate(
\n \n , document.getElementById(\"root\"));\n\nenableASRouterContent(store, asrouterContent);\naddSnippetsSubscriber(store);\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nthis.MAIN_MESSAGE_TYPE = \"ActivityStream:Main\";\nthis.CONTENT_MESSAGE_TYPE = \"ActivityStream:Content\";\nthis.PRELOAD_MESSAGE_TYPE = \"ActivityStream:PreloadedBrowser\";\nthis.UI_CODE = 1;\nthis.BACKGROUND_PROCESS = 2;\n\n/**\n * globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?\n * Use this in action creators if you need different logic\n * for ui/background processes.\n */\nconst globalImportContext = typeof Window === \"undefined\" ? BACKGROUND_PROCESS : UI_CODE;\n// Export for tests\nthis.globalImportContext = globalImportContext;\n\n// Create an object that avoids accidental differing key/value pairs:\n// {\n// INIT: \"INIT\",\n// UNINIT: \"UNINIT\"\n// }\nconst actionTypes = {};\nfor (const type of [\n \"ADDONS_INFO_REQUEST\",\n \"ADDONS_INFO_RESPONSE\",\n \"ARCHIVE_FROM_POCKET\",\n \"AS_ROUTER_INITIALIZED\",\n \"AS_ROUTER_PREF_CHANGED\",\n \"AS_ROUTER_TELEMETRY_USER_EVENT\",\n \"BLOCK_URL\",\n \"BOOKMARK_URL\",\n \"COPY_DOWNLOAD_LINK\",\n \"DELETE_BOOKMARK_BY_ID\",\n \"DELETE_FROM_POCKET\",\n \"DELETE_HISTORY_URL\",\n \"DIALOG_CANCEL\",\n \"DIALOG_OPEN\",\n \"DOWNLOAD_CHANGED\",\n \"FILL_SEARCH_TERM\",\n \"INIT\",\n \"MIGRATION_CANCEL\",\n \"MIGRATION_COMPLETED\",\n \"MIGRATION_START\",\n \"NEW_TAB_INIT\",\n \"NEW_TAB_INITIAL_STATE\",\n \"NEW_TAB_LOAD\",\n \"NEW_TAB_REHYDRATED\",\n \"NEW_TAB_STATE_REQUEST\",\n \"NEW_TAB_UNLOAD\",\n \"OPEN_DOWNLOAD_FILE\",\n \"OPEN_LINK\",\n \"OPEN_NEW_WINDOW\",\n \"OPEN_PRIVATE_WINDOW\",\n \"OPEN_WEBEXT_SETTINGS\",\n \"PAGE_PRERENDERED\",\n \"PLACES_BOOKMARK_ADDED\",\n \"PLACES_BOOKMARK_REMOVED\",\n \"PLACES_HISTORY_CLEARED\",\n \"PLACES_LINKS_CHANGED\",\n \"PLACES_LINK_BLOCKED\",\n \"PLACES_LINK_DELETED\",\n \"PLACES_SAVED_TO_POCKET\",\n \"POCKET_CTA\",\n \"POCKET_LOGGED_IN\",\n \"POCKET_WAITING_FOR_SPOC\",\n \"PREFS_INITIAL_VALUES\",\n \"PREF_CHANGED\",\n \"PREVIEW_REQUEST\",\n \"PREVIEW_REQUEST_CANCEL\",\n \"PREVIEW_RESPONSE\",\n \"REMOVE_DOWNLOAD_FILE\",\n \"RICH_ICON_MISSING\",\n \"SAVE_SESSION_PERF_DATA\",\n \"SAVE_TO_POCKET\",\n \"SCREENSHOT_UPDATED\",\n \"SECTION_DEREGISTER\",\n \"SECTION_DISABLE\",\n \"SECTION_ENABLE\",\n \"SECTION_MOVE\",\n \"SECTION_OPTIONS_CHANGED\",\n \"SECTION_REGISTER\",\n \"SECTION_UPDATE\",\n \"SECTION_UPDATE_CARD\",\n \"SETTINGS_CLOSE\",\n \"SETTINGS_OPEN\",\n \"SET_PREF\",\n \"SHOW_DOWNLOAD_FILE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\n \"SKIPPED_SIGNIN\",\n \"SNIPPETS_BLOCKLIST_CLEARED\",\n \"SNIPPETS_BLOCKLIST_UPDATED\",\n \"SNIPPETS_DATA\",\n \"SNIPPETS_PREVIEW_MODE\",\n \"SNIPPETS_RESET\",\n \"SNIPPET_BLOCKED\",\n \"SUBMIT_EMAIL\",\n \"SYSTEM_TICK\",\n \"TELEMETRY_IMPRESSION_STATS\",\n \"TELEMETRY_PERFORMANCE_EVENT\",\n \"TELEMETRY_UNDESIRED_EVENT\",\n \"TELEMETRY_USER_EVENT\",\n \"TOP_SITES_CANCEL_EDIT\",\n \"TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL\",\n \"TOP_SITES_EDIT\",\n \"TOP_SITES_INSERT\",\n \"TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL\",\n \"TOP_SITES_PIN\",\n \"TOP_SITES_PREFS_UPDATED\",\n \"TOP_SITES_UNPIN\",\n \"TOP_SITES_UPDATED\",\n \"TOTAL_BOOKMARKS_REQUEST\",\n \"TOTAL_BOOKMARKS_RESPONSE\",\n \"UNINIT\",\n \"UPDATE_PINNED_SEARCH_SHORTCUTS\",\n \"UPDATE_SEARCH_SHORTCUTS\",\n \"UPDATE_SECTION_PREFS\",\n \"WEBEXT_CLICK\",\n \"WEBEXT_DISMISS\",\n]) {\n actionTypes[type] = type;\n}\n\n// These are acceptable actions for AS Router messages to have. They can show up\n// as call-to-action buttons in snippets, onboarding tour, etc.\nconst ASRouterActions = {};\nfor (const type of [\n \"INSTALL_ADDON_FROM_URL\",\n \"OPEN_APPLICATIONS_MENU\",\n \"OPEN_PRIVATE_BROWSER_WINDOW\",\n \"OPEN_URL\",\n \"OPEN_ABOUT_PAGE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\n]) {\n ASRouterActions[type] = type;\n}\n\n// Helper function for creating routed actions between content and main\n// Not intended to be used by consumers\nfunction _RouteMessage(action, options) {\n const meta = action.meta ? {...action.meta} : {};\n if (!options || !options.from || !options.to) {\n throw new Error(\"Routed Messages must have options as the second parameter, and must at least include a .from and .to property.\");\n }\n // For each of these fields, if they are passed as an option,\n // add them to the action. If they are not defined, remove them.\n [\"from\", \"to\", \"toTarget\", \"fromTarget\", \"skipMain\", \"skipLocal\"].forEach(o => {\n if (typeof options[o] !== \"undefined\") {\n meta[o] = options[o];\n } else if (meta[o]) {\n delete meta[o];\n }\n });\n return {...action, meta};\n}\n\n/**\n * AlsoToMain - Creates a message that will be dispatched locally and also sent to the Main process.\n *\n * @param {object} action Any redux action (required)\n * @param {object} options\n * @param {bool} skipLocal Used by OnlyToMain to skip the main reducer\n * @param {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToMain(action, fromTarget, skipLocal) {\n return _RouteMessage(action, {\n from: CONTENT_MESSAGE_TYPE,\n to: MAIN_MESSAGE_TYPE,\n fromTarget,\n skipLocal,\n });\n}\n\n/**\n * OnlyToMain - Creates a message that will be sent to the Main process and skip the local reducer.\n *\n * @param {object} action Any redux action (required)\n * @param {object} options\n * @param {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToMain(action, fromTarget) {\n return AlsoToMain(action, fromTarget, true);\n}\n\n/**\n * BroadcastToContent - Creates a message that will be dispatched to main and sent to ALL content processes.\n *\n * @param {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction BroadcastToContent(action) {\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: CONTENT_MESSAGE_TYPE,\n });\n}\n\n/**\n * AlsoToOneContent - Creates a message that will be will be dispatched to the main store\n * and also sent to a particular Content process.\n *\n * @param {object} action Any redux action (required)\n * @param {string} target The id of a content port\n * @param {bool} skipMain Used by OnlyToOneContent to skip the main process\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToOneContent(action, target, skipMain) {\n if (!target) {\n throw new Error(\"You must provide a target ID as the second parameter of AlsoToOneContent. If you want to send to all content processes, use BroadcastToContent\");\n }\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: CONTENT_MESSAGE_TYPE,\n toTarget: target,\n skipMain,\n });\n}\n\n/**\n * OnlyToOneContent - Creates a message that will be sent to a particular Content process\n * and skip the main reducer.\n *\n * @param {object} action Any redux action (required)\n * @param {string} target The id of a content port\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToOneContent(action, target) {\n return AlsoToOneContent(action, target, true);\n}\n\n/**\n * AlsoToPreloaded - Creates a message that dispatched to the main reducer and also sent to the preloaded tab.\n *\n * @param {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToPreloaded(action) {\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: PRELOAD_MESSAGE_TYPE,\n });\n}\n\n/**\n * UserEvent - A telemetry ping indicating a user action. This should only\n * be sent from the UI during a user session.\n *\n * @param {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction UserEvent(data) {\n return AlsoToMain({\n type: actionTypes.TELEMETRY_USER_EVENT,\n data,\n });\n}\n\n/**\n * ASRouterUserEvent - A telemetry ping indicating a user action from AS router. This should only\n * be sent from the UI during a user session.\n *\n * @param {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction ASRouterUserEvent(data) {\n return AlsoToMain({\n type: actionTypes.AS_ROUTER_TELEMETRY_USER_EVENT,\n data,\n });\n}\n\n/**\n * UndesiredEvent - A telemetry ping indicating an undesired state.\n *\n * @param {object} data Fields to include in the ping (value, etc.)\n * @param {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction UndesiredEvent(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_UNDESIRED_EVENT,\n data,\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * PerfEvent - A telemetry ping indicating a performance-related event.\n *\n * @param {object} data Fields to include in the ping (value, etc.)\n * @param {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction PerfEvent(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_PERFORMANCE_EVENT,\n data,\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * ImpressionStats - A telemetry ping indicating an impression stats.\n *\n * @param {object} data Fields to include in the ping\n * @param {int} importContext (For testing) Override the import context for testing.\n * #return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction ImpressionStats(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_IMPRESSION_STATS,\n data,\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction SetPref(name, value, importContext = globalImportContext) {\n const action = {type: actionTypes.SET_PREF, data: {name, value}};\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction WebExtEvent(type, data, importContext = globalImportContext) {\n if (!data || !data.source) {\n throw new Error(\"WebExtEvent actions should include a property \\\"source\\\", the id of the webextension that should receive the event.\");\n }\n const action = {type, data};\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nthis.actionTypes = actionTypes;\nthis.ASRouterActions = ASRouterActions;\n\nthis.actionCreators = {\n BroadcastToContent,\n UserEvent,\n ASRouterUserEvent,\n UndesiredEvent,\n PerfEvent,\n ImpressionStats,\n AlsoToOneContent,\n OnlyToOneContent,\n AlsoToMain,\n OnlyToMain,\n AlsoToPreloaded,\n SetPref,\n WebExtEvent,\n};\n\n// These are helpers to test for certain kinds of actions\nthis.actionUtils = {\n isSendToMain(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.to === MAIN_MESSAGE_TYPE && action.meta.from === CONTENT_MESSAGE_TYPE;\n },\n isBroadcastToContent(action) {\n if (!action.meta) {\n return false;\n }\n if (action.meta.to === CONTENT_MESSAGE_TYPE && !action.meta.toTarget) {\n return true;\n }\n return false;\n },\n isSendToOneContent(action) {\n if (!action.meta) {\n return false;\n }\n if (action.meta.to === CONTENT_MESSAGE_TYPE && action.meta.toTarget) {\n return true;\n }\n return false;\n },\n isSendToPreloaded(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.to === PRELOAD_MESSAGE_TYPE &&\n action.meta.from === MAIN_MESSAGE_TYPE;\n },\n isFromMain(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.from === MAIN_MESSAGE_TYPE &&\n action.meta.to === CONTENT_MESSAGE_TYPE;\n },\n getPortIdOfSender(action) {\n return (action.meta && action.meta.fromTarget) || null;\n },\n _RouteMessage,\n};\n\nconst EXPORTED_SYMBOLS = [\n \"actionTypes\",\n \"actionCreators\",\n \"actionUtils\",\n \"ASRouterActions\",\n \"globalImportContext\",\n \"UI_CODE\",\n \"BACKGROUND_PROCESS\",\n \"MAIN_MESSAGE_TYPE\",\n \"CONTENT_MESSAGE_TYPE\",\n \"PRELOAD_MESSAGE_TYPE\",\n];\n","const DATABASE_NAME = \"snippets_db\";\nconst DATABASE_VERSION = 1;\nconst SNIPPETS_OBJECTSTORE_NAME = \"snippets\";\nexport const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours.\n\nconst SNIPPETS_ENABLED_EVENT = \"Snippets:Enabled\";\nconst SNIPPETS_DISABLED_EVENT = \"Snippets:Disabled\";\n\nimport {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * SnippetsMap - A utility for cacheing values related to the snippet. It has\n * the same interface as a Map, but is optionally backed by\n * indexedDB for persistent storage.\n * Call .connect() to open a database connection and restore any\n * previously cached data, if necessary.\n *\n */\nexport class SnippetsMap extends Map {\n constructor(dispatch) {\n super();\n this._db = null;\n this._dispatch = dispatch;\n }\n\n set(key, value) {\n super.set(key, value);\n return this._dbTransaction(db => db.put(value, key));\n }\n\n delete(key) {\n super.delete(key);\n return this._dbTransaction(db => db.delete(key));\n }\n\n clear() {\n super.clear();\n this._dispatch(ac.OnlyToMain({type: at.SNIPPETS_BLOCKLIST_CLEARED}));\n return this._dbTransaction(db => db.clear());\n }\n\n get blockList() {\n return this.get(\"blockList\") || [];\n }\n\n /**\n * blockSnippetById - Blocks a snippet given an id\n *\n * @param {str|int} id The id of the snippet\n * @return {Promise} Resolves when the id has been written to indexedDB,\n * or immediately if the snippetMap is not connected\n */\n async blockSnippetById(id) {\n if (!id) {\n return;\n }\n const {blockList} = this;\n if (!blockList.includes(id)) {\n blockList.push(id);\n this._dispatch(ac.AlsoToMain({type: at.SNIPPETS_BLOCKLIST_UPDATED, data: id}));\n await this.set(\"blockList\", blockList);\n }\n }\n\n disableOnboarding() {}\n\n showFirefoxAccounts() {\n this._dispatch(ac.AlsoToMain({type: at.SHOW_FIREFOX_ACCOUNTS}));\n }\n\n getTotalBookmarksCount() {\n return new Promise(resolve => {\n this._dispatch(ac.OnlyToMain({type: at.TOTAL_BOOKMARKS_REQUEST}));\n global.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"ActivityStream:MainToContent\", onMessage);\n }\n });\n });\n }\n\n getAddonsInfo() {\n return new Promise(resolve => {\n this._dispatch(ac.OnlyToMain({type: at.ADDONS_INFO_REQUEST}));\n global.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.ADDONS_INFO_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"ActivityStream:MainToContent\", onMessage);\n }\n });\n });\n }\n\n /**\n * connect - Attaches an indexedDB back-end to the Map so that any set values\n * are also cached in a store. It also restores any existing values\n * that are already stored in the indexedDB store.\n *\n * @return {type} description\n */\n async connect() {\n // Open the connection\n const db = await this._openDB();\n\n // Restore any existing values\n await this._restoreFromDb(db);\n\n // Attach a reference to the db\n this._db = db;\n }\n\n /**\n * _dbTransaction - Returns a db transaction wrapped with the given modifier\n * function as a Promise. If the db has not been connected,\n * it resolves immediately.\n *\n * @param {func} modifier A function to call with the transaction\n * @return {obj} A Promise that resolves when the transaction has\n * completed or errored\n */\n _dbTransaction(modifier) {\n if (!this._db) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const transaction = modifier(\n this._db\n .transaction(SNIPPETS_OBJECTSTORE_NAME, \"readwrite\")\n .objectStore(SNIPPETS_OBJECTSTORE_NAME)\n );\n transaction.onsuccess = event => resolve();\n\n /* istanbul ignore next */\n transaction.onerror = event => reject(transaction.error);\n });\n }\n\n _openDB() {\n return new Promise((resolve, reject) => {\n const openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n\n /* istanbul ignore next */\n openRequest.onerror = event => {\n // Try to delete the old database so that we can start this process over\n // next time.\n indexedDB.deleteDatabase(DATABASE_NAME);\n reject(event);\n };\n\n openRequest.onupgradeneeded = event => {\n const db = event.target.result;\n if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {\n db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);\n }\n };\n\n openRequest.onsuccess = event => {\n let db = event.target.result;\n\n /* istanbul ignore next */\n db.onerror = err => console.error(err); // eslint-disable-line no-console\n /* istanbul ignore next */\n db.onversionchange = versionChangeEvent => versionChangeEvent.target.close();\n\n resolve(db);\n };\n });\n }\n\n _restoreFromDb(db) {\n return new Promise((resolve, reject) => {\n let cursorRequest;\n try {\n cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)\n .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();\n } catch (err) {\n // istanbul ignore next\n reject(err);\n // istanbul ignore next\n return;\n }\n\n /* istanbul ignore next */\n cursorRequest.onerror = event => reject(event);\n\n cursorRequest.onsuccess = event => {\n let cursor = event.target.result;\n // Populate the cache from the persistent storage.\n if (cursor) {\n if (cursor.value !== \"blockList\") {\n this.set(cursor.key, cursor.value);\n }\n cursor.continue();\n } else {\n // We are done.\n resolve();\n }\n };\n });\n }\n}\n\n/**\n * SnippetsProvider - Initializes a SnippetsMap and loads snippets from a\n * remote location, or else default snippets if the remote\n * snippets cannot be retrieved.\n */\nexport class SnippetsProvider {\n constructor(dispatch) {\n // Initialize the Snippets Map and attaches it to a global so that\n // the snippet payload can interact with it.\n global.gSnippetsMap = new SnippetsMap(dispatch);\n this._onAction = this._onAction.bind(this);\n }\n\n get snippetsMap() {\n return global.gSnippetsMap;\n }\n\n async _refreshSnippets() {\n // Check if the cached version of of the snippets in snippetsMap. If it's too\n // old, blow away the entire snippetsMap.\n const cachedVersion = this.snippetsMap.get(\"snippets-cached-version\");\n\n if (cachedVersion !== this.appData.version) {\n this.snippetsMap.clear();\n }\n\n // Has enough time passed for us to require an update?\n const lastUpdate = this.snippetsMap.get(\"snippets-last-update\");\n const needsUpdate = !(lastUpdate >= 0) || Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;\n\n if (needsUpdate && this.appData.snippetsURL) {\n this.snippetsMap.set(\"snippets-last-update\", Date.now());\n try {\n const response = await fetch(this.appData.snippetsURL);\n if (response.status === 200) {\n const payload = await response.text();\n\n this.snippetsMap.set(\"snippets\", payload);\n this.snippetsMap.set(\"snippets-cached-version\", this.appData.version);\n }\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n }\n\n _noSnippetFallback() {\n // TODO\n }\n\n _showRemoteSnippets() {\n const snippetsEl = document.getElementById(this.elementId);\n const payload = this.snippetsMap.get(\"snippets\");\n\n if (!snippetsEl) {\n throw new Error(`No element was found with id '${this.elementId}'.`);\n }\n\n // This could happen if fetching failed\n if (!payload) {\n throw new Error(\"No remote snippets were found in gSnippetsMap.\");\n }\n\n if (typeof payload !== \"string\") {\n throw new Error(\"Snippet payload was incorrectly formatted\");\n }\n\n // Note that injecting snippets can throw if they're invalid XML.\n // eslint-disable-next-line no-unsanitized/property\n snippetsEl.innerHTML = payload;\n\n // Scripts injected by innerHTML are inactive, so we have to relocate them\n // through DOM manipulation to activate their contents.\n for (const scriptEl of snippetsEl.getElementsByTagName(\"script\")) {\n const relocatedScript = document.createElement(\"script\");\n relocatedScript.text = scriptEl.text;\n scriptEl.parentNode.replaceChild(relocatedScript, scriptEl);\n }\n }\n\n _onAction(msg) {\n if (msg.data.type === at.SNIPPET_BLOCKED) {\n if (!this.snippetsMap.blockList.includes(msg.data.data)) {\n this.snippetsMap.set(\"blockList\", this.snippetsMap.blockList.concat(msg.data.data));\n document.getElementById(\"snippets-container\").style.display = \"none\";\n }\n }\n }\n\n /**\n * init - Fetch the snippet payload and show snippets\n *\n * @param {obj} options\n * @param {str} options.appData.snippetsURL The URL from which we fetch snippets\n * @param {int} options.appData.version The current snippets version\n * @param {str} options.elementId The id of the element in which to inject snippets\n * @param {bool} options.connect Should gSnippetsMap connect to indexedDB?\n */\n async init(options) {\n Object.assign(this, {\n appData: {},\n elementId: \"snippets\",\n connect: true,\n }, options);\n\n // Add listener so we know when snippets are blocked on other pages\n if (global.RPMAddMessageListener) {\n global.RPMAddMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n }\n\n // TODO: Requires enabling indexedDB on newtab\n // Restore the snippets map from indexedDB\n if (this.connect) {\n try {\n await this.snippetsMap.connect();\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n\n // Cache app data values so they can be accessible from gSnippetsMap\n for (const key of Object.keys(this.appData)) {\n if (key === \"blockList\") {\n this.snippetsMap.set(\"blockList\", this.appData[key]);\n } else {\n this.snippetsMap.set(`appData.${key}`, this.appData[key]);\n }\n }\n\n // Refresh snippets, if enough time has passed.\n await this._refreshSnippets();\n\n // Try showing remote snippets, falling back to defaults if necessary.\n try {\n this._showRemoteSnippets();\n } catch (e) {\n this._noSnippetFallback(e);\n }\n\n window.dispatchEvent(new Event(SNIPPETS_ENABLED_EVENT));\n\n this.initialized = true;\n }\n\n uninit() {\n window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n if (global.RPMRemoveMessageListener) {\n global.RPMRemoveMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n }\n this.initialized = false;\n }\n}\n\n/**\n * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes\n * when the store has received the appropriate\n * Snippet data.\n *\n * @param {obj} store The redux store\n * @return {obj} Returns the snippets instance, asrouterContent instance and unsubscribe function\n */\nexport function addSnippetsSubscriber(store) {\n const snippets = new SnippetsProvider(store.dispatch);\n\n let initializing = false;\n\n store.subscribe(async () => {\n const state = store.getState();\n\n /**\n * Sorry this code is so complicated. It will be removed soon.\n * This is what the different values actually mean:\n *\n * ASRouter.initialized Is ASRouter.jsm initialised?\n * ASRouter.allowLegacySnippets Are ASRouter snippets turned OFF (i.e. legacy snippets are allowed)\n * state.Prefs.values[\"feeds.snippets\"] User preference for snippets\n * state.Snippets.initialized Is SnippetsFeed.jsm initialised?\n * snippets.initialized Is in-content snippets currently initialised?\n * state.Prefs.values.disableSnippets This pref is used to disable legacy snippets in an emergency\n * in a way that is not user-editable (true = disabled)\n */\n\n /** If we should initialize snippets... */\n if (\n state.Prefs.values[\"feeds.snippets\"] &&\n state.ASRouter.initialized &&\n state.ASRouter.allowLegacySnippets &&\n !state.Prefs.values.disableSnippets &&\n state.Snippets.initialized &&\n !snippets.initialized &&\n // Don't call init multiple times\n !initializing &&\n location.href !== \"about:welcome\" &&\n location.hash !== \"#asrouter\"\n ) {\n initializing = true;\n await snippets.init({appData: state.Snippets});\n // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets initialized\"); // eslint-disable-line no-console\n }\n initializing = false;\n\n /** If we should remove snippets... */\n } else if (\n (\n state.Prefs.values[\"feeds.snippets\"] === false ||\n state.Prefs.values.disableSnippets === true ||\n (state.ASRouter.initialized && !state.ASRouter.allowLegacySnippets)\n ) &&\n snippets.initialized\n ) {\n // Remove snippets\n snippets.uninit();\n // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets removed\"); // eslint-disable-line no-console\n }\n }\n });\n\n // Returned for testing purposes\n return {snippets};\n}\n","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {generateMessages} from \"./rich-text-strings\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {LocalizationProvider} from \"fluent-react\";\nimport {OnboardingMessage} from \"./templates/OnboardingMessage/OnboardingMessage\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {SendToDeviceSnippet} from \"./templates/SendToDeviceSnippet/SendToDeviceSnippet\";\nimport {SimpleSnippet} from \"./templates/SimpleSnippet/SimpleSnippet\";\nimport {SubmitFormSnippet} from \"./templates/SubmitFormSnippet/SubmitFormSnippet\";\n\n// Key names matching schema name of templates\nconst SnippetComponents = {\n simple_snippet: SimpleSnippet,\n newsletter_snippet: props =>
,\n fxa_signup_snippet: props =>
,\n send_to_device_snippet: SendToDeviceSnippet,\n};\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\nconst ASR_CONTAINER_ID = \"asr-newtab-container\";\n\nexport const ASRouterUtils = {\n addListener(listener) {\n global.RPMAddMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n removeListener(listener) {\n global.RPMRemoveMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n sendMessage(action) {\n global.RPMSendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n },\n blockById(id, options) {\n ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id, ...options}});\n },\n dismissById(id) {\n ASRouterUtils.sendMessage({type: \"DISMISS_MESSAGE_BY_ID\", data: {id}});\n },\n blockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n },\n executeAction(button_action) {\n ASRouterUtils.sendMessage({\n type: \"USER_ACTION\",\n data: button_action,\n });\n },\n unblockById(id) {\n ASRouterUtils.sendMessage({type: \"UNBLOCK_MESSAGE_BY_ID\", data: {id}});\n },\n unblockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"UNBLOCK_BUNDLE\", data: {bundle}});\n },\n overrideMessage(id) {\n ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n },\n sendTelemetry(ping) {\n const payload = ac.ASRouterUserEvent(ping);\n global.RPMSendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n },\n getPreviewEndpoint() {\n if (window.location.href.includes(\"endpoint\")) {\n const params = new URLSearchParams(window.location.href.slice(window.location.href.indexOf(\"endpoint\")));\n try {\n const endpoint = new URL(params.get(\"endpoint\"));\n return {\n url: endpoint.href,\n snippetId: params.get(\"snippetId\"),\n };\n } catch (e) {}\n }\n\n return null;\n },\n};\n\n// Note: nextProps/prevProps refer to props passed to
, not
\nfunction shouldSendImpressionOnUpdate(nextProps, prevProps) {\n return (nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id));\n}\n\nexport class ASRouterUISurface extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onMessageFromParent = this.onMessageFromParent.bind(this);\n this.sendClick = this.sendClick.bind(this);\n this.sendImpression = this.sendImpression.bind(this);\n this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);\n this.state = {message: {}, bundle: {}};\n }\n\n sendUserActionTelemetry(extraProps = {}) {\n const {message, bundle} = this.state;\n if (!message && !extraProps.message_id) {\n throw new Error(`You must provide a message_id for bundled messages`);\n }\n const eventType = `${message.provider || bundle.provider}_user_event`;\n ASRouterUtils.sendTelemetry({\n message_id: message.id || extraProps.message_id,\n source: extraProps.id,\n action: eventType,\n ...extraProps,\n });\n }\n\n sendImpression(extraProps) {\n if (this.state.message.provider === \"preview\") {\n return;\n }\n\n ASRouterUtils.sendMessage({type: \"IMPRESSION\", data: this.state.message});\n this.sendUserActionTelemetry({event: \"IMPRESSION\", ...extraProps});\n }\n\n // If link has a `metric` data attribute send it as part of the `value`\n // telemetry field which can have arbitrary values.\n // Used for router messages with links as part of the content.\n sendClick(event) {\n const metric = {\n value: event.target.dataset.metric,\n // Used for the `source` of the event. Needed to differentiate\n // from other snippet or onboarding events that may occur.\n id: \"NEWTAB_FOOTER_BAR_CONTENT\",\n };\n const action = {\n type: event.target.dataset.action,\n data: {args: event.target.dataset.args},\n };\n if (action.type) {\n ASRouterUtils.executeAction(action);\n }\n if (!this.state.message.content.do_not_autoblock && !event.target.dataset.do_not_autoblock) {\n ASRouterUtils.blockById(this.state.message.id);\n }\n if (this.state.message.provider !== \"preview\") {\n this.sendUserActionTelemetry({event: \"CLICK_BUTTON\", ...metric});\n }\n }\n\n onBlockById(id) {\n return options => ASRouterUtils.blockById(id, options);\n }\n\n onDismissById(id) {\n return () => ASRouterUtils.dismissById(id);\n }\n\n clearBundle(bundle) {\n return () => ASRouterUtils.blockBundle(bundle);\n }\n\n onMessageFromParent({data: action}) {\n switch (action.type) {\n case \"SET_MESSAGE\":\n this.setState({message: action.data});\n break;\n case \"SET_BUNDLED_MESSAGES\":\n this.setState({bundle: action.data});\n break;\n case \"CLEAR_MESSAGE\":\n if (action.data.id === this.state.message.id) {\n this.setState({message: {}});\n }\n break;\n case \"CLEAR_PROVIDER\":\n if (action.data.id === this.state.message.provider) {\n this.setState({message: {}});\n }\n break;\n case \"CLEAR_BUNDLE\":\n if (this.state.bundle.bundle) {\n this.setState({bundle: {}});\n }\n break;\n case \"CLEAR_ALL\":\n this.setState({message: {}, bundle: {}});\n }\n }\n\n componentWillMount() {\n const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.addListener(this.onMessageFromParent);\n\n // If we are loading about:welcome we want to trigger the onboarding messages\n if (this.props.document.location.href === \"about:welcome\") {\n ASRouterUtils.sendMessage({type: \"TRIGGER\", data: {trigger: {id: \"firstRun\"}}});\n } else {\n ASRouterUtils.sendMessage({type: \"SNIPPETS_REQUEST\", data: {endpoint}});\n }\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessageFromParent);\n }\n\n renderSnippets() {\n const SnippetComponent = SnippetComponents[this.state.message.template];\n const {content} = this.state.message;\n\n return (\n );\n }\n\n renderOnboarding() {\n return (\n
);\n }\n\n renderPreviewBanner() {\n if (this.state.message.provider !== \"preview\") {\n return null;\n }\n\n return (\n
\n \n Preview Purposes Only \n
\n );\n }\n\n render() {\n const {message, bundle} = this.state;\n if (!message.id && !bundle.template) { return null; }\n return (\n
\n {this.renderPreviewBanner()}\n {bundle.template === \"onboarding\" ? this.renderOnboarding() : this.renderSnippets()}\n \n );\n }\n}\n\nASRouterUISurface.defaultProps = {document: global.document};\n\nexport class ASRouterContent {\n constructor() {\n this.initialized = false;\n this.containerElement = null;\n }\n\n _mount() {\n this.containerElement = global.document.getElementById(ASR_CONTAINER_ID);\n if (!this.containerElement) {\n this.containerElement = global.document.createElement(\"div\");\n this.containerElement.id = ASR_CONTAINER_ID;\n this.containerElement.style.zIndex = 1;\n global.document.body.appendChild(this.containerElement);\n }\n\n ReactDOM.render(
, this.containerElement);\n }\n\n _unmount() {\n ReactDOM.unmountComponentAtNode(this.containerElement);\n }\n\n init() {\n this._mount();\n this.initialized = true;\n }\n\n uninit() {\n if (this.initialized) {\n this._unmount();\n this.initialized = false;\n }\n }\n}\n","/* eslint-env mozilla/frame-script */\n\nimport {actionCreators as ac, actionTypes as at, actionUtils as au} from \"common/Actions.jsm\";\nimport {applyMiddleware, combineReducers, createStore} from \"redux\";\n\nexport const MERGE_STORE_ACTION = \"NEW_TAB_INITIAL_STATE\";\nexport const OUTGOING_MESSAGE_NAME = \"ActivityStream:ContentToMain\";\nexport const INCOMING_MESSAGE_NAME = \"ActivityStream:MainToContent\";\nexport const EARLY_QUEUED_ACTIONS = [at.SAVE_SESSION_PERF_DATA, at.PAGE_PRERENDERED];\n\n/**\n * A higher-order function which returns a reducer that, on MERGE_STORE action,\n * will return the action.data object merged into the previous state.\n *\n * For all other actions, it merely calls mainReducer.\n *\n * Because we want this to merge the entire state object, it's written as a\n * higher order function which takes the main reducer (itself often a call to\n * combineReducers) as a parameter.\n *\n * @param {function} mainReducer reducer to call if action != MERGE_STORE_ACTION\n * @return {function} a reducer that, on MERGE_STORE_ACTION action,\n * will return the action.data object merged\n * into the previous state, and the result\n * of calling mainReducer otherwise.\n */\nfunction mergeStateReducer(mainReducer) {\n return (prevState, action) => {\n if (action.type === MERGE_STORE_ACTION) {\n return {...prevState, ...action.data};\n }\n\n return mainReducer(prevState, action);\n };\n}\n\n/**\n * messageMiddleware - Middleware that looks for SentToMain type actions, and sends them if necessary\n */\nconst messageMiddleware = store => next => action => {\n const skipLocal = action.meta && action.meta.skipLocal;\n if (au.isSendToMain(action)) {\n RPMSendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n }\n if (!skipLocal) {\n next(action);\n }\n};\n\nexport const rehydrationMiddleware = store => next => action => {\n if (store._didRehydrate) {\n return next(action);\n }\n\n const isMergeStoreAction = action.type === MERGE_STORE_ACTION;\n const isRehydrationRequest = action.type === at.NEW_TAB_STATE_REQUEST;\n\n if (isRehydrationRequest) {\n store._didRequestInitialState = true;\n return next(action);\n }\n\n if (isMergeStoreAction) {\n store._didRehydrate = true;\n return next(action);\n }\n\n // If init happened after our request was made, we need to re-request\n if (store._didRequestInitialState && action.type === at.INIT) {\n return next(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n }\n\n if (au.isBroadcastToContent(action) || au.isSendToOneContent(action) || au.isSendToPreloaded(action)) {\n // Note that actions received before didRehydrate will not be dispatched\n // because this could negatively affect preloading and the the state\n // will be replaced by rehydration anyway.\n return null;\n }\n\n return next(action);\n};\n\n/**\n * This middleware queues up all the EARLY_QUEUED_ACTIONS until it receives\n * the first action from main. This is useful for those actions for main which\n * require higher reliability, i.e. the action will not be lost in the case\n * that it gets sent before the main is ready to receive it. Conversely, any\n * actions allowed early are accepted to be ignorable or re-sendable.\n */\nexport const queueEarlyMessageMiddleware = store => next => action => {\n if (store._receivedFromMain) {\n next(action);\n } else if (au.isFromMain(action)) {\n next(action);\n store._receivedFromMain = true;\n // Sending out all the early actions as main is ready now\n if (store._earlyActionQueue) {\n store._earlyActionQueue.forEach(next);\n store._earlyActionQueue = [];\n }\n } else if (EARLY_QUEUED_ACTIONS.includes(action.type)) {\n store._earlyActionQueue = store._earlyActionQueue || [];\n store._earlyActionQueue.push(action);\n } else {\n // Let any other type of action go through\n next(action);\n }\n};\n\n/**\n * initStore - Create a store and listen for incoming actions\n *\n * @param {object} reducers An object containing Redux reducers\n * @param {object} intialState (optional) The initial state of the store, if desired\n * @return {object} A redux store\n */\nexport function initStore(reducers, initialState) {\n const store = createStore(\n mergeStateReducer(combineReducers(reducers)),\n initialState,\n global.RPMAddMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n );\n\n store._didRehydrate = false;\n store._didRequestInitialState = false;\n\n if (global.RPMAddMessageListener) {\n global.RPMAddMessageListener(INCOMING_MESSAGE_NAME, msg => {\n try {\n store.dispatch(msg.data);\n } catch (ex) {\n console.error(\"Content msg:\", msg, \"Dispatch error: \", ex); // eslint-disable-line no-console\n dump(`Content msg: ${JSON.stringify(msg)}\\nDispatch error: ${ex}\\n${ex.stack}`);\n }\n });\n }\n\n return store;\n}\n","module.exports = Redux;","import {MessageContext} from \"fluent\";\n\n/**\n * Properties that allow rich text MUST be added to this list.\n * key: the localization_id that should be used\n * value: a property or array of properties on the message.content object\n */\nconst RICH_TEXT_CONFIG = {\n \"text\": [\"text\", \"scene1_text\"],\n \"privacy_html\": \"scene2_privacy_html\",\n \"disclaimer_html\": \"scene2_disclaimer_html\",\n};\n\nexport const RICH_TEXT_KEYS = Object.keys(RICH_TEXT_CONFIG);\n\n/**\n * Generates an array of messages suitable for fluent's localization provider\n * including all needed strings for rich text.\n * @param {object} content A .content object from an ASR message (i.e. message.content)\n * @returns {MessageContext[]} A array containing the fluent message context\n */\nexport function generateMessages(content) {\n const cx = new MessageContext(\"en-US\");\n\n RICH_TEXT_KEYS.forEach(key => {\n const attrs = RICH_TEXT_CONFIG[key];\n const attrsToTry = Array.isArray(attrs) ? [...attrs] : [attrs];\n let string = \"\";\n while (!string && attrsToTry.length) {\n const attr = attrsToTry.pop();\n string = content[attr];\n }\n cx.addMessages(`${key} = ${string}`);\n });\n return [cx];\n}\n","import React from \"react\";\n\nexport const VISIBLE = \"visible\";\nexport const VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\n/**\n * Component wrapper used to send telemetry pings on every impression.\n */\nexport class ImpressionsWrapper extends React.PureComponent {\n // This sends an event when a user sees a set of new content. If content\n // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n // only send the event if the page becomes visible again.\n sendImpressionOrAddListener() {\n if (this.props.document.visibilityState === VISIBLE) {\n this.props.sendImpression({id: this.props.id});\n } else {\n // We should only ever send the latest impression stats ping, so remove any\n // older listeners.\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n\n // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n this._onVisibilityChange = () => {\n if (this.props.document.visibilityState === VISIBLE) {\n this.props.sendImpression({id: this.props.id});\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n };\n this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentWillUnmount() {\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentDidMount() {\n if (this.props.sendOnMount) {\n this.sendImpressionOrAddListener();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {\n this.sendImpressionOrAddListener();\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nImpressionsWrapper.defaultProps = {\n document: global.document,\n sendOnMount: true,\n};\n","module.exports = React;","module.exports = PropTypes;","module.exports = ReactDOM;","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {RichText} from \"../../components/RichText/RichText\";\nimport {SimpleSnippet} from \"../SimpleSnippet/SimpleSnippet\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nexport class SubmitFormSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.expandSnippet = this.expandSnippet.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.onInputChange = this.onInputChange.bind(this);\n this.state = {\n expanded: false,\n signupSubmitted: false,\n signupSuccess: false,\n disableForm: false,\n };\n }\n\n async handleSubmit(event) {\n let json;\n\n if (this.state.disableForm) {\n return;\n }\n\n event.preventDefault();\n this.setState({disableForm: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"conversion-subscribe-activation\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n\n if (this.props.form_method.toUpperCase() === \"GET\") {\n this.refs.form.submit();\n return;\n }\n\n const {url, formData} = this.props.processFormData ?\n this.props.processFormData(this.refs.mainInput, this.props) :\n {url: this.refs.form.action, formData: new FormData(this.refs.form)};\n\n try {\n const fetchRequest = new Request(url, {body: formData, method: \"POST\"});\n const response = await fetch(fetchRequest);\n json = await response.json();\n } catch (err) {\n console.log(err); // eslint-disable-line no-console\n }\n\n if (json && json.status === \"ok\") {\n this.setState({signupSuccess: true, signupSubmitted: true});\n this.props.onBlock({preventDismiss: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-success\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n } else {\n console.error(\"There was a problem submitting the form\", json || \"[No JSON response]\"); // eslint-disable-line no-console\n this.setState({signupSuccess: false, signupSubmitted: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-error\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n }\n\n this.setState({disableForm: false});\n }\n\n expandSnippet() {\n this.setState({\n expanded: true,\n signupSuccess: false,\n signupSubmitted: false,\n });\n }\n\n renderHiddenFormInputs() {\n const {hidden_inputs} = this.props.content;\n\n if (!hidden_inputs) {\n return null;\n }\n\n return Object.keys(hidden_inputs).map((key, idx) =>
);\n }\n\n renderDisclaimer() {\n const {content} = this.props;\n if (!content.scene2_disclaimer_html) {\n return null;\n }\n return (
\n \n
);\n }\n\n renderFormPrivacyNotice() {\n const {content} = this.props;\n if (!content.scene2_privacy_html) {\n return null;\n }\n return (
\n \n \n \n \n
\n );\n }\n\n renderSignupSubmitted() {\n const {content} = this.props;\n const isSuccess = this.state.signupSuccess;\n const successTitle = isSuccess && content.success_title;\n const bodyText = isSuccess ? content.success_text : content.error_text;\n const retryButtonText = content.scene1_button_label;\n return (
\n {successTitle ?
{successTitle} : null}\n
{bodyText}{isSuccess ? null : {retryButtonText} }
\n
);\n }\n\n onInputChange(event) {\n if (!this.props.validateInput) {\n return;\n }\n const hasError = this.props.validateInput(event.target.value, this.props.content);\n event.target.setCustomValidity(hasError);\n }\n\n renderInput() {\n const placholder = this.props.content.scene2_email_placeholder_text || this.props.content.scene2_input_placeholder;\n return (
);\n }\n\n renderSignupView() {\n const {content} = this.props;\n const containerClass = `SubmitFormSnippet ${this.props.className}`;\n return (
\n {content.scene2_icon ? : null}\n \n
{content.scene2_text}
\n
\n \n );\n }\n\n getFirstSceneContent() {\n return Object.keys(this.props.content).filter(key => key.includes(\"scene1\")).reduce((acc, key) => {\n acc[key.substr(7)] = this.props.content[key];\n return acc;\n }, {});\n }\n\n render() {\n const content = {...this.props.content, ...this.getFirstSceneContent()};\n\n if (this.state.signupSubmitted) {\n return this.renderSignupSubmitted();\n }\n if (this.state.expanded) {\n return this.renderSignupView();\n }\n return
;\n }\n}\n","import React from \"react\";\n\nconst ALLOWED_STYLE_TAGS = [\"color\", \"backgroundColor\"];\n\nexport const Button = props => {\n const style = {};\n\n // Add allowed style tags from props, e.g. props.color becomes style={color: props.color}\n for (const tag of ALLOWED_STYLE_TAGS) {\n if (typeof props[tag] !== \"undefined\") {\n style[tag] = props[tag];\n }\n }\n // remove border if bg is set to something custom\n if (style.backgroundColor) {\n style.border = \"0\";\n }\n\n return (
\n {props.children}\n );\n};\n","import {Localized} from \"fluent-react\";\nimport React from \"react\";\nimport {RICH_TEXT_KEYS} from \"../../rich-text-strings\";\nimport {safeURI} from \"../../template-utils\";\n\n// Elements allowed in snippet content\nconst ALLOWED_TAGS = {\n b:
,\n i:
,\n u:
,\n strong:
,\n em:
,\n br:
,\n};\n\n/**\n * Transform an object (tag name: {url}) into (tag name: anchor) where the url\n * is used as href, in order to render links inside a Fluent.Localized component.\n */\nexport function convertLinks(links, sendClick, autoBlock) {\n if (links) {\n return Object.keys(links).reduce((acc, linkTag) => {\n const {action} = links[linkTag];\n // Setting the value to false will not include the attribute in the anchor\n const url = action ? false : safeURI(links[linkTag].url);\n\n acc[linkTag] = (
);\n return acc;\n }, {});\n }\n\n return null;\n}\n\n/**\n * Message wrapper used to sanitize markup and render HTML.\n */\nexport function RichText(props) {\n if (!RICH_TEXT_KEYS.includes(props.localization_id)) {\n throw new Error(`ASRouter: ${props.localization_id} is not a valid rich text property. If you want it to be processed, you need to add it to asrouter/rich-text-strings.js`);\n }\n return (\n
\n {props.text} \n \n );\n}\n","export function safeURI(url) {\n if (!url) {\n return \"\";\n }\n const {protocol} = new URL(url);\n const isAllowed = [\n \"http:\",\n \"https:\",\n \"data:\",\n \"resource:\",\n \"chrome:\",\n ].includes(protocol);\n if (!isAllowed) {\n console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console\n }\n return isAllowed ? url : \"\";\n}\n","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {RichText} from \"../../components/RichText/RichText\";\nimport {safeURI} from \"../../template-utils\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nconst DEFAULT_ICON_PATH = \"chrome://branding/content/icon64.png\";\n\nexport class SimpleSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onButtonClick = this.onButtonClick.bind(this);\n }\n\n onButtonClick() {\n if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", id: this.props.UISurface});\n }\n const {button_url} = this.props.content;\n // If button_url is defined handle it as OPEN_URL action\n const type = this.props.content.button_action || (button_url && \"OPEN_URL\");\n this.props.onAction({\n type,\n data: {args: this.props.content.button_action_args || button_url},\n });\n if (!this.props.content.do_not_autoblock) {\n this.props.onBlock();\n }\n }\n\n renderTitle() {\n const {title} = this.props.content;\n return title ?
{title} : null;\n }\n\n renderTitleIcon() {\n const titleIcon = safeURI(this.props.content.title_icon);\n return titleIcon ?
: null;\n }\n\n renderButton() {\n const {props} = this;\n if (!props.content.button_action && !props.onButtonClick && !props.content.button_url) {\n return null;\n }\n\n return (
\n {props.content.button_label}\n );\n }\n\n renderText() {\n const {props} = this;\n return (
);\n }\n\n render() {\n const {props} = this;\n const className = `SimpleSnippet${props.content.tall ? \" tall\" : \"\"}`;\n return (
\n \n \n {this.renderTitleIcon()} {this.renderTitle()}
{this.renderText()}
\n
\n {{this.renderButton()}
}\n );\n }\n}\n","import React from \"react\";\n\nexport class SnippetBase extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onBlockClicked = this.onBlockClicked.bind(this);\n }\n\n onBlockClicked() {\n if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"BLOCK\", id: this.props.UISurface});\n }\n\n this.props.onBlock();\n }\n\n renderDismissButton() {\n if (this.props.footerDismiss) {\n return (\n
\n
\n \n {this.props.content.scene2_dismiss_button_text}\n \n
\n
\n );\n }\n\n return (\n
\n );\n }\n\n render() {\n const {props} = this;\n\n const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n return (
\n
\n {props.children}\n
\n {this.renderDismissButton()}\n
);\n }\n}\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addLocaleData, injectIntl, IntlProvider} from \"react-intl\";\nimport {ASRouterAdmin} from \"content-src/components/ASRouterAdmin/ASRouterAdmin\";\nimport {ConfirmDialog} from \"content-src/components/ConfirmDialog/ConfirmDialog\";\nimport {connect} from \"react-redux\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport {ManualMigration} from \"content-src/components/ManualMigration/ManualMigration\";\nimport {PrerenderData} from \"common/PrerenderData.jsm\";\nimport React from \"react\";\nimport {Search} from \"content-src/components/Search/Search\";\nimport {Sections} from \"content-src/components/Sections/Sections\";\nimport {StartupOverlay} from \"content-src/components/StartupOverlay/StartupOverlay\";\n\nconst PrefsButton = injectIntl(props => (\n
\n \n
\n));\n\n// Add the locale data for pluralization and relative-time formatting for now,\n// this just uses english locale data. We can make this more sophisticated if\n// more features are needed.\nfunction addLocaleDataForReactIntl(locale) {\n addLocaleData([{locale, parentLocale: \"en\"}]);\n}\n\n// Returns a function will not be continuously triggered when called. The\n// function will be triggered if called again after `wait` milliseconds.\nfunction debounce(func, wait) {\n let timer;\n return (...args) => {\n if (timer) { return; }\n\n let wakeUp = () => { timer = null; };\n\n timer = setTimeout(wakeUp, wait);\n func.apply(this, args);\n };\n}\n\nexport class _Base extends React.PureComponent {\n componentWillMount() {\n const {locale} = this.props;\n addLocaleDataForReactIntl(locale);\n if (this.props.isFirstrun) {\n global.document.body.classList.add(\"welcome\", \"hide-main\");\n }\n }\n\n componentDidMount() {\n // Request state AFTER the first render to ensure we don't cause the\n // prerendered DOM to be unmounted. Otherwise, NEW_TAB_STATE_REQUEST is\n // dispatched right after the store is ready.\n if (this.props.isPrerendered) {\n this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n this.props.dispatch(ac.AlsoToMain({type: at.PAGE_PRERENDERED}));\n }\n }\n\n componentWillUnmount() {\n this.updateTheme();\n }\n\n componentWillUpdate() {\n this.updateTheme();\n }\n\n updateTheme() {\n const bodyClassName = [\n \"activity-stream\",\n // If we skipped the about:welcome overlay and removed the CSS classes\n // we don't want to add them back to the Activity Stream view\n document.body.classList.contains(\"welcome\") ? \"welcome\" : \"\",\n document.body.classList.contains(\"hide-main\") ? \"hide-main\" : \"\",\n ].filter(v => v).join(\" \");\n global.document.body.className = bodyClassName;\n }\n\n render() {\n const {props} = this;\n const {App, locale, strings} = props;\n const {initialized} = App;\n\n const prefs = props.Prefs.values;\n if (prefs[\"asrouter.devtoolsEnabled\"] && window.location.hash === \"#asrouter\") {\n return (
);\n }\n\n if (!props.isPrerendered && !initialized) {\n return null;\n }\n\n return (
\n \n \n \n );\n }\n}\n\nexport class BaseContent extends React.PureComponent {\n constructor(props) {\n super(props);\n this.openPreferences = this.openPreferences.bind(this);\n this.onWindowScroll = debounce(this.onWindowScroll.bind(this), 5);\n this.state = {fixedSearch: false};\n }\n\n componentDidMount() {\n global.addEventListener(\"scroll\", this.onWindowScroll);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"scroll\", this.onWindowScroll);\n }\n\n onWindowScroll() {\n const SCROLL_THRESHOLD = 34;\n if (global.scrollY > SCROLL_THRESHOLD && !this.state.fixedSearch) {\n this.setState({fixedSearch: true});\n } else if (global.scrollY <= SCROLL_THRESHOLD && this.state.fixedSearch) {\n this.setState({fixedSearch: false});\n }\n }\n\n openPreferences() {\n this.props.dispatch(ac.OnlyToMain({type: at.SETTINGS_OPEN}));\n this.props.dispatch(ac.UserEvent({event: \"OPEN_NEWTAB_PREFS\"}));\n }\n\n render() {\n const {props} = this;\n const {App} = props;\n const {initialized} = App;\n const prefs = props.Prefs.values;\n\n const shouldBeFixedToTop = PrerenderData.arePrefsValid(name => prefs[name]);\n const noSectionsEnabled = !prefs[\"feeds.topsites\"] && props.Sections.filter(section => section.enabled).length === 0;\n\n const outerClassName = [\n \"outer-wrapper\",\n shouldBeFixedToTop && \"fixed-to-top\",\n prefs.showSearch && this.state.fixedSearch && !noSectionsEnabled && \"fixed-search\",\n prefs.showSearch && noSectionsEnabled && \"only-search\",\n ].filter(v => v).join(\" \");\n\n return (\n
\n
\n
\n {prefs.showSearch &&\n \n \n \n \n
\n }\n \n {!prefs.migrationExpired &&\n
\n \n
\n }\n
\n
\n
\n \n \n
\n {this.props.isFirstrun &&
}\n
);\n }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Sections: state.Sections}))(_Base);\n","module.exports = ReactIntl;","import {ASRouterUtils} from \"../../asrouter/asrouter-content\";\nimport React from \"react\";\n\nexport class ASRouterAdmin extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onMessage = this.onMessage.bind(this);\n this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);\n this.state = {};\n }\n\n onMessage({data: action}) {\n if (action.type === \"ADMIN_SET_STATE\") {\n this.setState(action.data);\n }\n }\n\n componentWillMount() {\n const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\", data: {endpoint}});\n ASRouterUtils.addListener(this.onMessage);\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessage);\n }\n\n findOtherBundledMessagesOfSameTemplate(template) {\n return this.state.messages.filter(msg => msg.template === template && msg.bundled);\n }\n\n handleBlock(msg) {\n if (msg.bundled) {\n // If we are blocking a message that belongs to a bundle, block all other messages that are bundled of that same template\n let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n return () => ASRouterUtils.blockBundle(bundle);\n }\n return () => ASRouterUtils.blockById(msg.id);\n }\n\n handleUnblock(msg) {\n if (msg.bundled) {\n // If we are unblocking a message that belongs to a bundle, unblock all other messages that are bundled of that same template\n let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n return () => ASRouterUtils.unblockBundle(bundle);\n }\n return () => ASRouterUtils.unblockById(msg.id);\n }\n\n handleOverride(id) {\n return () => ASRouterUtils.overrideMessage(id);\n }\n\n expireCache() {\n ASRouterUtils.sendMessage({type: \"EXPIRE_QUERY_CACHE\"});\n }\n\n renderMessageItem(msg) {\n const isCurrent = msg.id === this.state.lastMessageId;\n const isBlocked = this.state.messageBlockList.includes(msg.id);\n const impressions = this.state.messageImpressions[msg.id] ? this.state.messageImpressions[msg.id].length : 0;\n\n let itemClassName = \"message-item\";\n if (isCurrent) { itemClassName += \" current\"; }\n if (isBlocked) { itemClassName += \" blocked\"; }\n\n return (
\n {msg.id} \n \n {isBlocked ? \"Unblock\" : \"Block\"} \n {isBlocked ? null : Show }\n ({impressions} impressions)\n \n \n {JSON.stringify(msg, null, 2)} \n \n );\n }\n\n renderMessages() {\n if (!this.state.messages) {\n return null;\n }\n return (
\n {this.state.messages.map(msg => this.renderMessageItem(msg))}\n
);\n }\n\n renderTableHead() {\n return (
\n \n id \n source \n last updated \n \n );\n }\n\n renderProviders() {\n return (
{this.renderTableHead()}\n {this.state.providers.map((provider, i) => {\n let label = \"(local)\";\n if (provider.type === \"remote\") {\n label = {provider.url} ;\n } else if (provider.type === \"remote-settings\") {\n label = `${provider.bucket} (Remote Settings)`;\n }\n return (\n {provider.id} \n {label} \n {provider.lastUpdated ? new Date(provider.lastUpdated).toString() : \"\"} \n );\n })}\n
);\n }\n\n render() {\n return (
\n
AS Router Admin \n Targeting Utilities \n Expire Cache (This expires the cache in ASR Targeting for bookmarks and top sites)\n Message Providers \n {this.state.providers ? this.renderProviders() : null}\n Messages \n {this.renderMessages()}\n );\n }\n}\n","import {actionCreators as ac, actionTypes} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * ConfirmDialog component.\n * One primary action button, one cancel button.\n *\n * Content displayed is controlled by `data` prop the component receives.\n * Example:\n * data: {\n * // Any sort of data needed to be passed around by actions.\n * payload: site.url,\n * // Primary button AlsoToMain action.\n * action: \"DELETE_HISTORY_URL\",\n * // Primary button USerEvent action.\n * userEvent: \"DELETE\",\n * // Array of locale ids to display.\n * message_body: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n * // Text for primary button.\n * confirm_button_string_id: \"menu_action_delete\"\n * },\n */\nexport class _ConfirmDialog extends React.PureComponent {\n constructor(props) {\n super(props);\n this._handleCancelBtn = this._handleCancelBtn.bind(this);\n this._handleConfirmBtn = this._handleConfirmBtn.bind(this);\n }\n\n _handleCancelBtn() {\n this.props.dispatch({type: actionTypes.DIALOG_CANCEL});\n this.props.dispatch(ac.UserEvent({event: actionTypes.DIALOG_CANCEL, source: this.props.data.eventSource}));\n }\n\n _handleConfirmBtn() {\n this.props.data.onConfirm.forEach(this.props.dispatch);\n }\n\n _renderModalMessage() {\n const message_body = this.props.data.body_string_id;\n\n if (!message_body) {\n return null;\n }\n\n return (
\n {message_body.map(msg =>
)}\n );\n }\n\n render() {\n if (!this.props.visible) {\n return null;\n }\n\n return (
\n
\n
\n \n {this.props.data.icon && }\n {this._renderModalMessage()}\n \n \n
\n
);\n }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n","module.exports = ReactRedux;","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class ErrorBoundaryFallback extends React.PureComponent {\n constructor(props) {\n super(props);\n this.windowObj = this.props.windowObj || window;\n this.onClick = this.onClick.bind(this);\n }\n\n /**\n * Since we only get here if part of the page has crashed, do a\n * forced reload to give us the best chance at recovering.\n */\n onClick() {\n this.windowObj.location.reload(true);\n }\n\n render() {\n const defaultClass = \"as-error-fallback\";\n let className;\n if (\"className\" in this.props) {\n className = `${this.props.className} ${defaultClass}`;\n } else {\n className = defaultClass;\n }\n\n // href=\"#\" to force normal link styling stuff (eg cursor on hover)\n return (\n
\n
\n \n
\n
\n \n \n \n \n
\n );\n }\n}\nErrorBoundaryFallback.defaultProps = {className: \"as-error-fallback\"};\n\nexport class ErrorBoundary extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {hasError: false};\n }\n\n componentDidCatch(error, info) {\n this.setState({hasError: true});\n }\n\n render() {\n if (!this.state.hasError) {\n return (this.props.children);\n }\n\n return
;\n }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * Manual migration component used to start the profile import wizard.\n * Message is presented temporarily and will go away if:\n * 1. User clicks \"No Thanks\"\n * 2. User completed the data import\n * 3. After 3 active days\n * 4. User clicks \"Cancel\" on the import wizard (currently not implemented).\n */\nexport class _ManualMigration extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onLaunchTour = this.onLaunchTour.bind(this);\n this.onCancelTour = this.onCancelTour.bind(this);\n }\n\n onLaunchTour() {\n this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_START}));\n this.props.dispatch(ac.UserEvent({event: at.MIGRATION_START}));\n }\n\n onCancelTour() {\n this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_CANCEL}));\n this.props.dispatch(ac.UserEvent({event: at.MIGRATION_CANCEL}));\n }\n\n render() {\n return (
\n
\n \n \n
\n
\n \n \n \n \n \n \n
\n
);\n }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n","class _PrerenderData {\n constructor(options) {\n this.initialPrefs = options.initialPrefs;\n this.initialSections = options.initialSections;\n this._setValidation(options.validation);\n }\n\n get validation() {\n return this._validation;\n }\n\n set validation(value) {\n this._setValidation(value);\n }\n\n get invalidatingPrefs() {\n return this._invalidatingPrefs;\n }\n\n // This is needed so we can use it in the constructor\n _setValidation(value = []) {\n this._validation = value;\n this._invalidatingPrefs = value.reduce((result, next) => {\n if (typeof next === \"string\") {\n result.push(next);\n return result;\n } else if (next && next.oneOf) {\n return result.concat(next.oneOf);\n } else if (next && next.indexedDB) {\n return result.concat(next.indexedDB);\n }\n throw new Error(\"Your validation configuration is not properly configured\");\n }, []);\n }\n\n arePrefsValid(getPref, indexedDBPrefs) {\n for (const prefs of this.validation) {\n // {oneOf: [\"foo\", \"bar\"]}\n if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {\n return false;\n\n // {indexedDB: [\"foo\", \"bar\"]}\n } else if (indexedDBPrefs && prefs && prefs.indexedDB) {\n const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));\n if (anyModifiedPrefs) {\n return false;\n }\n // \"foo\"\n } else if (getPref(prefs) !== this.initialPrefs[prefs]) {\n return false;\n }\n }\n return true;\n }\n}\n\nthis.PrerenderData = new _PrerenderData({\n initialPrefs: {\n \"migrationExpired\": true,\n \"feeds.topsites\": true,\n \"showSearch\": true,\n \"topSitesRows\": 1,\n \"feeds.section.topstories\": true,\n \"feeds.section.highlights\": true,\n \"sectionOrder\": \"topsites,topstories,highlights\",\n \"collapsed\": false,\n },\n // Prefs listed as invalidating will prevent the prerendered version\n // of AS from being used if their value is something other than what is listed\n // here. This is required because some preferences cause the page layout to be\n // too different for the prerendered version to be used. Unfortunately, this\n // will result in users who have modified some of their preferences not being\n // able to get the benefits of prerendering.\n validation: [\n \"feeds.topsites\",\n \"showSearch\",\n \"topSitesRows\",\n \"sectionOrder\",\n // This means if either of these are set to their default values,\n // prerendering can be used.\n {oneOf: [\"feeds.section.topstories\", \"feeds.section.highlights\"]},\n // If any component has the following preference set to `true` it will\n // invalidate the prerendered version.\n {indexedDB: [\"collapsed\"]},\n ],\n initialSections: [\n {\n enabled: true,\n icon: \"pocket\",\n id: \"topstories\",\n order: 1,\n title: {id: \"header_recommended_by\", values: {provider: \"Pocket\"}},\n },\n {\n enabled: true,\n id: \"highlights\",\n icon: \"highlights\",\n order: 2,\n title: {id: \"header_highlights\"},\n },\n ],\n});\n\nthis._PrerenderData = _PrerenderData;\nconst EXPORTED_SYMBOLS = [\"PrerenderData\", \"_PrerenderData\"];\n","/* globals ContentSearchUIController */\n\"use strict\";\n\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {IS_NEWTAB} from \"content-src/lib/constants\";\nimport React from \"react\";\n\nexport class _Search extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.onInputMount = this.onInputMount.bind(this);\n }\n\n handleEvent(event) {\n // Also track search events with our own telemetry\n if (event.detail.type === \"Search\") {\n this.props.dispatch(ac.UserEvent({event: \"SEARCH\"}));\n }\n }\n\n onClick(event) {\n window.gContentSearchController.search(event);\n }\n\n componentWillUnmount() {\n delete window.gContentSearchController;\n }\n\n onInputMount(input) {\n if (input) {\n // The \"healthReportKey\" and needs to be \"newtab\" or \"abouthome\" so that\n // BrowserUsageTelemetry.jsm knows to handle events with this name, and\n // can add the appropriate telemetry probes for search. Without the correct\n // name, certain tests like browser_UsageTelemetry_content.js will fail\n // (See github ticket #2348 for more details)\n const healthReportKey = IS_NEWTAB ? \"newtab\" : \"abouthome\";\n\n // The \"searchSource\" needs to be \"newtab\" or \"homepage\" and is sent with\n // the search data and acts as context for the search request (See\n // nsISearchEngine.getSubmission). It is necessary so that search engine\n // plugins can correctly atribute referrals. (See github ticket #3321 for\n // more details)\n const searchSource = IS_NEWTAB ? \"newtab\" : \"homepage\";\n\n // gContentSearchController needs to exist as a global so that tests for\n // the existing about:home can find it; and so it allows these tests to pass.\n // In the future, when activity stream is default about:home, this can be renamed\n window.gContentSearchController = new ContentSearchUIController(input, input.parentNode,\n healthReportKey, searchSource);\n addEventListener(\"ContentSearchClient\", this);\n } else {\n window.gContentSearchController = null;\n removeEventListener(\"ContentSearchClient\", this);\n }\n }\n\n /*\n * Do not change the ID on the input field, as legacy newtab code\n * specifically looks for the id 'newtab-search-text' on input fields\n * in order to execute searches in various tests\n */\n render() {\n return (
\n {this.props.showLogo &&\n
\n }\n
\n \n \n \n \n \n \n \n
\n
);\n }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {MoreRecommendations} from \"content-src/components/MoreRecommendations/MoreRecommendations\";\nimport {PocketLoggedInCta} from \"content-src/components/PocketLoggedInCta/PocketLoggedInCta\";\nimport React from \"react\";\nimport {Topics} from \"content-src/components/Topics/Topics\";\nimport {TopSites} from \"content-src/components/TopSites/TopSites\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\nconst CARDS_PER_ROW_DEFAULT = 3;\nconst CARDS_PER_ROW_COMPACT_WIDE = 4;\n\nfunction getFormattedMessage(message) {\n return typeof message === \"string\" ?
{message} :
;\n}\n\nexport class Section extends React.PureComponent {\n get numRows() {\n const {rowsPref, maxRows, Prefs} = this.props;\n return rowsPref ? Prefs.values[rowsPref] : maxRows;\n }\n\n _dispatchImpressionStats() {\n const {props} = this;\n let cardsPerRow = CARDS_PER_ROW_DEFAULT;\n if (props.compactCards && global.matchMedia(`(min-width: 1072px)`).matches) {\n // If the section has compact cards and the viewport is wide enough, we show\n // 4 columns instead of 3.\n // $break-point-widest = 1072px (from _variables.scss)\n cardsPerRow = CARDS_PER_ROW_COMPACT_WIDE;\n }\n const maxCards = cardsPerRow * this.numRows;\n const cards = props.rows.slice(0, maxCards);\n\n if (this.needsImpressionStats(cards)) {\n props.dispatch(ac.ImpressionStats({\n source: props.eventSource,\n tiles: cards.map(link => ({id: link.guid})),\n }));\n this.impressionCardGuids = cards.map(link => link.guid);\n }\n }\n\n // This sends an event when a user sees a set of new content. If content\n // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n // only send the event if the page becomes visible again.\n sendImpressionStatsOrAddListener() {\n const {props} = this;\n\n if (!props.shouldSendImpressionStats || !props.dispatch) {\n return;\n }\n\n if (props.document.visibilityState === VISIBLE) {\n this._dispatchImpressionStats();\n } else {\n // We should only ever send the latest impression stats ping, so remove any\n // older listeners.\n if (this._onVisibilityChange) {\n props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n\n // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n this._onVisibilityChange = () => {\n if (props.document.visibilityState === VISIBLE) {\n if (!this.props.pref.collapsed) {\n this._dispatchImpressionStats();\n }\n props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n };\n props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentWillMount() {\n this.sendNewTabRehydrated(this.props.initialized);\n }\n\n componentDidMount() {\n if (this.props.rows.length && !this.props.pref.collapsed) {\n this.sendImpressionStatsOrAddListener();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {props} = this;\n const isCollapsed = props.pref.collapsed;\n const wasCollapsed = prevProps.pref.collapsed;\n if (\n // Don't send impression stats for the empty state\n props.rows.length &&\n (\n // We only want to send impression stats if the content of the cards has changed\n // and the section is not collapsed...\n (props.rows !== prevProps.rows && !isCollapsed) ||\n // or if we are expanding a section that was collapsed.\n (wasCollapsed && !isCollapsed)\n )\n ) {\n this.sendImpressionStatsOrAddListener();\n }\n }\n\n componentWillUpdate(nextProps) {\n this.sendNewTabRehydrated(nextProps.initialized);\n }\n\n componentWillUnmount() {\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n needsImpressionStats(cards) {\n if (!this.impressionCardGuids || (this.impressionCardGuids.length !== cards.length)) {\n return true;\n }\n\n for (let i = 0; i < cards.length; i++) {\n if (cards[i].guid !== this.impressionCardGuids[i]) {\n return true;\n }\n }\n\n return false;\n }\n\n // The NEW_TAB_REHYDRATED event is used to inform feeds that their\n // data has been consumed e.g. for counting the number of tabs that\n // have rendered that data.\n sendNewTabRehydrated(initialized) {\n if (initialized && !this.renderNotified) {\n this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_REHYDRATED, data: {}}));\n this.renderNotified = true;\n }\n }\n\n render() {\n const {\n id, eventSource, title, icon, rows, Pocket, topics,\n emptyState, dispatch, compactCards, read_more_endpoint,\n contextMenuOptions, initialized, learnMore,\n pref, privacyNoticeURL, isFirst, isLast,\n } = this.props;\n\n const waitingForSpoc = id === \"topstories\" && this.props.Pocket.waitingForSpoc;\n const maxCardsPerRow = compactCards ? CARDS_PER_ROW_COMPACT_WIDE : CARDS_PER_ROW_DEFAULT;\n const {numRows} = this;\n const maxCards = maxCardsPerRow * numRows;\n const maxCardsOnNarrow = CARDS_PER_ROW_DEFAULT * numRows;\n\n const {pocketCta, isUserLoggedIn} = Pocket || {};\n const {useCta} = pocketCta || {};\n\n // Don't display anything until we have a definitve result from Pocket,\n // to avoid a flash of logged out state while we render.\n const isPocketLoggedInDefined = (isUserLoggedIn === true || isUserLoggedIn === false);\n\n const shouldShowPocketCta = (id === \"topstories\" &&\n useCta && isUserLoggedIn === false);\n\n // Show topics only for top stories and if it has loaded with topics.\n // The classs .top-stories-bottom-container ensures content doesn't shift as things load.\n const shouldShowTopics = (id === \"topstories\" &&\n (topics && topics.length > 0) &&\n ((useCta && isUserLoggedIn === true) || (!useCta && isPocketLoggedInDefined)));\n\n const realRows = rows.slice(0, maxCards);\n\n // The empty state should only be shown after we have initialized and there is no content.\n // Otherwise, we should show placeholders.\n const shouldShowEmptyState = initialized && !rows.length;\n\n const cards = [];\n if (!shouldShowEmptyState) {\n for (let i = 0; i < maxCards; i++) {\n const link = realRows[i];\n // On narrow viewports, we only show 3 cards per row. We'll mark the rest as\n // .hide-for-narrow to hide in CSS via @media query.\n const className = (i >= maxCardsOnNarrow) ? \"hide-for-narrow\" : \"\";\n let usePlaceholder = !link;\n // If we are in the third card and waiting for spoc,\n // use the placeholder.\n if (!usePlaceholder && i === 2 && waitingForSpoc) {\n usePlaceholder = true;\n }\n cards.push(!usePlaceholder ? (\n
\n ) : (\n
\n ));\n }\n }\n\n const sectionClassName = [\n \"section\",\n compactCards ? \"compact-cards\" : \"normal-cards\",\n ].join(\" \");\n\n //
<-- React component\n // <-- HTML5 element\n return (\n \n\n {!shouldShowEmptyState && ()}\n {shouldShowEmptyState &&\n \n
\n {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n
:\n
}\n
\n {getFormattedMessage(emptyState.message)}\n
\n
\n
}\n {id === \"topstories\" &&\n \n {shouldShowTopics &&
}\n {shouldShowPocketCta &&
}\n {read_more_endpoint &&\n
}\n
}\n \n );\n }\n}\n\nSection.defaultProps = {\n document: global.document,\n rows: [],\n emptyState: {},\n pref: {},\n title: \"\",\n};\n\nexport const SectionIntl = connect(state => ({Prefs: state.Prefs, Pocket: state.Pocket}))(injectIntl(Section));\n\nexport class _Sections extends React.PureComponent {\n renderSections() {\n const sections = [];\n const enabledSections = this.props.Sections.filter(section => section.enabled);\n const {sectionOrder, \"feeds.topsites\": showTopSites} = this.props.Prefs.values;\n // Enabled sections doesn't include Top Sites, so we add it if enabled.\n const expectedCount = enabledSections.length + ~~showTopSites;\n\n for (const sectionId of sectionOrder.split(\",\")) {\n const commonProps = {\n key: sectionId,\n isFirst: sections.length === 0,\n isLast: sections.length === expectedCount - 1,\n };\n if (sectionId === \"topsites\" && showTopSites) {\n sections.push( );\n } else {\n const section = enabledSections.find(s => s.id === sectionId);\n if (section) {\n sections.push( );\n }\n }\n }\n return sections;\n }\n\n render() {\n return (\n \n {this.renderSections()}\n
\n );\n }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\nconst _OpenInPrivateWindow = site => ({\n id: \"menu_action_open_private_window\",\n icon: \"new-window-private\",\n action: ac.OnlyToMain({\n type: at.OPEN_PRIVATE_WINDOW,\n data: {url: site.url, referrer: site.referrer},\n }),\n userEvent: \"OPEN_PRIVATE_WINDOW\",\n});\n\nexport const GetPlatformString = platform => {\n switch (platform) {\n case \"win\":\n return \"menu_action_show_file_windows\";\n case \"macosx\":\n return \"menu_action_show_file_mac_os\";\n case \"linux\":\n return \"menu_action_show_file_linux\";\n default:\n return \"menu_action_show_file_default\";\n }\n};\n\n/**\n * List of functions that return items that can be included as menu options in a\n * LinkMenu. All functions take the site as the first parameter, and optionally\n * the index of the site.\n */\nexport const LinkMenuOptions = {\n Separator: () => ({type: \"separator\"}),\n EmptyItem: () => ({type: \"empty\"}),\n RemoveBookmark: site => ({\n id: \"menu_action_remove_bookmark\",\n icon: \"bookmark-added\",\n action: ac.AlsoToMain({\n type: at.DELETE_BOOKMARK_BY_ID,\n data: site.bookmarkGuid,\n }),\n userEvent: \"BOOKMARK_DELETE\",\n }),\n AddBookmark: site => ({\n id: \"menu_action_bookmark\",\n icon: \"bookmark-hollow\",\n action: ac.AlsoToMain({\n type: at.BOOKMARK_URL,\n data: {url: site.url, title: site.title, type: site.type},\n }),\n userEvent: \"BOOKMARK_ADD\",\n }),\n OpenInNewWindow: site => ({\n id: \"menu_action_open_new_window\",\n icon: \"new-window\",\n action: ac.AlsoToMain({\n type: at.OPEN_NEW_WINDOW,\n data: {\n referrer: site.referrer,\n typedBonus: site.typedBonus,\n url: site.url,\n },\n }),\n userEvent: \"OPEN_NEW_WINDOW\",\n }),\n BlockUrl: (site, index, eventSource) => ({\n id: \"menu_action_dismiss\",\n icon: \"dismiss\",\n action: ac.AlsoToMain({\n type: at.BLOCK_URL,\n data: {url: site.open_url || site.url, pocket_id: site.pocket_id},\n }),\n impression: ac.ImpressionStats({\n source: eventSource,\n block: 0,\n tiles: [{id: site.guid, pos: index}],\n }),\n userEvent: \"BLOCK\",\n }),\n\n // This is an option for web extentions which will result in remove items from\n // memory and notify the web extenion, rather than using the built-in block list.\n WebExtDismiss: (site, index, eventSource) => ({\n id: \"menu_action_webext_dismiss\",\n string_id: \"menu_action_dismiss\",\n icon: \"dismiss\",\n action: ac.WebExtEvent(at.WEBEXT_DISMISS, {\n source: eventSource,\n url: site.url,\n action_position: index,\n }),\n }),\n DeleteUrl: (site, index, eventSource, isEnabled, siteInfo) => ({\n id: \"menu_action_delete\",\n icon: \"delete\",\n action: {\n type: at.DIALOG_OPEN,\n data: {\n onConfirm: [\n ac.AlsoToMain({type: at.DELETE_HISTORY_URL, data: {url: site.url, pocket_id: site.pocket_id, forceBlock: site.bookmarkGuid}}),\n ac.UserEvent(Object.assign({event: \"DELETE\", source: eventSource, action_position: index}, siteInfo)),\n ],\n eventSource,\n body_string_id: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n confirm_button_string_id: \"menu_action_delete\",\n cancel_button_string_id: \"topsites_form_cancel_button\",\n icon: \"modal-delete\",\n },\n },\n userEvent: \"DIALOG_OPEN\",\n }),\n ShowFile: (site, index, eventSource, isEnabled, siteInfo, platform) => ({\n id: GetPlatformString(platform),\n icon: \"search\",\n action: ac.OnlyToMain({\n type: at.SHOW_DOWNLOAD_FILE,\n data: {url: site.url},\n }),\n }),\n OpenFile: site => ({\n id: \"menu_action_open_file\",\n icon: \"open-file\",\n action: ac.OnlyToMain({\n type: at.OPEN_DOWNLOAD_FILE,\n data: {url: site.url},\n }),\n }),\n CopyDownloadLink: site => ({\n id: \"menu_action_copy_download_link\",\n icon: \"copy\",\n action: ac.OnlyToMain({\n type: at.COPY_DOWNLOAD_LINK,\n data: {url: site.url},\n }),\n }),\n GoToDownloadPage: site => ({\n id: \"menu_action_go_to_download_page\",\n icon: \"download\",\n action: ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: {url: site.referrer},\n }),\n disabled: !site.referrer,\n }),\n RemoveDownload: site => ({\n id: \"menu_action_remove_download\",\n icon: \"delete\",\n action: ac.OnlyToMain({\n type: at.REMOVE_DOWNLOAD_FILE,\n data: {url: site.url},\n }),\n }),\n PinTopSite: ({url, searchTopSite, label}, index) => ({\n id: \"menu_action_pin\",\n icon: \"pin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {\n site: {\n url,\n ...(searchTopSite && {searchTopSite, label}),\n },\n index,\n },\n }),\n userEvent: \"PIN\",\n }),\n UnpinTopSite: site => ({\n id: \"menu_action_unpin\",\n icon: \"unpin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_UNPIN,\n data: {site: {url: site.url}},\n }),\n userEvent: \"UNPIN\",\n }),\n SaveToPocket: (site, index, eventSource) => ({\n id: \"menu_action_save_to_pocket\",\n icon: \"pocket-save\",\n action: ac.AlsoToMain({\n type: at.SAVE_TO_POCKET,\n data: {site: {url: site.url, title: site.title}},\n }),\n impression: ac.ImpressionStats({\n source: eventSource,\n pocket: 0,\n tiles: [{id: site.guid, pos: index}],\n }),\n userEvent: \"SAVE_TO_POCKET\",\n }),\n DeleteFromPocket: site => ({\n id: \"menu_action_delete_pocket\",\n icon: \"delete\",\n action: ac.AlsoToMain({\n type: at.DELETE_FROM_POCKET,\n data: {pocket_id: site.pocket_id},\n }),\n userEvent: \"DELETE_FROM_POCKET\",\n }),\n ArchiveFromPocket: site => ({\n id: \"menu_action_archive_pocket\",\n icon: \"check\",\n action: ac.AlsoToMain({\n type: at.ARCHIVE_FROM_POCKET,\n data: {pocket_id: site.pocket_id},\n }),\n userEvent: \"ARCHIVE_FROM_POCKET\",\n }),\n EditTopSite: (site, index) => ({\n id: \"edit_topsites_button_text\",\n icon: \"edit\",\n action: {\n type: at.TOP_SITES_EDIT,\n data: {index},\n },\n }),\n CheckBookmark: site => (site.bookmarkGuid ? LinkMenuOptions.RemoveBookmark(site) : LinkMenuOptions.AddBookmark(site)),\n CheckPinTopSite: (site, index) => (site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index)),\n CheckSavedToPocket: (site, index) => (site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index)),\n CheckBookmarkOrArchive: site => (site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site)),\n OpenInPrivateWindow: (site, index, eventSource, isEnabled) => (isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem()),\n};\n","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport {LinkMenuOptions} from \"content-src/lib/link-menu-options\";\nimport React from \"react\";\n\nconst DEFAULT_SITE_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\", \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\"];\n\nexport class _LinkMenu extends React.PureComponent {\n getOptions() {\n const {props} = this;\n const {site, index, source, isPrivateBrowsingEnabled, siteInfo, platform} = props;\n\n // Handle special case of default site\n const propOptions = (!site.isDefault || site.searchTopSite) ? props.options : DEFAULT_SITE_MENU_OPTIONS;\n\n const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled, siteInfo, platform)).map(option => {\n const {action, impression, id, string_id, type, userEvent} = option;\n if (!type && id) {\n option.label = props.intl.formatMessage({id: string_id || id});\n option.onClick = () => {\n props.dispatch(action);\n if (userEvent) {\n const userEventData = Object.assign({\n event: userEvent,\n source,\n action_position: index,\n }, siteInfo);\n props.dispatch(ac.UserEvent(userEventData));\n }\n if (impression && props.shouldSendImpressionStats) {\n props.dispatch(impression);\n }\n };\n }\n return option;\n });\n\n // This is for accessibility to support making each item tabbable.\n // We want to know which item is the first and which item\n // is the last, so we can close the context menu accordingly.\n options[0].first = true;\n options[options.length - 1].last = true;\n return options;\n }\n\n render() {\n return ( );\n }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n","import React from \"react\";\n\nexport class ContextMenu extends React.PureComponent {\n constructor(props) {\n super(props);\n this.hideContext = this.hideContext.bind(this);\n this.onClick = this.onClick.bind(this);\n }\n\n hideContext() {\n this.props.onUpdate(false);\n }\n\n componentDidMount() {\n setTimeout(() => {\n global.addEventListener(\"click\", this.hideContext);\n }, 0);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"click\", this.hideContext);\n }\n\n onClick(event) {\n // Eat all clicks on the context menu so they don't bubble up to window.\n // This prevents the context menu from closing when clicking disabled items\n // or the separators.\n event.stopPropagation();\n }\n\n render() {\n return (\n \n {this.props.options.map((option, i) => (option.type === \"separator\" ?\n ( ) :\n (option.type !== \"empty\" && )\n ))}\n \n );\n }\n}\n\nexport class ContextMenuItem extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n }\n\n onClick() {\n this.props.hideContext();\n this.props.option.onClick();\n }\n\n onKeyDown(event) {\n const {option} = this.props;\n switch (event.key) {\n case \"Tab\":\n // tab goes down in context menu, shift + tab goes up in context menu\n // if we're on the last item, one more tab will close the context menu\n // similarly, if we're on the first item, one more shift + tab will close it\n if ((event.shiftKey && option.first) || (!event.shiftKey && option.last)) {\n this.props.hideContext();\n }\n break;\n case \"Enter\":\n this.props.hideContext();\n option.onClick();\n break;\n }\n }\n\n render() {\n const {option} = this.props;\n return (\n \n \n {option.icon && }\n {option.label}\n \n );\n }\n}\n","/**\n * List of helper functions for screenshot-based images.\n *\n * There are two kinds of images:\n * 1. Remote Image: This is the image from the main process and it refers to\n * the image in the React props. This can either be an object with the `data`\n * and `path` properties, if it is a blob, or a string, if it is a normal image.\n * 2. Local Image: This is the image object in the content process and it refers\n * to the image *object* in the React component's state. All local image\n * objects have the `url` property, and an additional property `path`, if they\n * are blobs.\n */\nexport const ScreenshotUtils = {\n isBlob(isLocal, image) {\n return !!(image && image.path && ((!isLocal && image.data) || (isLocal && image.url)));\n },\n\n // This should always be called with a remote image and not a local image.\n createLocalImageObject(remoteImage) {\n if (!remoteImage) {\n return null;\n }\n if (this.isBlob(false, remoteImage)) {\n return {url: global.URL.createObjectURL(remoteImage.data), path: remoteImage.path};\n }\n return {url: remoteImage};\n },\n\n // Revokes the object URL of the image if the local image is a blob.\n // This should always be called with a local image and not a remote image.\n maybeRevokeBlobObjectURL(localImage) {\n if (this.isBlob(true, localImage)) {\n global.URL.revokeObjectURL(localImage.url);\n }\n },\n\n // Checks if remoteImage and localImage are the same.\n isRemoteImageLocal(localImage, remoteImage) {\n // Both remoteImage and localImage are present.\n if (remoteImage && localImage) {\n return this.isBlob(false, remoteImage) ?\n localImage.path === remoteImage.path :\n localImage.url === remoteImage;\n }\n\n // This will only handle the remaining three possible outcomes.\n // (i.e. everything except when both image and localImage are present)\n return !remoteImage && !localImage;\n },\n};\n","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport React from \"react\";\nimport {SectionMenu} from \"content-src/components/SectionMenu/SectionMenu\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nfunction getFormattedMessage(message) {\n return typeof message === \"string\" ? {message} : ;\n}\n\nexport class _CollapsibleSection extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onBodyMount = this.onBodyMount.bind(this);\n this.onHeaderClick = this.onHeaderClick.bind(this);\n this.onTransitionEnd = this.onTransitionEnd.bind(this);\n this.enableOrDisableAnimation = this.enableOrDisableAnimation.bind(this);\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuButtonMouseEnter = this.onMenuButtonMouseEnter.bind(this);\n this.onMenuButtonMouseLeave = this.onMenuButtonMouseLeave.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n this.state = {enableAnimation: true, isAnimating: false, menuButtonHover: false, showContextMenu: false};\n }\n\n componentWillMount() {\n this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n }\n\n componentWillUpdate(nextProps) {\n // Check if we're about to go from expanded to collapsed\n if (!this.props.collapsed && nextProps.collapsed) {\n // This next line forces a layout flush of the section body, which has a\n // max-height style set, so that the upcoming collapse animation can\n // animate from that height to the collapsed height. Without this, the\n // update is coalesced and there's no animation from no-max-height to 0.\n this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions\n }\n }\n\n componentWillUnmount() {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n }\n\n enableOrDisableAnimation() {\n // Only animate the collapse/expand for visible tabs.\n const visible = this.props.document.visibilityState === VISIBLE;\n if (this.state.enableAnimation !== visible) {\n this.setState({enableAnimation: visible});\n }\n }\n\n onBodyMount(node) {\n this.sectionBody = node;\n }\n\n onHeaderClick() {\n // If this.sectionBody is unset, it means that we're in some sort of error\n // state, probably displaying the error fallback, so we won't be able to\n // compute the height, and we don't want to persist the preference.\n // If props.collapsed is undefined handler shouldn't do anything.\n if (!this.sectionBody || this.props.collapsed === undefined) {\n return;\n }\n\n // Get the current height of the body so max-height transitions can work\n this.setState({\n isAnimating: true,\n maxHeight: `${this._getSectionBodyHeight()}px`,\n });\n const {action, userEvent} = SectionMenuOptions.CheckCollapsed(this.props);\n this.props.dispatch(action);\n this.props.dispatch(ac.UserEvent({\n event: userEvent,\n source: this.props.source,\n }));\n }\n\n _getSectionBodyHeight() {\n const div = this.sectionBody;\n if (div.style.display === \"none\") {\n // If the div isn't displayed, we can't get it's height. So we display it\n // to get the height (it doesn't show up because max-height is set to 0px\n // in CSS). We don't undo this because we are about to expand the section.\n div.style.display = \"block\";\n }\n return div.scrollHeight;\n }\n\n onTransitionEnd(event) {\n // Only update the animating state for our own transition (not a child's)\n if (event.target === event.currentTarget) {\n this.setState({isAnimating: false});\n }\n }\n\n renderIcon() {\n const {icon} = this.props;\n if (icon && icon.startsWith(\"moz-extension://\")) {\n return ;\n }\n return ;\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.setState({showContextMenu: true});\n }\n\n onMenuButtonMouseEnter() {\n this.setState({menuButtonHover: true});\n }\n\n onMenuButtonMouseLeave() {\n this.setState({menuButtonHover: false});\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n render() {\n const isCollapsible = this.props.collapsed !== undefined;\n const {enableAnimation, isAnimating, maxHeight, menuButtonHover, showContextMenu} = this.state;\n const {id, eventSource, collapsed, learnMore, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n const active = menuButtonHover || showContextMenu;\n let bodyStyle;\n if (isAnimating && !collapsed) {\n bodyStyle = {maxHeight};\n } else if (!isAnimating && collapsed) {\n bodyStyle = {display: \"none\"};\n }\n return (\n \n \n
\n \n \n {this.renderIcon()}\n {getFormattedMessage(title)}\n \n \n {isCollapsible && }\n \n \n {learnMore &&\n \n \n \n \n \n }\n \n \n \n
\n \n \n \n \n \n {showContextMenu &&\n \n }\n
\n
\n \n \n {this.props.children}\n
\n \n \n );\n }\n}\n\n_CollapsibleSection.defaultProps = {\n document: global.document || {\n addEventListener: () => {},\n removeEventListener: () => {},\n visibilityState: \"hidden\",\n },\n Prefs: {values: {}},\n};\n\nexport const CollapsibleSection = injectIntl(_CollapsibleSection);\n","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst DEFAULT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"RemoveSection\", \"CheckCollapsed\", \"Separator\", \"ManageSection\"];\nconst WEBEXT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"CheckCollapsed\", \"Separator\", \"ManageWebExtension\"];\n\nexport class _SectionMenu extends React.PureComponent {\n getOptions() {\n const {props} = this;\n\n const propOptions = props.isWebExtension ? [...WEBEXT_SECTION_MENU_OPTIONS] : [...DEFAULT_SECTION_MENU_OPTIONS];\n // Prepend custom options and a separator\n if (props.extraOptions) {\n propOptions.splice(0, 0, ...props.extraOptions, \"Separator\");\n }\n // Insert privacy notice before the last option (\"ManageSection\")\n if (props.privacyNoticeURL) {\n propOptions.splice(-1, 0, \"PrivacyNotice\");\n }\n\n const options = propOptions.map(o => SectionMenuOptions[o](props)).map(option => {\n const {action, id, type, userEvent} = option;\n if (!type && id) {\n option.label = props.intl.formatMessage({id});\n option.onClick = () => {\n props.dispatch(action);\n if (userEvent) {\n props.dispatch(ac.UserEvent({\n event: userEvent,\n source: props.source,\n }));\n }\n };\n }\n return option;\n });\n\n // This is for accessibility to support making each item tabbable.\n // We want to know which item is the first and which item\n // is the last, so we can close the context menu accordingly.\n options[0].first = true;\n options[options.length - 1].last = true;\n return options;\n }\n\n render() {\n return ( );\n }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * List of functions that return items that can be included as menu options in a\n * SectionMenu. All functions take the section as the only parameter.\n */\nexport const SectionMenuOptions = {\n Separator: () => ({type: \"separator\"}),\n MoveUp: section => ({\n id: \"section_menu_action_move_up\",\n icon: \"arrowhead-up\",\n action: ac.OnlyToMain({\n type: at.SECTION_MOVE,\n data: {id: section.id, direction: -1},\n }),\n userEvent: \"MENU_MOVE_UP\",\n disabled: !!section.isFirst,\n }),\n MoveDown: section => ({\n id: \"section_menu_action_move_down\",\n icon: \"arrowhead-down\",\n action: ac.OnlyToMain({\n type: at.SECTION_MOVE,\n data: {id: section.id, direction: +1},\n }),\n userEvent: \"MENU_MOVE_DOWN\",\n disabled: !!section.isLast,\n }),\n RemoveSection: section => ({\n id: \"section_menu_action_remove_section\",\n icon: \"dismiss\",\n action: ac.SetPref(section.showPrefName, false),\n userEvent: \"MENU_REMOVE\",\n }),\n CollapseSection: section => ({\n id: \"section_menu_action_collapse_section\",\n icon: \"minimize\",\n action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: true}}}),\n userEvent: \"MENU_COLLAPSE\",\n }),\n ExpandSection: section => ({\n id: \"section_menu_action_expand_section\",\n icon: \"maximize\",\n action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: false}}}),\n userEvent: \"MENU_EXPAND\",\n }),\n ManageSection: section => ({\n id: \"section_menu_action_manage_section\",\n icon: \"settings\",\n action: ac.OnlyToMain({type: at.SETTINGS_OPEN}),\n userEvent: \"MENU_MANAGE\",\n }),\n ManageWebExtension: section => ({\n id: \"section_menu_action_manage_webext\",\n icon: \"settings\",\n action: ac.OnlyToMain({type: at.OPEN_WEBEXT_SETTINGS, data: section.id}),\n }),\n AddTopSite: section => ({\n id: \"section_menu_action_add_topsite\",\n icon: \"add\",\n action: {type: at.TOP_SITES_EDIT, data: {index: -1}},\n userEvent: \"MENU_ADD_TOPSITE\",\n }),\n AddSearchShortcut: section => ({\n id: \"section_menu_action_add_search_engine\",\n icon: \"search\",\n action: {type: at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL},\n userEvent: \"MENU_ADD_SEARCH\",\n }),\n PrivacyNotice: section => ({\n id: \"section_menu_action_privacy_notice\",\n icon: \"info\",\n action: ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: {url: section.privacyNoticeURL},\n }),\n userEvent: \"MENU_PRIVACY_NOTICE\",\n }),\n CheckCollapsed: section => (section.collapsed ? SectionMenuOptions.ExpandSection(section) : SectionMenuOptions.CollapseSection(section)),\n};\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\nimport React from \"react\";\n\n// Currently record only a fixed set of sections. This will prevent data\n// from custom sections from showing up or from topstories.\nconst RECORDED_SECTIONS = [\"highlights\", \"topsites\"];\n\nexport class ComponentPerfTimer extends React.Component {\n constructor(props) {\n super(props);\n // Just for test dependency injection:\n this.perfSvc = this.props.perfSvc || perfSvc;\n\n this._sendBadStateEvent = this._sendBadStateEvent.bind(this);\n this._sendPaintedEvent = this._sendPaintedEvent.bind(this);\n this._reportMissingData = false;\n this._timestampHandled = false;\n this._recordedFirstRender = false;\n }\n\n componentDidMount() {\n if (!RECORDED_SECTIONS.includes(this.props.id)) {\n return;\n }\n\n this._maybeSendPaintedEvent();\n }\n\n componentDidUpdate() {\n if (!RECORDED_SECTIONS.includes(this.props.id)) {\n return;\n }\n\n this._maybeSendPaintedEvent();\n }\n\n /**\n * Call the given callback after the upcoming frame paints.\n *\n * @note Both setTimeout and requestAnimationFrame are throttled when the page\n * is hidden, so this callback may get called up to a second or so after the\n * requestAnimationFrame \"paint\" for hidden tabs.\n *\n * Newtabs hidden while loading will presumably be fairly rare (other than\n * preloaded tabs, which we will be filtering out on the server side), so such\n * cases should get lost in the noise.\n *\n * If we decide that it's important to find out when something that's hidden\n * has \"painted\", however, another option is to post a message to this window.\n * That should happen even faster than setTimeout, and, at least as of this\n * writing, it's not throttled in hidden windows in Firefox.\n *\n * @param {Function} callback\n *\n * @returns void\n */\n _afterFramePaint(callback) {\n requestAnimationFrame(() => setTimeout(callback, 0));\n }\n\n _maybeSendBadStateEvent() {\n // Follow up bugs:\n // https://github.com/mozilla/activity-stream/issues/3691\n if (!this.props.initialized) {\n // Remember to report back when data is available.\n this._reportMissingData = true;\n } else if (this._reportMissingData) {\n this._reportMissingData = false;\n // Report how long it took for component to become initialized.\n this._sendBadStateEvent();\n }\n }\n\n _maybeSendPaintedEvent() {\n // If we've already handled a timestamp, don't do it again.\n if (this._timestampHandled || !this.props.initialized) {\n return;\n }\n\n // And if we haven't, we're doing so now, so remember that. Even if\n // something goes wrong in the callback, we can't try again, as we'd be\n // sending back the wrong data, and we have to do it here, so that other\n // calls to this method while waiting for the next frame won't also try to\n // handle it.\n this._timestampHandled = true;\n this._afterFramePaint(this._sendPaintedEvent);\n }\n\n /**\n * Triggered by call to render. Only first call goes through due to\n * `_recordedFirstRender`.\n */\n _ensureFirstRenderTsRecorded() {\n // Used as t0 for recording how long component took to initialize.\n if (!this._recordedFirstRender) {\n this._recordedFirstRender = true;\n // topsites_first_render_ts, highlights_first_render_ts.\n const key = `${this.props.id}_first_render_ts`;\n this.perfSvc.mark(key);\n }\n }\n\n /**\n * Creates `TELEMETRY_UNDESIRED_EVENT` with timestamp in ms\n * of how much longer the data took to be ready for display than it would\n * have been the ideal case.\n * https://github.com/mozilla/ping-centre/issues/98\n */\n _sendBadStateEvent() {\n // highlights_data_ready_ts, topsites_data_ready_ts.\n const dataReadyKey = `${this.props.id}_data_ready_ts`;\n this.perfSvc.mark(dataReadyKey);\n\n try {\n const firstRenderKey = `${this.props.id}_first_render_ts`;\n // value has to be Int32.\n const value = parseInt(this.perfSvc.getMostRecentAbsMarkStartByName(dataReadyKey) -\n this.perfSvc.getMostRecentAbsMarkStartByName(firstRenderKey), 10);\n this.props.dispatch(ac.OnlyToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n // highlights_data_late_by_ms, topsites_data_late_by_ms.\n data: {[`${this.props.id}_data_late_by_ms`]: value},\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true.\n }\n }\n\n _sendPaintedEvent() {\n // Record first_painted event but only send if topsites.\n if (this.props.id !== \"topsites\") {\n return;\n }\n\n // topsites_first_painted_ts.\n const key = `${this.props.id}_first_painted_ts`;\n this.perfSvc.mark(key);\n\n try {\n const data = {};\n data[key] = this.perfSvc.getMostRecentAbsMarkStartByName(key);\n\n this.props.dispatch(ac.OnlyToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data,\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true. We should at least not blow up, and should continue\n // to set this._timestampHandled to avoid going through this again.\n }\n }\n\n render() {\n if (RECORDED_SECTIONS.includes(this.props.id)) {\n this._ensureFirstRenderTsRecorded();\n this._maybeSendBadStateEvent();\n }\n return this.props.children;\n }\n}\n","/* globals Services */\n\"use strict\";\n\n/* istanbul ignore if */\nif (typeof ChromeUtils !== \"undefined\") {\n ChromeUtils.import(\"resource://gre/modules/Services.jsm\");\n}\n\nlet usablePerfObj;\n\n/* istanbul ignore if */\n/* istanbul ignore else */\nif (typeof Services !== \"undefined\") {\n // Borrow the high-resolution timer from the hidden window....\n usablePerfObj = Services.appShell.hiddenDOMWindow.performance;\n} else if (typeof performance !== \"undefined\") {\n // we must be running in content space\n // eslint-disable-next-line no-undef\n usablePerfObj = performance;\n} else {\n // This is a dummy object so this file doesn't crash in the node prerendering\n // task.\n usablePerfObj = {\n now() {},\n mark() {},\n };\n}\n\nfunction _PerfService(options) {\n // For testing, so that we can use a fake Window.performance object with\n // known state.\n if (options && options.performanceObj) {\n this._perf = options.performanceObj;\n } else {\n this._perf = usablePerfObj;\n }\n}\n\n_PerfService.prototype = {\n /**\n * Calls the underlying mark() method on the appropriate Window.performance\n * object to add a mark with the given name to the appropriate performance\n * timeline.\n *\n * @param {String} name the name to give the current mark\n * @return {void}\n */\n mark: function mark(str) {\n this._perf.mark(str);\n },\n\n /**\n * Calls the underlying getEntriesByName on the appropriate Window.performance\n * object.\n *\n * @param {String} name\n * @param {String} type eg \"mark\"\n * @return {Array} Performance* objects\n */\n getEntriesByName: function getEntriesByName(name, type) {\n return this._perf.getEntriesByName(name, type);\n },\n\n /**\n * The timeOrigin property from the appropriate performance object.\n * Used to ensure that timestamps from the add-on code and the content code\n * are comparable.\n *\n * @note If this is called from a context without a window\n * (eg a JSM in chrome), it will return the timeOrigin of the XUL hidden\n * window, which appears to be the first created window (and thus\n * timeOrigin) in the browser. Note also, however, there is also a private\n * hidden window, presumably for private browsing, which appears to be\n * created dynamically later. Exactly how/when that shows up needs to be\n * investigated.\n *\n * @return {Number} A double of milliseconds with a precision of 0.5us.\n */\n get timeOrigin() {\n return this._perf.timeOrigin;\n },\n\n /**\n * Returns the \"absolute\" version of performance.now(), i.e. one that\n * should ([bug 1401406](https://bugzilla.mozilla.org/show_bug.cgi?id=1401406)\n * be comparable across both chrome and content.\n *\n * @return {Number}\n */\n absNow: function absNow() {\n return this.timeOrigin + this._perf.now();\n },\n\n /**\n * This returns the absolute startTime from the most recent performance.mark()\n * with the given name.\n *\n * @param {String} name the name to lookup the start time for\n *\n * @return {Number} the returned start time, as a DOMHighResTimeStamp\n *\n * @throws {Error} \"No Marks with the name ...\" if none are available\n *\n * @note Always surround calls to this by try/catch. Otherwise your code\n * may fail when the `privacy.resistFingerprinting` pref is true. When\n * this pref is set, all attempts to get marks will likely fail, which will\n * cause this method to throw.\n *\n * See [bug 1369303](https://bugzilla.mozilla.org/show_bug.cgi?id=1369303)\n * for more info.\n */\n getMostRecentAbsMarkStartByName(name) {\n let entries = this.getEntriesByName(name, \"mark\");\n\n if (!entries.length) {\n throw new Error(`No marks with the name ${name}`);\n }\n\n let mostRecentEntry = entries[entries.length - 1];\n return this._perf.timeOrigin + mostRecentEntry.startTime;\n },\n};\n\nthis.perfService = new _PerfService();\nconst EXPORTED_SYMBOLS = [\"_PerfService\", \"perfService\"];\n","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class MoreRecommendations extends React.PureComponent {\n render() {\n const {read_more_endpoint} = this.props;\n if (read_more_endpoint) {\n return (\n \n \n \n );\n }\n return null;\n }\n}\n","import {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class _PocketLoggedInCta extends React.PureComponent {\n render() {\n const {pocketCta} = this.props.Pocket;\n return (\n \n \n {pocketCta.ctaButton ? pocketCta.ctaButton : }\n \n\n \n \n {pocketCta.ctaText ? pocketCta.ctaText : }\n \n \n \n );\n }\n}\n\nexport const PocketLoggedInCta = connect(state => ({Pocket: state.Pocket}))(_PocketLoggedInCta);\n","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class Topic extends React.PureComponent {\n render() {\n const {url, name} = this.props;\n return ({name} );\n }\n}\n\nexport class Topics extends React.PureComponent {\n render() {\n const {topics} = this.props;\n return (\n \n \n {topics && topics.map(t => )} \n \n );\n }\n}\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {MIN_CORNER_FAVICON_SIZE, MIN_RICH_FAVICON_SIZE, TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SearchShortcutsForm} from \"./SearchShortcutsForm\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\nimport {TopSiteForm} from \"./TopSiteForm\";\nimport {TopSiteList} from \"./TopSite\";\n\nfunction topSiteIconType(link) {\n if (link.customScreenshotURL) {\n return \"custom_screenshot\";\n }\n if (link.tippyTopIcon || link.faviconRef === \"tippytop\") {\n return \"tippytop\";\n }\n if (link.faviconSize >= MIN_RICH_FAVICON_SIZE) {\n return \"rich_icon\";\n }\n if (link.screenshot && link.faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n return \"screenshot_with_icon\";\n }\n if (link.screenshot) {\n return \"screenshot\";\n }\n return \"no_image\";\n}\n\n/**\n * Iterates through TopSites and counts types of images.\n * @param acc Accumulator for reducer.\n * @param topsite Entry in TopSites.\n */\nfunction countTopSitesIconsTypes(topSites) {\n const countTopSitesTypes = (acc, link) => {\n acc[topSiteIconType(link)]++;\n return acc;\n };\n\n return topSites.reduce(countTopSitesTypes, {\n \"custom_screenshot\": 0,\n \"screenshot_with_icon\": 0,\n \"screenshot\": 0,\n \"tippytop\": 0,\n \"rich_icon\": 0,\n \"no_image\": 0,\n });\n}\n\nexport class _TopSites extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onEditFormClose = this.onEditFormClose.bind(this);\n this.onSearchShortcutsFormClose = this.onSearchShortcutsFormClose.bind(this);\n }\n\n /**\n * Dispatch session statistics about the quality of TopSites icons and pinned count.\n */\n _dispatchTopSitesStats() {\n const topSites = this._getVisibleTopSites();\n const topSitesIconsStats = countTopSitesIconsTypes(topSites);\n const topSitesPinned = topSites.filter(site => !!site.isPinned).length;\n const searchShortcuts = topSites.filter(site => !!site.searchTopSite).length;\n // Dispatch telemetry event with the count of TopSites images types.\n this.props.dispatch(ac.AlsoToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data: {\n topsites_icon_stats: topSitesIconsStats,\n topsites_pinned: topSitesPinned,\n topsites_search_shortcuts: searchShortcuts,\n },\n }));\n }\n\n /**\n * Return the TopSites that are visible based on prefs and window width.\n */\n _getVisibleTopSites() {\n // We hide 2 sites per row when not in the wide layout.\n let sitesPerRow = TOP_SITES_MAX_SITES_PER_ROW;\n // $break-point-widest = 1072px (from _variables.scss)\n if (!global.matchMedia(`(min-width: 1072px)`).matches) {\n sitesPerRow -= 2;\n }\n return this.props.TopSites.rows.slice(0, this.props.TopSitesRows * sitesPerRow);\n }\n\n componentDidUpdate() {\n this._dispatchTopSitesStats();\n }\n\n componentDidMount() {\n this._dispatchTopSitesStats();\n }\n\n onEditFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"TOP_SITES_EDIT_CLOSE\",\n }));\n this.props.dispatch({type: at.TOP_SITES_CANCEL_EDIT});\n }\n\n onSearchShortcutsFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_CLOSE\",\n }));\n this.props.dispatch({type: at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL});\n }\n\n render() {\n const {props} = this;\n const {editForm, showSearchShortcutsForm} = props.TopSites;\n const extraMenuOptions = [\"AddTopSite\"];\n if (props.Prefs.values[\"improvesearch.topSiteSearchShortcuts\"]) {\n extraMenuOptions.push(\"AddSearchShortcut\");\n }\n\n return (\n \n \n \n {editForm &&\n
\n }\n {showSearchShortcutsForm &&\n
\n }\n
\n \n );\n }\n}\n\nexport const TopSites = connect(state => ({\n TopSites: state.TopSites,\n Prefs: state.Prefs,\n TopSitesRows: state.Prefs.values.topSitesRows,\n}))(injectIntl(_TopSites));\n","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// the special top site for search shortcut experiment can only have the option to unpin (which removes) the topsite\nexport const TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"Separator\", \"BlockUrl\"];\n// minimum size necessary to show a rich icon instead of a screenshot\nexport const MIN_RICH_FAVICON_SIZE = 96;\n// minimum size necessary to show any icon in the top left corner with a screenshot\nexport const MIN_CORNER_FAVICON_SIZE = 16;\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\n\nclass SelectableSearchShortcut extends React.PureComponent {\n render() {\n const {shortcut, selected} = this.props;\n const imageStyle = {backgroundImage: `url(\"${shortcut.tippyTopIcon}\")`};\n return (\n \n
\n
\n \n
\n \n \n {shortcut.keyword} \n
\n \n
\n \n
\n );\n }\n}\n\nexport class SearchShortcutsForm extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onSaveButtonClick = this.onSaveButtonClick.bind(this);\n\n // clone the shortcuts and add them to the state so we can add isSelected property\n const shortcuts = [];\n const {rows, searchShortcuts} = props.TopSites;\n searchShortcuts.forEach(shortcut => {\n shortcuts.push({\n ...shortcut,\n isSelected: !!rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword),\n });\n });\n this.state = {shortcuts};\n }\n\n handleChange(event) {\n const {target} = event;\n const {name, checked} = target;\n this.setState(prevState => {\n const shortcuts = prevState.shortcuts.slice();\n let shortcut = shortcuts.find(({keyword}) => keyword === name);\n shortcut.isSelected = checked;\n return {shortcuts};\n });\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onSaveButtonClick(ev) {\n ev.preventDefault();\n\n // Check if there were any changes and act accordingly\n const {rows} = this.props.TopSites;\n const pinQueue = [];\n const unpinQueue = [];\n this.state.shortcuts.forEach(shortcut => {\n const alreadyPinned = rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword);\n if (shortcut.isSelected && !alreadyPinned) {\n pinQueue.push(this._searchTopSite(shortcut));\n } else if (!shortcut.isSelected && alreadyPinned) {\n unpinQueue.push({url: alreadyPinned.url, searchVendor: shortcut.shortURL});\n }\n });\n\n // Tell the feed to do the work.\n this.props.dispatch(ac.OnlyToMain({\n type: at.UPDATE_PINNED_SEARCH_SHORTCUTS,\n data: {\n addedShortcuts: pinQueue,\n deletedShortcuts: unpinQueue,\n },\n }));\n\n // Send the Telemetry pings.\n pinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_ADD\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n unpinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_DELETE\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n\n this.props.onClose();\n }\n\n _searchTopSite(shortcut) {\n return {\n url: shortcut.url,\n searchTopSite: true,\n label: shortcut.keyword,\n searchVendor: shortcut.shortURL,\n };\n }\n\n render() {\n return (\n \n );\n }\n}\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {\n MIN_CORNER_FAVICON_SIZE,\n MIN_RICH_FAVICON_SIZE,\n TOP_SITES_CONTEXT_MENU_OPTIONS,\n TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS,\n TOP_SITES_SOURCE,\n} from \"./TopSitesConstants\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {ScreenshotUtils} from \"content-src/lib/screenshot-utils\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\n\nexport class TopSiteLink extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {screenshotImage: null};\n this.onDragEvent = this.onDragEvent.bind(this);\n this.onKeyPress = this.onKeyPress.bind(this);\n }\n\n /*\n * Helper to determine whether the drop zone should allow a drop. We only allow\n * dropping top sites for now.\n */\n _allowDrop(e) {\n return e.dataTransfer.types.includes(\"text/topsite-index\");\n }\n\n onDragEvent(event) {\n switch (event.type) {\n case \"click\":\n // Stop any link clicks if we started any dragging\n if (this.dragged) {\n event.preventDefault();\n }\n break;\n case \"dragstart\":\n this.dragged = true;\n event.dataTransfer.effectAllowed = \"move\";\n event.dataTransfer.setData(\"text/topsite-index\", this.props.index);\n event.target.blur();\n this.props.onDragEvent(event, this.props.index, this.props.link, this.props.title);\n break;\n case \"dragend\":\n this.props.onDragEvent(event);\n break;\n case \"dragenter\":\n case \"dragover\":\n case \"drop\":\n if (this._allowDrop(event)) {\n event.preventDefault();\n this.props.onDragEvent(event, this.props.index);\n }\n break;\n case \"mousedown\":\n // Block the scroll wheel from appearing for middle clicks on search top sites\n if (event.button === 1 && this.props.link.searchTopSite) {\n event.preventDefault();\n }\n // Reset at the first mouse event of a potential drag\n this.dragged = false;\n break;\n }\n }\n\n /**\n * Helper to obtain the next state based on nextProps and prevState.\n *\n * NOTE: Rename this method to getDerivedStateFromProps when we update React\n * to >= 16.3. We will need to update tests as well. We cannot rename this\n * method to getDerivedStateFromProps now because there is a mismatch in\n * the React version that we are using for both testing and production.\n * (i.e. react-test-render => \"16.3.2\", react => \"16.2.0\").\n *\n * See https://github.com/airbnb/enzyme/blob/master/packages/enzyme-adapter-react-16/package.json#L43.\n */\n static getNextStateFromProps(nextProps, prevState) {\n const {screenshot} = nextProps.link;\n const imageInState = ScreenshotUtils.isRemoteImageLocal(prevState.screenshotImage, screenshot);\n if (imageInState) {\n return null;\n }\n\n // Since image was updated, attempt to revoke old image blob URL, if it exists.\n ScreenshotUtils.maybeRevokeBlobObjectURL(prevState.screenshotImage);\n\n return {screenshotImage: ScreenshotUtils.createLocalImageObject(screenshot)};\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillMount() {\n const nextState = TopSiteLink.getNextStateFromProps(this.props, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillReceiveProps(nextProps) {\n const nextState = TopSiteLink.getNextStateFromProps(nextProps, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n ScreenshotUtils.maybeRevokeBlobObjectURL(this.state.screenshotImage);\n }\n\n onKeyPress(event) {\n // If we have tabbed to a search shortcut top site, and we click 'enter',\n // we should execute the onClick function. This needs to be added because\n // search top sites are anchor tags without an href. See bug 1483135\n if (this.props.link.searchTopSite && event.key === \"Enter\") {\n this.props.onClick(event);\n }\n }\n\n render() {\n const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}${link.searchTopSite ? \" search-shortcut\" : \"\"}`;\n const {tippyTopIcon, faviconSize} = link;\n const [letterFallback] = title;\n let imageClassName;\n let imageStyle;\n let showSmallFavicon = false;\n let smallFaviconStyle;\n let smallFaviconFallback;\n let hasScreenshotImage = this.state.screenshotImage && this.state.screenshotImage.url;\n if (defaultStyle) { // force no styles (letter fallback) even if the link has imagery\n smallFaviconFallback = false;\n } else if (link.searchTopSite) {\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon})`,\n };\n smallFaviconStyle = {backgroundImage: `url(${tippyTopIcon})`};\n } else if (link.customScreenshotURL) {\n // assume high quality custom screenshot and use rich icon styles and class names\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: hasScreenshotImage ? `url(${this.state.screenshotImage.url})` : \"none\",\n };\n } else if (tippyTopIcon || faviconSize >= MIN_RICH_FAVICON_SIZE) {\n // styles and class names for top sites with rich icons\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon || link.favicon})`,\n };\n } else {\n // styles and class names for top sites with screenshot + small icon in top left corner\n imageClassName = `screenshot${hasScreenshotImage ? \" active\" : \"\"}`;\n imageStyle = {backgroundImage: hasScreenshotImage ? `url(${this.state.screenshotImage.url})` : \"none\"};\n\n // only show a favicon in top left if it's greater than 16x16\n if (faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n showSmallFavicon = true;\n smallFaviconStyle = {backgroundImage: `url(${link.favicon})`};\n } else if (hasScreenshotImage) {\n // Don't show a small favicon if there is no screenshot, because that\n // would result in two fallback icons\n showSmallFavicon = true;\n smallFaviconFallback = true;\n }\n }\n let draggableProps = {};\n if (isDraggable) {\n draggableProps = {\n onClick: this.onDragEvent,\n onDragEnd: this.onDragEvent,\n onDragStart: this.onDragEvent,\n onMouseDown: this.onDragEvent,\n };\n }\n return (\n \n );\n }\n}\nTopSiteLink.defaultProps = {\n title: \"\",\n link: {},\n isDraggable: true,\n};\n\nexport class TopSite extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {showContextMenu: false};\n this.onLinkClick = this.onLinkClick.bind(this);\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n }\n\n /**\n * Report to telemetry additional information about the item.\n */\n _getTelemetryInfo() {\n const value = {icon_type: this.props.link.iconType};\n // Filter out \"not_pinned\" type for being the default\n if (this.props.link.isPinned) {\n value.card_type = \"pinned\";\n }\n if (this.props.link.searchTopSite) {\n // Set the card_type as \"search\" regardless of its pinning status\n value.card_type = \"search\";\n value.search_vendor = this.props.link.hostname;\n }\n return {value};\n }\n\n userEvent(event) {\n this.props.dispatch(ac.UserEvent(Object.assign({\n event,\n source: TOP_SITES_SOURCE,\n action_position: this.props.index,\n }, this._getTelemetryInfo())));\n }\n\n onLinkClick(event) {\n this.userEvent(\"CLICK\");\n\n // Specially handle a top site link click for \"typed\" frecency bonus as\n // specified as a property on the link.\n event.preventDefault();\n const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n if (!this.props.link.searchTopSite) {\n this.props.dispatch(ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}}),\n }));\n } else {\n this.props.dispatch(ac.OnlyToMain({\n type: at.FILL_SEARCH_TERM,\n data: {label: this.props.link.label},\n }));\n }\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.props.onActivate(this.props.index);\n this.setState({showContextMenu: true});\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n render() {\n const {props} = this;\n const {link} = props;\n const isContextMenuOpen = this.state.showContextMenu && props.activeIndex === props.index;\n const title = link.label || link.hostname;\n return (\n \n \n \n \n \n \n {isContextMenuOpen &&\n \n }\n
\n );\n }\n}\nTopSite.defaultProps = {\n link: {},\n onActivate() {},\n};\n\nexport class TopSitePlaceholder extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onEditButtonClick = this.onEditButtonClick.bind(this);\n }\n\n onEditButtonClick() {\n this.props.dispatch(\n {type: at.TOP_SITES_EDIT, data: {index: this.props.index}});\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport class _TopSiteList extends React.PureComponent {\n static get DEFAULT_STATE() {\n return {\n activeIndex: null,\n draggedIndex: null,\n draggedSite: null,\n draggedTitle: null,\n topSitesPreview: null,\n };\n }\n\n constructor(props) {\n super(props);\n this.state = _TopSiteList.DEFAULT_STATE;\n this.onDragEvent = this.onDragEvent.bind(this);\n this.onActivate = this.onActivate.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.state.draggedSite) {\n const prevTopSites = this.props.TopSites && this.props.TopSites.rows;\n const newTopSites = nextProps.TopSites && nextProps.TopSites.rows;\n if (prevTopSites && prevTopSites[this.state.draggedIndex] &&\n prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url &&\n (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) {\n // We got the new order from the redux store via props. We can clear state now.\n this.setState(_TopSiteList.DEFAULT_STATE);\n }\n }\n }\n\n userEvent(event, index) {\n this.props.dispatch(ac.UserEvent({\n event,\n source: TOP_SITES_SOURCE,\n action_position: index,\n }));\n }\n\n onDragEvent(event, index, link, title) {\n switch (event.type) {\n case \"dragstart\":\n this.dropped = false;\n this.setState({\n draggedIndex: index,\n draggedSite: link,\n draggedTitle: title,\n activeIndex: null,\n });\n this.userEvent(\"DRAG\", index);\n break;\n case \"dragend\":\n if (!this.dropped) {\n // If there was no drop event, reset the state to the default.\n this.setState(_TopSiteList.DEFAULT_STATE);\n }\n break;\n case \"dragenter\":\n if (index === this.state.draggedIndex) {\n this.setState({topSitesPreview: null});\n } else {\n this.setState({topSitesPreview: this._makeTopSitesPreview(index)});\n }\n break;\n case \"drop\":\n if (index !== this.state.draggedIndex) {\n this.dropped = true;\n this.props.dispatch(ac.AlsoToMain({\n type: at.TOP_SITES_INSERT,\n data: {\n site: {\n url: this.state.draggedSite.url,\n label: this.state.draggedTitle,\n customScreenshotURL: this.state.draggedSite.customScreenshotURL,\n // Only if the search topsites experiment is enabled\n ...(this.state.draggedSite.searchTopSite && {searchTopSite: true}),\n },\n index,\n draggedFromIndex: this.state.draggedIndex,\n },\n }));\n this.userEvent(\"DROP\", index);\n }\n break;\n }\n }\n\n _getTopSites() {\n // Make a copy of the sites to truncate or extend to desired length\n let topSites = this.props.TopSites.rows.slice();\n topSites.length = this.props.TopSitesRows * TOP_SITES_MAX_SITES_PER_ROW;\n return topSites;\n }\n\n /**\n * Make a preview of the topsites that will be the result of dropping the currently\n * dragged site at the specified index.\n */\n _makeTopSitesPreview(index) {\n const topSites = this._getTopSites();\n topSites[this.state.draggedIndex] = null;\n const pinnedOnly = topSites.map(site => ((site && site.isPinned) ? site : null));\n const unpinned = topSites.filter(site => site && !site.isPinned);\n const siteToInsert = Object.assign({}, this.state.draggedSite, {isPinned: true, isDragged: true});\n if (!pinnedOnly[index]) {\n pinnedOnly[index] = siteToInsert;\n } else {\n // Find the hole to shift the pinned site(s) towards. We shift towards the\n // hole left by the site being dragged.\n let holeIndex = index;\n const indexStep = index > this.state.draggedIndex ? -1 : 1;\n while (pinnedOnly[holeIndex]) {\n holeIndex += indexStep;\n }\n\n // Shift towards the hole.\n const shiftingStep = index > this.state.draggedIndex ? 1 : -1;\n while (holeIndex !== index) {\n const nextIndex = holeIndex + shiftingStep;\n pinnedOnly[holeIndex] = pinnedOnly[nextIndex];\n holeIndex = nextIndex;\n }\n pinnedOnly[index] = siteToInsert;\n }\n\n // Fill in the remaining holes with unpinned sites.\n const preview = pinnedOnly;\n for (let i = 0; i < preview.length; i++) {\n if (!preview[i]) {\n preview[i] = unpinned.shift() || null;\n }\n }\n\n return preview;\n }\n\n onActivate(index) {\n this.setState({activeIndex: index});\n }\n\n render() {\n const {props} = this;\n const topSites = this.state.topSitesPreview || this._getTopSites();\n const topSitesUI = [];\n const commonProps = {\n onDragEvent: this.onDragEvent,\n dispatch: props.dispatch,\n intl: props.intl,\n };\n // We assign a key to each placeholder slot. We need it to be independent\n // of the slot index (i below) so that the keys used stay the same during\n // drag and drop reordering and the underlying DOM nodes are reused.\n // This mostly (only?) affects linux so be sure to test on linux before changing.\n let holeIndex = 0;\n\n // On narrow viewports, we only show 6 sites per row. We'll mark the rest as\n // .hide-for-narrow to hide in CSS via @media query.\n const maxNarrowVisibleIndex = props.TopSitesRows * 6;\n\n for (let i = 0, l = topSites.length; i < l; i++) {\n const link = topSites[i] && Object.assign({}, topSites[i], {iconType: this.props.topSiteIconType(topSites[i])});\n const slotProps = {\n key: link ? link.url : holeIndex++,\n index: i,\n };\n if (i >= maxNarrowVisibleIndex) {\n slotProps.className = \"hide-for-narrow\";\n }\n topSitesUI.push(!link ? (\n \n ) : (\n \n ));\n }\n return ();\n }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\n\nexport class _StartupOverlay extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onInputChange = this.onInputChange.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.clickSkip = this.clickSkip.bind(this);\n this.initScene = this.initScene.bind(this);\n this.removeOverlay = this.removeOverlay.bind(this);\n this.onInputInvalid = this.onInputInvalid.bind(this);\n\n this.state = {\n emailInput: \"\",\n overlayRemoved: false,\n flowId: \"\",\n flowBeginTime: 0,\n };\n this.didFetch = false;\n }\n\n async componentWillUpdate() {\n if (this.props.fxa_endpoint && !this.didFetch) {\n try {\n this.didFetch = true;\n const fxaParams = \"entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun&form_type=email\";\n const response = await fetch(`${this.props.fxa_endpoint}/metrics-flow?${fxaParams}`);\n if (response.status === 200) {\n const {flowId, flowBeginTime} = await response.json();\n this.setState({flowId, flowBeginTime});\n } else {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_FETCH_ERROR\", value: response.status}}));\n }\n } catch (error) {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_ERROR\"}}));\n }\n }\n }\n\n componentDidMount() {\n this.initScene();\n }\n\n initScene() {\n // Timeout to allow the scene to render once before attaching the attribute\n // to trigger the animation.\n setTimeout(() => {\n this.setState({show: true});\n }, 10);\n }\n\n removeOverlay() {\n window.removeEventListener(\"visibilitychange\", this.removeOverlay);\n document.body.classList.remove(\"hide-main\");\n this.setState({show: false});\n setTimeout(() => {\n // Allow scrolling and fully remove overlay after animation finishes.\n document.body.classList.remove(\"welcome\");\n this.setState({overlayRemoved: true});\n }, 400);\n }\n\n onInputChange(e) {\n let error = e.target.previousSibling;\n this.setState({emailInput: e.target.value});\n error.classList.remove(\"active\");\n e.target.classList.remove(\"invalid\");\n }\n\n onSubmit() {\n this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\", ...this._getFormInfo()}));\n\n window.addEventListener(\"visibilitychange\", this.removeOverlay);\n }\n\n clickSkip() {\n this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\", ...this._getFormInfo()}));\n this.removeOverlay();\n }\n\n /**\n * Report to telemetry additional information about the form submission.\n */\n _getFormInfo() {\n const value = {has_flow_params: this.state.flowId.length > 0};\n return {value};\n }\n\n onInputInvalid(e) {\n let error = e.target.previousSibling;\n error.classList.add(\"active\");\n e.target.classList.add(\"invalid\");\n e.preventDefault(); // Override built-in form validation popup\n e.target.focus();\n }\n\n render() {\n // When skipping the onboarding tour we show AS but we are still on\n // about:welcome, prop.isFirstrun is true and StartupOverlay is rendered\n if (this.state.overlayRemoved) {\n return null;\n }\n\n let termsLink = ( );\n let privacyLink = ( );\n\n return (\n \n );\n }\n}\n\nconst getState = state => ({fxa_endpoint: state.Prefs.values.fxa_endpoint});\nexport const StartupOverlay = connect(getState)(injectIntl(_StartupOverlay));\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nexport class DetectUserSessionStart {\n constructor(store, options = {}) {\n this._store = store;\n // Overrides for testing\n this.document = options.document || global.document;\n this._perfService = options.perfService || perfSvc;\n this._onVisibilityChange = this._onVisibilityChange.bind(this);\n }\n\n /**\n * sendEventOrAddListener - Notify immediately if the page is already visible,\n * or else set up a listener for when visibility changes.\n * This is needed for accurate session tracking for telemetry,\n * because tabs are pre-loaded.\n */\n sendEventOrAddListener() {\n if (this.document.visibilityState === VISIBLE) {\n // If the document is already visible, to the user, send a notification\n // immediately that a session has started.\n this._sendEvent();\n } else {\n // If the document is not visible, listen for when it does become visible.\n this.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n /**\n * _sendEvent - Sends a message to the main process to indicate the current\n * tab is now visible to the user, includes the\n * visibility_event_rcvd_ts time in ms from the UNIX epoch.\n */\n _sendEvent() {\n this._perfService.mark(\"visibility_event_rcvd_ts\");\n\n try {\n let visibility_event_rcvd_ts = this._perfService\n .getMostRecentAbsMarkStartByName(\"visibility_event_rcvd_ts\");\n\n this._store.dispatch(ac.AlsoToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data: {visibility_event_rcvd_ts},\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true. We should at least not blow up.\n }\n }\n\n /**\n * _onVisibilityChange - If the visibility has changed to visible, sends a notification\n * and removes the event listener. This should only be called once per tab.\n */\n _onVisibilityChange() {\n if (this.document.visibilityState === VISIBLE) {\n this._sendEvent();\n this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n}\n","export function enableASRouterContent(store, asrouterContent) {\n // Enable asrouter content\n store.subscribe(() => {\n const state = store.getState();\n if (!state.ASRouter.initialized) {\n return;\n }\n\n if (!asrouterContent.initialized) {\n asrouterContent.init();\n }\n });\n // Return this for testing purposes\n return {asrouterContent};\n}\n","/* eslint no-magic-numbers: [0] */\n\nconst MAX_PLACEABLES = 100;\n\nconst entryIdentifierRe = /-?[a-zA-Z][a-zA-Z0-9_-]*/y;\nconst identifierRe = /[a-zA-Z][a-zA-Z0-9_-]*/y;\nconst functionIdentifierRe = /^[A-Z][A-Z_?-]*$/;\n\n/**\n * The `Parser` class is responsible for parsing FTL resources.\n *\n * It's only public method is `getResource(source)` which takes an FTL string\n * and returns a two element Array with an Object of entries generated from the\n * source as the first element and an array of SyntaxError objects as the\n * second.\n *\n * This parser is optimized for runtime performance.\n *\n * There is an equivalent of this parser in syntax/parser which is\n * generating full AST which is useful for FTL tools.\n */\nclass RuntimeParser {\n /**\n * Parse FTL code into entries formattable by the MessageContext.\n *\n * Given a string of FTL syntax, return a map of entries that can be passed\n * to MessageContext.format and a list of errors encountered during parsing.\n *\n * @param {String} string\n * @returns {Array}\n */\n getResource(string) {\n this._source = string;\n this._index = 0;\n this._length = string.length;\n this.entries = {};\n\n const errors = [];\n\n this.skipWS();\n while (this._index < this._length) {\n try {\n this.getEntry();\n } catch (e) {\n if (e instanceof SyntaxError) {\n errors.push(e);\n\n this.skipToNextEntryStart();\n } else {\n throw e;\n }\n }\n this.skipWS();\n }\n\n return [this.entries, errors];\n }\n\n /**\n * Parse the source string from the current index as an FTL entry\n * and add it to object's entries property.\n *\n * @private\n */\n getEntry() {\n // The index here should either be at the beginning of the file\n // or right after new line.\n if (this._index !== 0 &&\n this._source[this._index - 1] !== \"\\n\") {\n throw this.error(`Expected an entry to start\n at the beginning of the file or on a new line.`);\n }\n\n const ch = this._source[this._index];\n\n // We don't care about comments or sections at runtime\n if (ch === \"/\" ||\n (ch === \"#\" &&\n [\" \", \"#\", \"\\n\"].includes(this._source[this._index + 1]))) {\n this.skipComment();\n return;\n }\n\n if (ch === \"[\") {\n this.skipSection();\n return;\n }\n\n this.getMessage();\n }\n\n /**\n * Skip the section entry from the current index.\n *\n * @private\n */\n skipSection() {\n this._index += 1;\n if (this._source[this._index] !== \"[\") {\n throw this.error('Expected \"[[\" to open a section');\n }\n\n this._index += 1;\n\n this.skipInlineWS();\n this.getVariantName();\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"]\" ||\n this._source[this._index + 1] !== \"]\") {\n throw this.error('Expected \"]]\" to close a section');\n }\n\n this._index += 2;\n }\n\n /**\n * Parse the source string from the current index as an FTL message\n * and add it to the entries property on the Parser.\n *\n * @private\n */\n getMessage() {\n const id = this.getEntryIdentifier();\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \"=\") {\n this._index++;\n }\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (id.startsWith(\"-\") && val === null) {\n throw this.error(\"Expected term to have a value\");\n }\n\n let attrs = null;\n\n if (this._source[this._index] === \" \") {\n const lineStart = this._index;\n this.skipInlineWS();\n\n if (this._source[this._index] === \".\") {\n this._index = lineStart;\n attrs = this.getAttributes();\n }\n }\n\n if (attrs === null && typeof val === \"string\") {\n this.entries[id] = val;\n } else {\n if (val === null && attrs === null) {\n throw this.error(\"Expected message to have a value or attributes\");\n }\n\n this.entries[id] = {};\n\n if (val !== null) {\n this.entries[id].val = val;\n }\n\n if (attrs !== null) {\n this.entries[id].attrs = attrs;\n }\n }\n }\n\n /**\n * Skip whitespace.\n *\n * @private\n */\n skipWS() {\n let ch = this._source[this._index];\n while (ch === \" \" || ch === \"\\n\" || ch === \"\\t\" || ch === \"\\r\") {\n ch = this._source[++this._index];\n }\n }\n\n /**\n * Skip inline whitespace (space and \\t).\n *\n * @private\n */\n skipInlineWS() {\n let ch = this._source[this._index];\n while (ch === \" \" || ch === \"\\t\") {\n ch = this._source[++this._index];\n }\n }\n\n /**\n * Skip blank lines.\n *\n * @private\n */\n skipBlankLines() {\n while (true) {\n const ptr = this._index;\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \"\\n\") {\n this._index += 1;\n } else {\n this._index = ptr;\n break;\n }\n }\n }\n\n /**\n * Get identifier using the provided regex.\n *\n * By default this will get identifiers of public messages, attributes and\n * external arguments (without the $).\n *\n * @returns {String}\n * @private\n */\n getIdentifier(re = identifierRe) {\n re.lastIndex = this._index;\n const result = re.exec(this._source);\n\n if (result === null) {\n this._index += 1;\n throw this.error(`Expected an identifier [${re.toString()}]`);\n }\n\n this._index = re.lastIndex;\n return result[0];\n }\n\n /**\n * Get identifier of a Message or a Term (staring with a dash).\n *\n * @returns {String}\n * @private\n */\n getEntryIdentifier() {\n return this.getIdentifier(entryIdentifierRe);\n }\n\n /**\n * Get Variant name.\n *\n * @returns {Object}\n * @private\n */\n getVariantName() {\n let name = \"\";\n\n const start = this._index;\n let cc = this._source.charCodeAt(this._index);\n\n if ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 || cc === 32) { // _ \n cc = this._source.charCodeAt(++this._index);\n } else {\n throw this.error(\"Expected a keyword (starting with [a-zA-Z_])\");\n }\n\n while ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || cc === 45 || cc === 32) { // _- \n cc = this._source.charCodeAt(++this._index);\n }\n\n // If we encountered the end of name, we want to test if the last\n // collected character is a space.\n // If it is, we will backtrack to the last non-space character because\n // the keyword cannot end with a space character.\n while (this._source.charCodeAt(this._index - 1) === 32) {\n this._index--;\n }\n\n name += this._source.slice(start, this._index);\n\n return { type: \"varname\", name };\n }\n\n /**\n * Get simple string argument enclosed in `\"`.\n *\n * @returns {String}\n * @private\n */\n getString() {\n const start = this._index + 1;\n\n while (++this._index < this._length) {\n const ch = this._source[this._index];\n\n if (ch === '\"') {\n break;\n }\n\n if (ch === \"\\n\") {\n throw this.error(\"Unterminated string expression\");\n }\n }\n\n return this._source.substring(start, this._index++);\n }\n\n /**\n * Parses a Message pattern.\n * Message Pattern may be a simple string or an array of strings\n * and placeable expressions.\n *\n * @returns {String|Array}\n * @private\n */\n getPattern() {\n // We're going to first try to see if the pattern is simple.\n // If it is we can just look for the end of the line and read the string.\n //\n // Then, if either the line contains a placeable opening `{` or the\n // next line starts an indentation, we switch to complex pattern.\n const start = this._index;\n let eol = this._source.indexOf(\"\\n\", this._index);\n\n if (eol === -1) {\n eol = this._length;\n }\n\n const firstLineContent = start !== eol ?\n this._source.slice(start, eol) : null;\n\n if (firstLineContent && firstLineContent.includes(\"{\")) {\n return this.getComplexPattern();\n }\n\n this._index = eol + 1;\n\n this.skipBlankLines();\n\n if (this._source[this._index] !== \" \") {\n // No indentation means we're done with this message. Callers should check\n // if the return value here is null. It may be OK for messages, but not OK\n // for terms, attributes and variants.\n return firstLineContent;\n }\n\n const lineStart = this._index;\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \".\") {\n // The pattern is followed by an attribute. Rewind _index to the first\n // column of the current line as expected by getAttributes.\n this._index = lineStart;\n return firstLineContent;\n }\n\n if (firstLineContent) {\n // It's a multiline pattern which started on the same line as the\n // identifier. Reparse the whole pattern to make sure we get all of it.\n this._index = start;\n }\n\n return this.getComplexPattern();\n }\n\n /**\n * Parses a complex Message pattern.\n * This function is called by getPattern when the message is multiline,\n * or contains escape chars or placeables.\n * It does full parsing of complex patterns.\n *\n * @returns {Array}\n * @private\n */\n /* eslint-disable complexity */\n getComplexPattern() {\n let buffer = \"\";\n const content = [];\n let placeables = 0;\n\n let ch = this._source[this._index];\n\n while (this._index < this._length) {\n // This block handles multi-line strings combining strings separated\n // by new line.\n if (ch === \"\\n\") {\n this._index++;\n\n // We want to capture the start and end pointers\n // around blank lines and add them to the buffer\n // but only if the blank lines are in the middle\n // of the string.\n const blankLinesStart = this._index;\n this.skipBlankLines();\n const blankLinesEnd = this._index;\n\n\n if (this._source[this._index] !== \" \") {\n break;\n }\n this.skipInlineWS();\n\n if (this._source[this._index] === \"}\" ||\n this._source[this._index] === \"[\" ||\n this._source[this._index] === \"*\" ||\n this._source[this._index] === \".\") {\n this._index = blankLinesEnd;\n break;\n }\n\n buffer += this._source.substring(blankLinesStart, blankLinesEnd);\n\n if (buffer.length || content.length) {\n buffer += \"\\n\";\n }\n ch = this._source[this._index];\n continue;\n } else if (ch === \"\\\\\") {\n const ch2 = this._source[this._index + 1];\n if (ch2 === '\"' || ch2 === \"{\" || ch2 === \"\\\\\") {\n ch = ch2;\n this._index++;\n }\n } else if (ch === \"{\") {\n // Push the buffer to content array right before placeable\n if (buffer.length) {\n content.push(buffer);\n }\n if (placeables > MAX_PLACEABLES - 1) {\n throw this.error(\n `Too many placeables, maximum allowed is ${MAX_PLACEABLES}`);\n }\n buffer = \"\";\n content.push(this.getPlaceable());\n\n this._index++;\n\n ch = this._source[this._index];\n placeables++;\n continue;\n }\n\n if (ch) {\n buffer += ch;\n }\n this._index++;\n ch = this._source[this._index];\n }\n\n if (content.length === 0) {\n return buffer.length ? buffer : null;\n }\n\n if (buffer.length) {\n content.push(buffer);\n }\n\n return content;\n }\n /* eslint-enable complexity */\n\n /**\n * Parses a single placeable in a Message pattern and returns its\n * expression.\n *\n * @returns {Object}\n * @private\n */\n getPlaceable() {\n const start = ++this._index;\n\n this.skipWS();\n\n if (this._source[this._index] === \"*\" ||\n (this._source[this._index] === \"[\" &&\n this._source[this._index + 1] !== \"]\")) {\n const variants = this.getVariants();\n\n return {\n type: \"sel\",\n exp: null,\n vars: variants[0],\n def: variants[1]\n };\n }\n\n // Rewind the index and only support in-line white-space now.\n this._index = start;\n this.skipInlineWS();\n\n const selector = this.getSelectorExpression();\n\n this.skipWS();\n\n const ch = this._source[this._index];\n\n if (ch === \"}\") {\n if (selector.type === \"attr\" && selector.id.name.startsWith(\"-\")) {\n throw this.error(\n \"Attributes of private messages cannot be interpolated.\"\n );\n }\n\n return selector;\n }\n\n if (ch !== \"-\" || this._source[this._index + 1] !== \">\") {\n throw this.error('Expected \"}\" or \"->\"');\n }\n\n if (selector.type === \"ref\") {\n throw this.error(\"Message references cannot be used as selectors.\");\n }\n\n if (selector.type === \"var\") {\n throw this.error(\"Variants cannot be used as selectors.\");\n }\n\n if (selector.type === \"attr\" && !selector.id.name.startsWith(\"-\")) {\n throw this.error(\n \"Attributes of public messages cannot be used as selectors.\"\n );\n }\n\n\n this._index += 2; // ->\n\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"\\n\") {\n throw this.error(\"Variants should be listed in a new line\");\n }\n\n this.skipWS();\n\n const variants = this.getVariants();\n\n if (variants[0].length === 0) {\n throw this.error(\"Expected members for the select expression\");\n }\n\n return {\n type: \"sel\",\n exp: selector,\n vars: variants[0],\n def: variants[1]\n };\n }\n\n /**\n * Parses a selector expression.\n *\n * @returns {Object}\n * @private\n */\n getSelectorExpression() {\n const literal = this.getLiteral();\n\n if (literal.type !== \"ref\") {\n return literal;\n }\n\n if (this._source[this._index] === \".\") {\n this._index++;\n\n const name = this.getIdentifier();\n this._index++;\n return {\n type: \"attr\",\n id: literal,\n name\n };\n }\n\n if (this._source[this._index] === \"[\") {\n this._index++;\n\n const key = this.getVariantKey();\n this._index++;\n return {\n type: \"var\",\n id: literal,\n key\n };\n }\n\n if (this._source[this._index] === \"(\") {\n this._index++;\n const args = this.getCallArgs();\n\n if (!functionIdentifierRe.test(literal.name)) {\n throw this.error(\"Function names must be all upper-case\");\n }\n\n this._index++;\n\n literal.type = \"fun\";\n\n return {\n type: \"call\",\n fun: literal,\n args\n };\n }\n\n return literal;\n }\n\n /**\n * Parses call arguments for a CallExpression.\n *\n * @returns {Array}\n * @private\n */\n getCallArgs() {\n const args = [];\n\n while (this._index < this._length) {\n this.skipInlineWS();\n\n if (this._source[this._index] === \")\") {\n return args;\n }\n\n const exp = this.getSelectorExpression();\n\n // MessageReference in this place may be an entity reference, like:\n // `call(foo)`, or, if it's followed by `:` it will be a key-value pair.\n if (exp.type !== \"ref\") {\n args.push(exp);\n } else {\n this.skipInlineWS();\n\n if (this._source[this._index] === \":\") {\n this._index++;\n this.skipInlineWS();\n\n const val = this.getSelectorExpression();\n\n // If the expression returned as a value of the argument\n // is not a quote delimited string or number, throw.\n //\n // We don't have to check here if the pattern is quote delimited\n // because that's the only type of string allowed in expressions.\n if (typeof val === \"string\" ||\n Array.isArray(val) ||\n val.type === \"num\") {\n args.push({\n type: \"narg\",\n name: exp.name,\n val\n });\n } else {\n this._index = this._source.lastIndexOf(\":\", this._index) + 1;\n throw this.error(\n \"Expected string in quotes, number.\");\n }\n\n } else {\n args.push(exp);\n }\n }\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \")\") {\n break;\n } else if (this._source[this._index] === \",\") {\n this._index++;\n } else {\n throw this.error('Expected \",\" or \")\"');\n }\n }\n\n return args;\n }\n\n /**\n * Parses an FTL Number.\n *\n * @returns {Object}\n * @private\n */\n getNumber() {\n let num = \"\";\n let cc = this._source.charCodeAt(this._index);\n\n // The number literal may start with negative sign `-`.\n if (cc === 45) {\n num += \"-\";\n cc = this._source.charCodeAt(++this._index);\n }\n\n // next, we expect at least one digit\n if (cc < 48 || cc > 57) {\n throw this.error(`Unknown literal \"${num}\"`);\n }\n\n // followed by potentially more digits\n while (cc >= 48 && cc <= 57) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n }\n\n // followed by an optional decimal separator `.`\n if (cc === 46) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n\n // followed by at least one digit\n if (cc < 48 || cc > 57) {\n throw this.error(`Unknown literal \"${num}\"`);\n }\n\n // and optionally more digits\n while (cc >= 48 && cc <= 57) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n }\n }\n\n return {\n type: \"num\",\n val: num\n };\n }\n\n /**\n * Parses a list of Message attributes.\n *\n * @returns {Object}\n * @private\n */\n getAttributes() {\n const attrs = {};\n\n while (this._index < this._length) {\n if (this._source[this._index] !== \" \") {\n break;\n }\n this.skipInlineWS();\n\n if (this._source[this._index] !== \".\") {\n break;\n }\n this._index++;\n\n const key = this.getIdentifier();\n\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"=\") {\n throw this.error('Expected \"=\"');\n }\n this._index++;\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (val === null) {\n throw this.error(\"Expected attribute to have a value\");\n }\n\n if (typeof val === \"string\") {\n attrs[key] = val;\n } else {\n attrs[key] = {\n val\n };\n }\n\n this.skipBlankLines();\n }\n\n return attrs;\n }\n\n /**\n * Parses a list of Selector variants.\n *\n * @returns {Array}\n * @private\n */\n getVariants() {\n const variants = [];\n let index = 0;\n let defaultIndex;\n\n while (this._index < this._length) {\n const ch = this._source[this._index];\n\n if ((ch !== \"[\" || this._source[this._index + 1] === \"[\") &&\n ch !== \"*\") {\n break;\n }\n if (ch === \"*\") {\n this._index++;\n defaultIndex = index;\n }\n\n if (this._source[this._index] !== \"[\") {\n throw this.error('Expected \"[\"');\n }\n\n this._index++;\n\n const key = this.getVariantKey();\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (val === null) {\n throw this.error(\"Expected variant to have a value\");\n }\n\n variants[index++] = {key, val};\n\n this.skipWS();\n }\n\n return [variants, defaultIndex];\n }\n\n /**\n * Parses a Variant key.\n *\n * @returns {String}\n * @private\n */\n getVariantKey() {\n // VariantKey may be a Keyword or Number\n\n const cc = this._source.charCodeAt(this._index);\n let literal;\n\n if ((cc >= 48 && cc <= 57) || cc === 45) {\n literal = this.getNumber();\n } else {\n literal = this.getVariantName();\n }\n\n if (this._source[this._index] !== \"]\") {\n throw this.error('Expected \"]\"');\n }\n\n this._index++;\n return literal;\n }\n\n /**\n * Parses an FTL literal.\n *\n * @returns {Object}\n * @private\n */\n getLiteral() {\n const cc0 = this._source.charCodeAt(this._index);\n\n if (cc0 === 36) { // $\n this._index++;\n return {\n type: \"ext\",\n name: this.getIdentifier()\n };\n }\n\n const cc1 = cc0 === 45 // -\n // Peek at the next character after the dash.\n ? this._source.charCodeAt(this._index + 1)\n // Or keep using the character at the current index.\n : cc0;\n\n if ((cc1 >= 97 && cc1 <= 122) || // a-z\n (cc1 >= 65 && cc1 <= 90)) { // A-Z\n return {\n type: \"ref\",\n name: this.getEntryIdentifier()\n };\n }\n\n if ((cc1 >= 48 && cc1 <= 57)) { // 0-9\n return this.getNumber();\n }\n\n if (cc0 === 34) { // \"\n return this.getString();\n }\n\n throw this.error(\"Expected literal\");\n }\n\n /**\n * Skips an FTL comment.\n *\n * @private\n */\n skipComment() {\n // At runtime, we don't care about comments so we just have\n // to parse them properly and skip their content.\n let eol = this._source.indexOf(\"\\n\", this._index);\n\n while (eol !== -1 &&\n ((this._source[eol + 1] === \"/\" && this._source[eol + 2] === \"/\") ||\n (this._source[eol + 1] === \"#\" &&\n [\" \", \"#\"].includes(this._source[eol + 2])))) {\n this._index = eol + 3;\n\n eol = this._source.indexOf(\"\\n\", this._index);\n\n if (eol === -1) {\n break;\n }\n }\n\n if (eol === -1) {\n this._index = this._length;\n } else {\n this._index = eol + 1;\n }\n }\n\n /**\n * Creates a new SyntaxError object with a given message.\n *\n * @param {String} message\n * @returns {Object}\n * @private\n */\n error(message) {\n return new SyntaxError(message);\n }\n\n /**\n * Skips to the beginning of a next entry after the current position.\n * This is used to mark the boundary of junk entry in case of error,\n * and recover from the returned position.\n *\n * @private\n */\n skipToNextEntryStart() {\n let start = this._index;\n\n while (true) {\n if (start === 0 || this._source[start - 1] === \"\\n\") {\n const cc = this._source.charCodeAt(start);\n\n if ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 47 || cc === 91) { // /[\n this._index = start;\n return;\n }\n }\n\n start = this._source.indexOf(\"\\n\", start);\n\n if (start === -1) {\n this._index = this._length;\n return;\n }\n start++;\n }\n }\n}\n\n/**\n * Parses an FTL string using RuntimeParser and returns the generated\n * object with entries and a list of errors.\n *\n * @param {String} string\n * @returns {Array}\n */\nexport default function parse(string) {\n const parser = new RuntimeParser();\n return parser.getResource(string);\n}\n","/* global Intl */\n\n/**\n * The `FluentType` class is the base of Fluent's type system.\n *\n * Fluent types wrap JavaScript values and store additional configuration for\n * them, which can then be used in the `toString` method together with a proper\n * `Intl` formatter.\n */\nexport class FluentType {\n\n /**\n * Create an `FluentType` instance.\n *\n * @param {Any} value - JavaScript value to wrap.\n * @param {Object} opts - Configuration.\n * @returns {FluentType}\n */\n constructor(value, opts) {\n this.value = value;\n this.opts = opts;\n }\n\n /**\n * Unwrap the raw value stored by this `FluentType`.\n *\n * @returns {Any}\n */\n valueOf() {\n return this.value;\n }\n\n /**\n * Format this instance of `FluentType` to a string.\n *\n * Formatted values are suitable for use outside of the `MessageContext`.\n * This method can use `Intl` formatters memoized by the `MessageContext`\n * instance passed as an argument.\n *\n * @param {MessageContext} [ctx]\n * @returns {string}\n */\n toString() {\n throw new Error(\"Subclasses of FluentType must implement toString.\");\n }\n}\n\nexport class FluentNone extends FluentType {\n toString() {\n return this.value || \"???\";\n }\n}\n\nexport class FluentNumber extends FluentType {\n constructor(value, opts) {\n super(parseFloat(value), opts);\n }\n\n toString(ctx) {\n try {\n const nf = ctx._memoizeIntlObject(\n Intl.NumberFormat, this.opts\n );\n return nf.format(this.value);\n } catch (e) {\n // XXX Report the error.\n return this.value;\n }\n }\n\n /**\n * Compare the object with another instance of a FluentType.\n *\n * @param {MessageContext} ctx\n * @param {FluentType} other\n * @returns {bool}\n */\n match(ctx, other) {\n if (other instanceof FluentNumber) {\n return this.value === other.value;\n }\n return false;\n }\n}\n\nexport class FluentDateTime extends FluentType {\n constructor(value, opts) {\n super(new Date(value), opts);\n }\n\n toString(ctx) {\n try {\n const dtf = ctx._memoizeIntlObject(\n Intl.DateTimeFormat, this.opts\n );\n return dtf.format(this.value);\n } catch (e) {\n // XXX Report the error.\n return this.value;\n }\n }\n}\n\nexport class FluentSymbol extends FluentType {\n toString() {\n return this.value;\n }\n\n /**\n * Compare the object with another instance of a FluentType.\n *\n * @param {MessageContext} ctx\n * @param {FluentType} other\n * @returns {bool}\n */\n match(ctx, other) {\n if (other instanceof FluentSymbol) {\n return this.value === other.value;\n } else if (typeof other === \"string\") {\n return this.value === other;\n } else if (other instanceof FluentNumber) {\n const pr = ctx._memoizeIntlObject(\n Intl.PluralRules, other.opts\n );\n return this.value === pr.select(other.value);\n }\n return false;\n }\n}\n","/**\n * @overview\n *\n * The FTL resolver ships with a number of functions built-in.\n *\n * Each function take two arguments:\n * - args - an array of positional args\n * - opts - an object of key-value args\n *\n * Arguments to functions are guaranteed to already be instances of\n * `FluentType`. Functions must return `FluentType` objects as well.\n */\n\nimport { FluentNumber, FluentDateTime } from \"./types\";\n\nexport default {\n \"NUMBER\": ([arg], opts) =>\n new FluentNumber(arg.valueOf(), merge(arg.opts, opts)),\n \"DATETIME\": ([arg], opts) =>\n new FluentDateTime(arg.valueOf(), merge(arg.opts, opts)),\n};\n\nfunction merge(argopts, opts) {\n return Object.assign({}, argopts, values(opts));\n}\n\nfunction values(opts) {\n const unwrapped = {};\n for (const [name, opt] of Object.entries(opts)) {\n unwrapped[name] = opt.valueOf();\n }\n return unwrapped;\n}\n","/**\n * @overview\n *\n * The role of the Fluent resolver is to format a translation object to an\n * instance of `FluentType` or an array of instances.\n *\n * Translations can contain references to other messages or external arguments,\n * conditional logic in form of select expressions, traits which describe their\n * grammatical features, and can use Fluent builtins which make use of the\n * `Intl` formatters to format numbers, dates, lists and more into the\n * context's language. See the documentation of the Fluent syntax for more\n * information.\n *\n * In case of errors the resolver will try to salvage as much of the\n * translation as possible. In rare situations where the resolver didn't know\n * how to recover from an error it will return an instance of `FluentNone`.\n *\n * `MessageReference`, `VariantExpression`, `AttributeExpression` and\n * `SelectExpression` resolve to raw Runtime Entries objects and the result of\n * the resolution needs to be passed into `Type` to get their real value.\n * This is useful for composing expressions. Consider:\n *\n * brand-name[nominative]\n *\n * which is a `VariantExpression` with properties `id: MessageReference` and\n * `key: Keyword`. If `MessageReference` was resolved eagerly, it would\n * instantly resolve to the value of the `brand-name` message. Instead, we\n * want to get the message object and look for its `nominative` variant.\n *\n * All other expressions (except for `FunctionReference` which is only used in\n * `CallExpression`) resolve to an instance of `FluentType`. The caller should\n * use the `toString` method to convert the instance to a native value.\n *\n *\n * All functions in this file pass around a special object called `env`.\n * This object stores a set of elements used by all resolve functions:\n *\n * * {MessageContext} ctx\n * context for which the given resolution is happening\n * * {Object} args\n * list of developer provided arguments that can be used\n * * {Array} errors\n * list of errors collected while resolving\n * * {WeakSet} dirty\n * Set of patterns already encountered during this resolution.\n * This is used to prevent cyclic resolutions.\n */\n\n\nimport { FluentType, FluentNone, FluentNumber, FluentDateTime, FluentSymbol }\n from \"./types\";\nimport builtins from \"./builtins\";\n\n// Prevent expansion of too long placeables.\nconst MAX_PLACEABLE_LENGTH = 2500;\n\n// Unicode bidi isolation characters.\nconst FSI = \"\\u2068\";\nconst PDI = \"\\u2069\";\n\n\n/**\n * Helper for choosing the default value from a set of members.\n *\n * Used in SelectExpressions and Type.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} members\n * Hash map of variants from which the default value is to be selected.\n * @param {Number} def\n * The index of the default variant.\n * @returns {FluentType}\n * @private\n */\nfunction DefaultMember(env, members, def) {\n if (members[def]) {\n return members[def];\n }\n\n const { errors } = env;\n errors.push(new RangeError(\"No default\"));\n return new FluentNone();\n}\n\n\n/**\n * Resolve a reference to another message.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} id\n * The identifier of the message to be resolved.\n * @param {String} id.name\n * The name of the identifier.\n * @returns {FluentType}\n * @private\n */\nfunction MessageReference(env, {name}) {\n const { ctx, errors } = env;\n const message = name.startsWith(\"-\")\n ? ctx._terms.get(name)\n : ctx._messages.get(name);\n\n if (!message) {\n const err = name.startsWith(\"-\")\n ? new ReferenceError(`Unknown term: ${name}`)\n : new ReferenceError(`Unknown message: ${name}`);\n errors.push(err);\n return new FluentNone(name);\n }\n\n return message;\n}\n\n/**\n * Resolve a variant expression to the variant object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {Object} expr.id\n * An Identifier of a message for which the variant is resolved.\n * @param {Object} expr.id.name\n * Name a message for which the variant is resolved.\n * @param {Object} expr.key\n * Variant key to be resolved.\n * @returns {FluentType}\n * @private\n */\nfunction VariantExpression(env, {id, key}) {\n const message = MessageReference(env, id);\n if (message instanceof FluentNone) {\n return message;\n }\n\n const { ctx, errors } = env;\n const keyword = Type(env, key);\n\n function isVariantList(node) {\n return Array.isArray(node) &&\n node[0].type === \"sel\" &&\n node[0].exp === null;\n }\n\n if (isVariantList(message.val)) {\n // Match the specified key against keys of each variant, in order.\n for (const variant of message.val[0].vars) {\n const variantKey = Type(env, variant.key);\n if (keyword.match(ctx, variantKey)) {\n return variant;\n }\n }\n }\n\n errors.push(new ReferenceError(`Unknown variant: ${keyword.toString(ctx)}`));\n return Type(env, message);\n}\n\n\n/**\n * Resolve an attribute expression to the attribute object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.id\n * An ID of a message for which the attribute is resolved.\n * @param {String} expr.name\n * Name of the attribute to be resolved.\n * @returns {FluentType}\n * @private\n */\nfunction AttributeExpression(env, {id, name}) {\n const message = MessageReference(env, id);\n if (message instanceof FluentNone) {\n return message;\n }\n\n if (message.attrs) {\n // Match the specified name against keys of each attribute.\n for (const attrName in message.attrs) {\n if (name === attrName) {\n return message.attrs[name];\n }\n }\n }\n\n const { errors } = env;\n errors.push(new ReferenceError(`Unknown attribute: ${name}`));\n return Type(env, message);\n}\n\n/**\n * Resolve a select expression to the member object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.exp\n * Selector expression\n * @param {Array} expr.vars\n * List of variants for the select expression.\n * @param {Number} expr.def\n * Index of the default variant.\n * @returns {FluentType}\n * @private\n */\nfunction SelectExpression(env, {exp, vars, def}) {\n if (exp === null) {\n return DefaultMember(env, vars, def);\n }\n\n const selector = Type(env, exp);\n if (selector instanceof FluentNone) {\n return DefaultMember(env, vars, def);\n }\n\n // Match the selector against keys of each variant, in order.\n for (const variant of vars) {\n const key = Type(env, variant.key);\n const keyCanMatch =\n key instanceof FluentNumber || key instanceof FluentSymbol;\n\n if (!keyCanMatch) {\n continue;\n }\n\n const { ctx } = env;\n\n if (key.match(ctx, selector)) {\n return variant;\n }\n }\n\n return DefaultMember(env, vars, def);\n}\n\n\n/**\n * Resolve expression to a Fluent type.\n *\n * JavaScript strings are a special case. Since they natively have the\n * `toString` method they can be used as if they were a Fluent type without\n * paying the cost of creating a instance of one.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression object to be resolved into a Fluent type.\n * @returns {FluentType}\n * @private\n */\nfunction Type(env, expr) {\n // A fast-path for strings which are the most common case, and for\n // `FluentNone` which doesn't require any additional logic.\n if (typeof expr === \"string\" || expr instanceof FluentNone) {\n return expr;\n }\n\n // The Runtime AST (Entries) encodes patterns (complex strings with\n // placeables) as Arrays.\n if (Array.isArray(expr)) {\n return Pattern(env, expr);\n }\n\n\n switch (expr.type) {\n case \"varname\":\n return new FluentSymbol(expr.name);\n case \"num\":\n return new FluentNumber(expr.val);\n case \"ext\":\n return ExternalArgument(env, expr);\n case \"fun\":\n return FunctionReference(env, expr);\n case \"call\":\n return CallExpression(env, expr);\n case \"ref\": {\n const message = MessageReference(env, expr);\n return Type(env, message);\n }\n case \"attr\": {\n const attr = AttributeExpression(env, expr);\n return Type(env, attr);\n }\n case \"var\": {\n const variant = VariantExpression(env, expr);\n return Type(env, variant);\n }\n case \"sel\": {\n const member = SelectExpression(env, expr);\n return Type(env, member);\n }\n case undefined: {\n // If it's a node with a value, resolve the value.\n if (expr.val !== null && expr.val !== undefined) {\n return Type(env, expr.val);\n }\n\n const { errors } = env;\n errors.push(new RangeError(\"No value\"));\n return new FluentNone();\n }\n default:\n return new FluentNone();\n }\n}\n\n/**\n * Resolve a reference to an external argument.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.name\n * Name of an argument to be returned.\n * @returns {FluentType}\n * @private\n */\nfunction ExternalArgument(env, {name}) {\n const { args, errors } = env;\n\n if (!args || !args.hasOwnProperty(name)) {\n errors.push(new ReferenceError(`Unknown external: ${name}`));\n return new FluentNone(name);\n }\n\n const arg = args[name];\n\n // Return early if the argument already is an instance of FluentType.\n if (arg instanceof FluentType) {\n return arg;\n }\n\n // Convert the argument to a Fluent type.\n switch (typeof arg) {\n case \"string\":\n return arg;\n case \"number\":\n return new FluentNumber(arg);\n case \"object\":\n if (arg instanceof Date) {\n return new FluentDateTime(arg);\n }\n default:\n errors.push(\n new TypeError(`Unsupported external type: ${name}, ${typeof arg}`)\n );\n return new FluentNone(name);\n }\n}\n\n/**\n * Resolve a reference to a function.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.name\n * Name of the function to be returned.\n * @returns {Function}\n * @private\n */\nfunction FunctionReference(env, {name}) {\n // Some functions are built-in. Others may be provided by the runtime via\n // the `MessageContext` constructor.\n const { ctx: { _functions }, errors } = env;\n const func = _functions[name] || builtins[name];\n\n if (!func) {\n errors.push(new ReferenceError(`Unknown function: ${name}()`));\n return new FluentNone(`${name}()`);\n }\n\n if (typeof func !== \"function\") {\n errors.push(new TypeError(`Function ${name}() is not callable`));\n return new FluentNone(`${name}()`);\n }\n\n return func;\n}\n\n/**\n * Resolve a call to a Function with positional and key-value arguments.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {Object} expr.fun\n * FTL Function object.\n * @param {Array} expr.args\n * FTL Function argument list.\n * @returns {FluentType}\n * @private\n */\nfunction CallExpression(env, {fun, args}) {\n const callee = FunctionReference(env, fun);\n\n if (callee instanceof FluentNone) {\n return callee;\n }\n\n const posargs = [];\n const keyargs = {};\n\n for (const arg of args) {\n if (arg.type === \"narg\") {\n keyargs[arg.name] = Type(env, arg.val);\n } else {\n posargs.push(Type(env, arg));\n }\n }\n\n try {\n return callee(posargs, keyargs);\n } catch (e) {\n // XXX Report errors.\n return new FluentNone();\n }\n}\n\n/**\n * Resolve a pattern (a complex string with placeables).\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Array} ptn\n * Array of pattern elements.\n * @returns {Array}\n * @private\n */\nfunction Pattern(env, ptn) {\n const { ctx, dirty, errors } = env;\n\n if (dirty.has(ptn)) {\n errors.push(new RangeError(\"Cyclic reference\"));\n return new FluentNone();\n }\n\n // Tag the pattern as dirty for the purpose of the current resolution.\n dirty.add(ptn);\n const result = [];\n\n // Wrap interpolations with Directional Isolate Formatting characters\n // only when the pattern has more than one element.\n const useIsolating = ctx._useIsolating && ptn.length > 1;\n\n for (const elem of ptn) {\n if (typeof elem === \"string\") {\n result.push(elem);\n continue;\n }\n\n const part = Type(env, elem).toString(ctx);\n\n if (useIsolating) {\n result.push(FSI);\n }\n\n if (part.length > MAX_PLACEABLE_LENGTH) {\n errors.push(\n new RangeError(\n \"Too many characters in placeable \" +\n `(${part.length}, max allowed is ${MAX_PLACEABLE_LENGTH})`\n )\n );\n result.push(part.slice(MAX_PLACEABLE_LENGTH));\n } else {\n result.push(part);\n }\n\n if (useIsolating) {\n result.push(PDI);\n }\n }\n\n dirty.delete(ptn);\n return result.join(\"\");\n}\n\n/**\n * Format a translation into a string.\n *\n * @param {MessageContext} ctx\n * A MessageContext instance which will be used to resolve the\n * contextual information of the message.\n * @param {Object} args\n * List of arguments provided by the developer which can be accessed\n * from the message.\n * @param {Object} message\n * An object with the Message to be resolved.\n * @param {Array} errors\n * An error array that any encountered errors will be appended to.\n * @returns {FluentType}\n */\nexport default function resolve(ctx, args, message, errors = []) {\n const env = {\n ctx, args, errors, dirty: new WeakSet()\n };\n return Type(env, message).toString(ctx);\n}\n","import resolve from \"./resolver\";\nimport parse from \"./parser\";\n\n/**\n * Message contexts are single-language stores of translations. They are\n * responsible for parsing translation resources in the Fluent syntax and can\n * format translation units (entities) to strings.\n *\n * Always use `MessageContext.format` to retrieve translation units from\n * a context. Translations can contain references to other entities or\n * external arguments, conditional logic in form of select expressions, traits\n * which describe their grammatical features, and can use Fluent builtins which\n * make use of the `Intl` formatters to format numbers, dates, lists and more\n * into the context's language. See the documentation of the Fluent syntax for\n * more information.\n */\nexport class MessageContext {\n\n /**\n * Create an instance of `MessageContext`.\n *\n * The `locales` argument is used to instantiate `Intl` formatters used by\n * translations. The `options` object can be used to configure the context.\n *\n * Examples:\n *\n * const ctx = new MessageContext(locales);\n *\n * const ctx = new MessageContext(locales, { useIsolating: false });\n *\n * const ctx = new MessageContext(locales, {\n * useIsolating: true,\n * functions: {\n * NODE_ENV: () => process.env.NODE_ENV\n * }\n * });\n *\n * Available options:\n *\n * - `functions` - an object of additional functions available to\n * translations as builtins.\n *\n * - `useIsolating` - boolean specifying whether to use Unicode isolation\n * marks (FSI, PDI) for bidi interpolations.\n *\n * @param {string|Array} locales - Locale or locales of the context\n * @param {Object} [options]\n * @returns {MessageContext}\n */\n constructor(locales, { functions = {}, useIsolating = true } = {}) {\n this.locales = Array.isArray(locales) ? locales : [locales];\n\n this._terms = new Map();\n this._messages = new Map();\n this._functions = functions;\n this._useIsolating = useIsolating;\n this._intls = new WeakMap();\n }\n\n /*\n * Return an iterator over public `[id, message]` pairs.\n *\n * @returns {Iterator}\n */\n get messages() {\n return this._messages[Symbol.iterator]();\n }\n\n /*\n * Check if a message is present in the context.\n *\n * @param {string} id - The identifier of the message to check.\n * @returns {bool}\n */\n hasMessage(id) {\n return this._messages.has(id);\n }\n\n /*\n * Return the internal representation of a message.\n *\n * The internal representation should only be used as an argument to\n * `MessageContext.format`.\n *\n * @param {string} id - The identifier of the message to check.\n * @returns {Any}\n */\n getMessage(id) {\n return this._messages.get(id);\n }\n\n /**\n * Add a translation resource to the context.\n *\n * The translation resource must use the Fluent syntax. It will be parsed by\n * the context and each translation unit (message) will be available in the\n * context by its identifier.\n *\n * ctx.addMessages('foo = Foo');\n * ctx.getMessage('foo');\n *\n * // Returns a raw representation of the 'foo' message.\n *\n * Parsed entities should be formatted with the `format` method in case they\n * contain logic (references, select expressions etc.).\n *\n * @param {string} source - Text resource with translations.\n * @returns {Array}\n */\n addMessages(source) {\n const [entries, errors] = parse(source);\n for (const id in entries) {\n if (id.startsWith(\"-\")) {\n // Identifiers starting with a dash (-) define terms. Terms are private\n // and cannot be retrieved from MessageContext.\n if (this._terms.has(id)) {\n errors.push(`Attempt to override an existing term: \"${id}\"`);\n continue;\n }\n this._terms.set(id, entries[id]);\n } else {\n if (this._messages.has(id)) {\n errors.push(`Attempt to override an existing message: \"${id}\"`);\n continue;\n }\n this._messages.set(id, entries[id]);\n }\n }\n\n return errors;\n }\n\n /**\n * Format a message to a string or null.\n *\n * Format a raw `message` from the context into a string (or a null if it has\n * a null value). `args` will be used to resolve references to external\n * arguments inside of the translation.\n *\n * In case of errors `format` will try to salvage as much of the translation\n * as possible and will still return a string. For performance reasons, the\n * encountered errors are not returned but instead are appended to the\n * `errors` array passed as the third argument.\n *\n * const errors = [];\n * ctx.addMessages('hello = Hello, { $name }!');\n * const hello = ctx.getMessage('hello');\n * ctx.format(hello, { name: 'Jane' }, errors);\n *\n * // Returns 'Hello, Jane!' and `errors` is empty.\n *\n * ctx.format(hello, undefined, errors);\n *\n * // Returns 'Hello, name!' and `errors` is now:\n *\n * []\n *\n * @param {Object | string} message\n * @param {Object | undefined} args\n * @param {Array} errors\n * @returns {?string}\n */\n format(message, args, errors) {\n // optimize entities which are simple strings with no attributes\n if (typeof message === \"string\") {\n return message;\n }\n\n // optimize simple-string entities with attributes\n if (typeof message.val === \"string\") {\n return message.val;\n }\n\n // optimize entities with null values\n if (message.val === undefined) {\n return null;\n }\n\n return resolve(this, args, message, errors);\n }\n\n _memoizeIntlObject(ctor, opts) {\n const cache = this._intls.get(ctor) || {};\n const id = JSON.stringify(opts);\n\n if (!cache[id]) {\n cache[id] = new ctor(this.locales, opts);\n this._intls.set(ctor, cache);\n }\n\n return cache[id];\n }\n}\n","/*\n * CachedIterable caches the elements yielded by an iterable.\n *\n * It can be used to iterate over an iterable many times without depleting the\n * iterable.\n */\nexport default class CachedIterable {\n /**\n * Create an `CachedIterable` instance.\n *\n * @param {Iterable} iterable\n * @returns {CachedIterable}\n */\n constructor(iterable) {\n if (Symbol.asyncIterator in Object(iterable)) {\n this.iterator = iterable[Symbol.asyncIterator]();\n } else if (Symbol.iterator in Object(iterable)) {\n this.iterator = iterable[Symbol.iterator]();\n } else {\n throw new TypeError(\"Argument must implement the iteration protocol.\");\n }\n\n this.seen = [];\n }\n\n [Symbol.iterator]() {\n const { seen, iterator } = this;\n let cur = 0;\n\n return {\n next() {\n if (seen.length <= cur) {\n seen.push(iterator.next());\n }\n return seen[cur++];\n }\n };\n }\n\n [Symbol.asyncIterator]() {\n const { seen, iterator } = this;\n let cur = 0;\n\n return {\n async next() {\n if (seen.length <= cur) {\n seen.push(await iterator.next());\n }\n return seen[cur++];\n }\n };\n }\n\n /**\n * This method allows user to consume the next element from the iterator\n * into the cache.\n */\n touchNext() {\n const { seen, iterator } = this;\n if (seen.length === 0 || seen[seen.length - 1].done === false) {\n seen.push(iterator.next());\n }\n }\n}\n","/*\n * @overview\n *\n * Functions for managing ordered sequences of MessageContexts.\n *\n * An ordered iterable of MessageContext instances can represent the current\n * negotiated fallback chain of languages. This iterable can be used to find\n * the best existing translation for a given identifier.\n *\n * The mapContext* methods can be used to find the first MessageContext in the\n * given iterable which contains the translation with the given identifier. If\n * the iterable is ordered according to the result of a language negotiation\n * the returned MessageContext contains the best available translation.\n *\n * A simple function which formats translations based on the identifier might\n * be implemented as follows:\n *\n * formatString(id, args) {\n * const ctx = mapContextSync(contexts, id);\n *\n * if (ctx === null) {\n * return id;\n * }\n *\n * const msg = ctx.getMessage(id);\n * return ctx.format(msg, args);\n * }\n *\n * In order to pass an iterator to mapContext*, wrap it in CachedIterable.\n * This allows multiple calls to mapContext* without advancing and eventually\n * depleting the iterator.\n *\n * function *generateMessages() {\n * // Some lazy logic for yielding MessageContexts.\n * yield *[ctx1, ctx2];\n * }\n *\n * const contexts = new CachedIterable(generateMessages());\n * const ctx = mapContextSync(contexts, id);\n *\n */\n\n/*\n * Synchronously map an identifier or an array of identifiers to the best\n * `MessageContext` instance(s).\n *\n * @param {Iterable} iterable\n * @param {string|Array} ids\n * @returns {MessageContext|Array}\n */\nexport function mapContextSync(iterable, ids) {\n if (!Array.isArray(ids)) {\n return getContextForId(iterable, ids);\n }\n\n return ids.map(\n id => getContextForId(iterable, id)\n );\n}\n\n/*\n * Find the best `MessageContext` with the translation for `id`.\n */\nfunction getContextForId(iterable, id) {\n for (const context of iterable) {\n if (context.hasMessage(id)) {\n return context;\n }\n }\n\n return null;\n}\n\n/*\n * Asynchronously map an identifier or an array of identifiers to the best\n * `MessageContext` instance(s).\n *\n * @param {AsyncIterable} iterable\n * @param {string|Array} ids\n * @returns {Promise>}\n */\nexport async function mapContextAsync(iterable, ids) {\n if (!Array.isArray(ids)) {\n for await (const context of iterable) {\n if (context.hasMessage(ids)) {\n return context;\n }\n }\n }\n\n let remainingCount = ids.length;\n const foundContexts = new Array(remainingCount).fill(null);\n\n for await (const context of iterable) {\n // XXX Switch to const [index, id] of id.entries() when we move to Babel 7.\n // See https://github.com/babel/babel/issues/5880.\n for (let index = 0; index < ids.length; index++) {\n const id = ids[index];\n if (!foundContexts[index] && context.hasMessage(id)) {\n foundContexts[index] = context;\n remainingCount--;\n }\n\n // Return early when all ids have been mapped to contexts.\n if (remainingCount === 0) {\n return foundContexts;\n }\n }\n }\n\n return foundContexts;\n}\n","function nonBlank(line) {\n return !/^\\s*$/.test(line);\n}\n\nfunction countIndent(line) {\n const [indent] = line.match(/^\\s*/);\n return indent.length;\n}\n\n/**\n * Template literal tag for dedenting FTL code.\n *\n * Strip the common indent of non-blank lines. Remove blank lines.\n *\n * @param {Array} strings\n */\nexport function ftl(strings) {\n const [code] = strings;\n const lines = code.split(\"\\n\").filter(nonBlank);\n const indents = lines.map(countIndent);\n const common = Math.min(...indents);\n const indent = new RegExp(`^\\\\s{${common}}`);\n\n return lines.map(\n line => line.replace(indent, \"\")\n ).join(\"\\n\");\n}\n","/*\n * @module fluent\n * @overview\n *\n * `fluent` is a JavaScript implementation of Project Fluent, a localization\n * framework designed to unleash the expressive power of the natural language.\n *\n */\n\nexport { default as _parse } from \"./parser\";\n\nexport { MessageContext } from \"./context\";\nexport {\n FluentType as MessageArgument,\n FluentNumber as MessageNumberArgument,\n FluentDateTime as MessageDateTimeArgument,\n} from \"./types\";\n\nexport { default as CachedIterable } from \"./cached_iterable\";\nexport { mapContextSync, mapContextAsync } from \"./fallback\";\n\nexport { ftl } from \"./util\";\n","import { CachedIterable, mapContextSync } from \"fluent\";\n\n/*\n * `ReactLocalization` handles translation formatting and fallback.\n *\n * The current negotiated fallback chain of languages is stored in the\n * `ReactLocalization` instance in form of an iterable of `MessageContext`\n * instances. This iterable is used to find the best existing translation for\n * a given identifier.\n *\n * `Localized` components must subscribe to the changes of the\n * `ReactLocalization`'s fallback chain. When the fallback chain changes (the\n * `messages` iterable is set anew), all subscribed compontent must relocalize.\n *\n * The `ReactLocalization` class instances are exposed to `Localized` elements\n * via the `LocalizationProvider` component.\n */\nexport default class ReactLocalization {\n constructor(messages) {\n this.contexts = new CachedIterable(messages);\n this.subs = new Set();\n }\n\n /*\n * Subscribe a `Localized` component to changes of `messages`.\n */\n subscribe(comp) {\n this.subs.add(comp);\n }\n\n /*\n * Unsubscribe a `Localized` component from `messages` changes.\n */\n unsubscribe(comp) {\n this.subs.delete(comp);\n }\n\n /*\n * Set a new `messages` iterable and trigger the retranslation.\n */\n setMessages(messages) {\n this.contexts = new CachedIterable(messages);\n\n // Update all subscribed Localized components.\n this.subs.forEach(comp => comp.relocalize());\n }\n\n getMessageContext(id) {\n return mapContextSync(this.contexts, id);\n }\n\n formatCompound(mcx, msg, args) {\n const value = mcx.format(msg, args);\n\n if (msg.attrs) {\n var attrs = {};\n for (const name of Object.keys(msg.attrs)) {\n attrs[name] = mcx.format(msg.attrs[name], args);\n }\n }\n\n return { value, attrs };\n }\n\n /*\n * Find a translation by `id` and format it to a string using `args`.\n */\n getString(id, args, fallback) {\n const mcx = this.getMessageContext(id);\n\n if (mcx === null) {\n return fallback || id;\n }\n\n const msg = mcx.getMessage(id);\n return mcx.format(msg, args);\n }\n}\n\nexport function isReactLocalization(props, propName) {\n const prop = props[propName];\n\n if (prop instanceof ReactLocalization) {\n return null;\n }\n\n return new Error(\n `The ${propName} context field must be an instance of ReactLocalization.`\n );\n}\n","import { Component, Children } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport ReactLocalization, { isReactLocalization} from \"./localization\";\n\n/*\n * The Provider component for the `ReactLocalization` class.\n *\n * Exposes a `ReactLocalization` instance to all descendants via React's\n * context feature. It makes translations available to all localizable\n * elements in the descendant's render tree without the need to pass them\n * explicitly.\n *\n * \n * …\n * \n *\n * The `LocalizationProvider` component takes one prop: `messages`. It should\n * be an iterable of `MessageContext` instances in order of the user's\n * preferred languages. The `MessageContext` instances will be used by\n * `ReactLocalization` to format translations. If a translation is missing in\n * one instance, `ReactLocalization` will fall back to the next one.\n */\nexport default class LocalizationProvider extends Component {\n constructor(props) {\n super(props);\n const { messages } = props;\n\n if (messages === undefined) {\n throw new Error(\"LocalizationProvider must receive the messages prop.\");\n }\n\n if (!messages[Symbol.iterator]) {\n throw new Error(\"The messages prop must be an iterable.\");\n }\n\n this.l10n = new ReactLocalization(messages);\n }\n\n getChildContext() {\n return {\n l10n: this.l10n\n };\n }\n\n componentWillReceiveProps(next) {\n const { messages } = next;\n\n if (messages !== this.props.messages) {\n this.l10n.setMessages(messages);\n }\n }\n\n render() {\n return Children.only(this.props.children);\n }\n}\n\nLocalizationProvider.childContextTypes = {\n l10n: isReactLocalization\n};\n\nLocalizationProvider.propTypes = {\n children: PropTypes.element.isRequired,\n messages: isIterable\n};\n\nfunction isIterable(props, propName, componentName) {\n const prop = props[propName];\n\n if (Symbol.iterator in Object(prop)) {\n return null;\n }\n\n return new Error(\n `The ${propName} prop supplied to ${componentName} must be an iterable.`\n );\n}\n","import { createElement, Component } from \"react\";\n\nimport { isReactLocalization } from \"./localization\";\n\nexport default function withLocalization(Inner) {\n class WithLocalization extends Component {\n componentDidMount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.subscribe(this);\n }\n }\n\n componentWillUnmount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.unsubscribe(this);\n }\n }\n\n /*\n * Rerender this component in a new language.\n */\n relocalize() {\n // When the `ReactLocalization`'s fallback chain changes, update the\n // component.\n this.forceUpdate();\n }\n\n /*\n * Find a translation by `id` and format it to a string using `args`.\n */\n getString(id, args, fallback) {\n const { l10n } = this.context;\n\n if (!l10n) {\n return fallback || id;\n }\n\n return l10n.getString(id, args, fallback);\n }\n\n render() {\n return createElement(\n Inner,\n Object.assign(\n // getString needs to be re-bound on updates to trigger a re-render\n { getString: (...args) => this.getString(...args) },\n this.props\n )\n );\n }\n }\n\n WithLocalization.displayName = `WithLocalization(${displayName(Inner)})`;\n\n WithLocalization.contextTypes = {\n l10n: isReactLocalization\n };\n\n return WithLocalization;\n}\n\nfunction displayName(component) {\n return component.displayName || component.name || \"Component\";\n}\n","/* eslint-env browser */\n\nconst TEMPLATE = document.createElement(\"template\");\n\nexport function parseMarkup(str) {\n TEMPLATE.innerHTML = str;\n return TEMPLATE.content;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in this directory.\n */\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true,\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\nexport default omittedCloseTags;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in this directory.\n */\n\nimport omittedCloseTags from './omittedCloseTags';\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = {\n menuitem: true,\n ...omittedCloseTags,\n};\n\nexport default voidElementTags;\n","import { isValidElement, cloneElement, Component, Children } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { isReactLocalization } from \"./localization\";\nimport { parseMarkup } from \"./markup\";\nimport VOID_ELEMENTS from \"../vendor/voidElementTags\";\n\n// Match the opening angle bracket (<) in HTML tags, and HTML entities like\n// &, &, &.\nconst reMarkup = /<|?\\w+;/;\n\n/*\n * Prepare props passed to `Localized` for formatting.\n */\nfunction toArguments(props) {\n const args = {};\n const elems = {};\n\n for (const [propname, propval] of Object.entries(props)) {\n if (propname.startsWith(\"$\")) {\n const name = propname.substr(1);\n args[name] = propval;\n } else if (isValidElement(propval)) {\n // We'll try to match localNames of elements found in the translation with\n // names of elements passed as props. localNames are always lowercase.\n const name = propname.toLowerCase();\n elems[name] = propval;\n }\n }\n\n return [args, elems];\n}\n\n/*\n * The `Localized` class renders its child with translated props and children.\n *\n * \n * {'Hello, world!'}
\n * \n *\n * The `id` prop should be the unique identifier of the translation. Any\n * attributes found in the translation will be applied to the wrapped element.\n *\n * Arguments to the translation can be passed as `$`-prefixed props on\n * `Localized`.\n *\n * \n * {'Hello, { $username }!'}
\n * \n *\n * It's recommended that the contents of the wrapped component be a string\n * expression. The string will be used as the ultimate fallback if no\n * translation is available. It also makes it easy to grep for strings in the\n * source code.\n */\nexport default class Localized extends Component {\n componentDidMount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.subscribe(this);\n }\n }\n\n componentWillUnmount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.unsubscribe(this);\n }\n }\n\n /*\n * Rerender this component in a new language.\n */\n relocalize() {\n // When the `ReactLocalization`'s fallback chain changes, update the\n // component.\n this.forceUpdate();\n }\n\n render() {\n const { l10n } = this.context;\n const { id, attrs, children } = this.props;\n const elem = Children.only(children);\n\n if (!l10n) {\n // Use the wrapped component as fallback.\n return elem;\n }\n\n const mcx = l10n.getMessageContext(id);\n\n if (mcx === null) {\n // Use the wrapped component as fallback.\n return elem;\n }\n\n const msg = mcx.getMessage(id);\n const [args, elems] = toArguments(this.props);\n const {\n value: messageValue,\n attrs: messageAttrs\n } = l10n.formatCompound(mcx, msg, args);\n\n // The default is to forbid all message attributes. If the attrs prop exists\n // on the Localized instance, only set message attributes which have been\n // explicitly allowed by the developer.\n if (attrs && messageAttrs) {\n var localizedProps = {};\n\n for (const [name, value] of Object.entries(messageAttrs)) {\n if (attrs[name]) {\n localizedProps[name] = value;\n }\n }\n }\n\n // If the wrapped component is a known void element, explicitly dismiss the\n // message value and do not pass it to cloneElement in order to avoid the\n // \"void element tags must neither have `children` nor use\n // `dangerouslySetInnerHTML`\" error.\n if (elem.type in VOID_ELEMENTS) {\n return cloneElement(elem, localizedProps);\n }\n\n // If the message has a null value, we're only interested in its attributes.\n // Do not pass the null value to cloneElement as it would nuke all children\n // of the wrapped component.\n if (messageValue === null) {\n return cloneElement(elem, localizedProps);\n }\n\n // If the message value doesn't contain any markup nor any HTML entities,\n // insert it as the only child of the wrapped component.\n if (!reMarkup.test(messageValue)) {\n return cloneElement(elem, localizedProps, messageValue);\n }\n\n // If the message contains markup, parse it and try to match the children\n // found in the translation with the props passed to this Localized.\n const translationNodes = Array.from(parseMarkup(messageValue).childNodes);\n const translatedChildren = translationNodes.map(childNode => {\n if (childNode.nodeType === childNode.TEXT_NODE) {\n return childNode.textContent;\n }\n\n // If the child is not expected just take its textContent.\n if (!elems.hasOwnProperty(childNode.localName)) {\n return childNode.textContent;\n }\n\n const sourceChild = elems[childNode.localName];\n\n // If the element passed as a prop to is a known void element,\n // explicitly dismiss any textContent which might have accidentally been\n // defined in the translation to prevent the \"void element tags must not\n // have children\" error.\n if (sourceChild.type in VOID_ELEMENTS) {\n return sourceChild;\n }\n\n // TODO Protect contents of elements wrapped in \n // https://github.com/projectfluent/fluent.js/issues/184\n // TODO Control localizable attributes on elements passed as props\n // https://github.com/projectfluent/fluent.js/issues/185\n return cloneElement(sourceChild, null, childNode.textContent);\n });\n\n return cloneElement(elem, localizedProps, ...translatedChildren);\n }\n}\n\nLocalized.contextTypes = {\n l10n: isReactLocalization\n};\n\nLocalized.propTypes = {\n children: PropTypes.element.isRequired,\n};\n","/*\n * @module fluent-react\n * @overview\n *\n\n * `fluent-react` provides React bindings for Fluent. It takes advantage of\n * React's Components system and the virtual DOM. Translations are exposed to\n * components via the provider pattern.\n *\n * \n * \n * {'Hello, world!'}
\n * \n * \n *\n * Consult the documentation of the `LocalizationProvider` and the `Localized`\n * components for more information.\n */\n\nexport { default as LocalizationProvider } from \"./provider\";\nexport { default as withLocalization } from \"./with_localization\";\nexport { default as Localized } from \"./localized\";\nexport { default as ReactLocalization, isReactLocalization }\n from \"./localization\";\n","this.Dedupe = class Dedupe {\n constructor(createKey) {\n this.createKey = createKey || this.defaultCreateKey;\n }\n\n defaultCreateKey(item) {\n return item;\n }\n\n /**\n * Dedupe any number of grouped elements favoring those from earlier groups.\n *\n * @param {Array} groups Contains an arbitrary number of arrays of elements.\n * @returns {Array} A matching array of each provided group deduped.\n */\n group(...groups) {\n const globalKeys = new Set();\n const result = [];\n for (const values of groups) {\n const valueMap = new Map();\n for (const value of values) {\n const key = this.createKey(value);\n if (!globalKeys.has(key) && !valueMap.has(key)) {\n valueMap.set(key, value);\n }\n }\n result.push(valueMap);\n valueMap.forEach((value, key) => globalKeys.add(key));\n }\n return result.map(m => Array.from(m.values()));\n }\n};\n\nconst EXPORTED_SYMBOLS = [\"Dedupe\"];\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nconst {actionTypes: at} = ChromeUtils.import(\"resource://activity-stream/common/Actions.jsm\", {});\nconst {Dedupe} = ChromeUtils.import(\"resource://activity-stream/common/Dedupe.jsm\", {});\n\nconst TOP_SITES_DEFAULT_ROWS = 1;\nconst TOP_SITES_MAX_SITES_PER_ROW = 8;\n\nconst dedupe = new Dedupe(site => site && site.url);\n\nconst INITIAL_STATE = {\n App: {\n // Have we received real data from the app yet?\n initialized: false,\n },\n ASRouter: {\n initialized: false,\n allowLegacySnippets: null,\n },\n Snippets: {initialized: false},\n TopSites: {\n // Have we received real data from history yet?\n initialized: false,\n // The history (and possibly default) links\n rows: [],\n // Used in content only to dispatch action to TopSiteForm.\n editForm: null,\n // Used in content only to open the SearchShortcutsForm modal.\n showSearchShortcutsForm: false,\n // The list of available search shortcuts.\n searchShortcuts: [],\n },\n Prefs: {\n initialized: false,\n values: {},\n },\n Dialog: {\n visible: false,\n data: {},\n },\n Sections: [],\n Pocket: {\n isUserLoggedIn: null,\n pocketCta: {},\n waitingForSpoc: true,\n },\n};\n\nfunction App(prevState = INITIAL_STATE.App, action) {\n switch (action.type) {\n case at.INIT:\n return Object.assign({}, prevState, action.data || {}, {initialized: true});\n default:\n return prevState;\n }\n}\n\nfunction ASRouter(prevState = INITIAL_STATE.ASRouter, action) {\n switch (action.type) {\n case at.AS_ROUTER_INITIALIZED:\n return {...action.data, initialized: true};\n case at.AS_ROUTER_PREF_CHANGED:\n return {...prevState, ...action.data};\n default:\n return prevState;\n }\n}\n\n/**\n * insertPinned - Inserts pinned links in their specified slots\n *\n * @param {array} a list of links\n * @param {array} a list of pinned links\n * @return {array} resulting list of links with pinned links inserted\n */\nfunction insertPinned(links, pinned) {\n // Remove any pinned links\n const pinnedUrls = pinned.map(link => link && link.url);\n let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));\n newLinks = newLinks.map(link => {\n if (link && link.isPinned) {\n delete link.isPinned;\n delete link.pinIndex;\n }\n return link;\n });\n\n // Then insert them in their specified location\n pinned.forEach((val, index) => {\n if (!val) { return; }\n let link = Object.assign({}, val, {isPinned: true, pinIndex: index});\n if (index > newLinks.length) {\n newLinks[index] = link;\n } else {\n newLinks.splice(index, 0, link);\n }\n });\n\n return newLinks;\n}\n\nfunction TopSites(prevState = INITIAL_STATE.TopSites, action) {\n let hasMatch;\n let newRows;\n switch (action.type) {\n case at.TOP_SITES_UPDATED:\n if (!action.data || !action.data.links) {\n return prevState;\n }\n return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});\n case at.TOP_SITES_PREFS_UPDATED:\n return Object.assign({}, prevState, {pref: action.data.pref});\n case at.TOP_SITES_EDIT:\n return Object.assign({}, prevState, {\n editForm: {\n index: action.data.index,\n previewResponse: null,\n },\n });\n case at.TOP_SITES_CANCEL_EDIT:\n return Object.assign({}, prevState, {editForm: null});\n case at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: true});\n case at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: false});\n case at.PREVIEW_RESPONSE:\n if (!prevState.editForm || action.data.url !== prevState.editForm.previewUrl) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: action.data.preview,\n previewUrl: action.data.url,\n },\n });\n case at.PREVIEW_REQUEST:\n if (!prevState.editForm) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: null,\n previewUrl: action.data.url,\n },\n });\n case at.PREVIEW_REQUEST_CANCEL:\n if (!prevState.editForm) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: null,\n },\n });\n case at.SCREENSHOT_UPDATED:\n newRows = prevState.rows.map(row => {\n if (row && row.url === action.data.url) {\n hasMatch = true;\n return Object.assign({}, row, {screenshot: action.data.screenshot});\n }\n return row;\n });\n return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;\n case at.PLACES_BOOKMARK_ADDED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.map(site => {\n if (site && site.url === action.data.url) {\n const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: dateAdded});\n }\n return site;\n });\n return Object.assign({}, prevState, {rows: newRows});\n case at.PLACES_BOOKMARK_REMOVED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.map(site => {\n if (site && site.url === action.data.url) {\n const newSite = Object.assign({}, site);\n delete newSite.bookmarkGuid;\n delete newSite.bookmarkTitle;\n delete newSite.bookmarkDateCreated;\n return newSite;\n }\n return site;\n });\n return Object.assign({}, prevState, {rows: newRows});\n case at.PLACES_LINK_DELETED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.filter(site => action.data.url !== site.url);\n return Object.assign({}, prevState, {rows: newRows});\n case at.UPDATE_SEARCH_SHORTCUTS:\n return {...prevState, searchShortcuts: action.data.searchShortcuts};\n case at.SNIPPETS_PREVIEW_MODE:\n return {...prevState, rows: []};\n default:\n return prevState;\n }\n}\n\nfunction Dialog(prevState = INITIAL_STATE.Dialog, action) {\n switch (action.type) {\n case at.DIALOG_OPEN:\n return Object.assign({}, prevState, {visible: true, data: action.data});\n case at.DIALOG_CANCEL:\n return Object.assign({}, prevState, {visible: false});\n case at.DELETE_HISTORY_URL:\n return Object.assign({}, INITIAL_STATE.Dialog);\n default:\n return prevState;\n }\n}\n\nfunction Prefs(prevState = INITIAL_STATE.Prefs, action) {\n let newValues;\n switch (action.type) {\n case at.PREFS_INITIAL_VALUES:\n return Object.assign({}, prevState, {initialized: true, values: action.data});\n case at.PREF_CHANGED:\n newValues = Object.assign({}, prevState.values);\n newValues[action.data.name] = action.data.value;\n return Object.assign({}, prevState, {values: newValues});\n default:\n return prevState;\n }\n}\n\nfunction Sections(prevState = INITIAL_STATE.Sections, action) {\n let hasMatch;\n let newState;\n switch (action.type) {\n case at.SECTION_DEREGISTER:\n return prevState.filter(section => section.id !== action.data);\n case at.SECTION_REGISTER:\n // If section exists in prevState, update it\n newState = prevState.map(section => {\n if (section && section.id === action.data.id) {\n hasMatch = true;\n return Object.assign({}, section, action.data);\n }\n return section;\n });\n // Otherwise, append it\n if (!hasMatch) {\n const initialized = !!(action.data.rows && action.data.rows.length > 0);\n const section = Object.assign({title: \"\", rows: [], enabled: false}, action.data, {initialized});\n newState.push(section);\n }\n return newState;\n case at.SECTION_UPDATE:\n newState = prevState.map(section => {\n if (section && section.id === action.data.id) {\n // If the action is updating rows, we should consider initialized to be true.\n // This can be overridden if initialized is defined in the action.data\n const initialized = action.data.rows ? {initialized: true} : {};\n\n // Make sure pinned cards stay at their current position when rows are updated.\n // Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.\n if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {\n const rows = Array.from(action.data.rows);\n section.rows.forEach((card, index) => {\n if (card.pinned) {\n rows.splice(index, 0, card);\n }\n });\n return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));\n }\n\n return Object.assign({}, section, initialized, action.data);\n }\n return section;\n });\n\n if (!action.data.dedupeConfigurations) {\n return newState;\n }\n\n action.data.dedupeConfigurations.forEach(dedupeConf => {\n newState = newState.map(section => {\n if (section.id === dedupeConf.id) {\n const dedupedRows = dedupeConf.dedupeFrom.reduce((rows, dedupeSectionId) => {\n const dedupeSection = newState.find(s => s.id === dedupeSectionId);\n const [, newRows] = dedupe.group(dedupeSection.rows, rows);\n return newRows;\n }, section.rows);\n\n return Object.assign({}, section, {rows: dedupedRows});\n }\n\n return section;\n });\n });\n\n return newState;\n case at.SECTION_UPDATE_CARD:\n return prevState.map(section => {\n if (section && section.id === action.data.id && section.rows) {\n const newRows = section.rows.map(card => {\n if (card.url === action.data.url) {\n return Object.assign({}, card, action.data.options);\n }\n return card;\n });\n return Object.assign({}, section, {rows: newRows});\n }\n return section;\n });\n case at.PLACES_BOOKMARK_ADDED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n // find the item within the rows that is attempted to be bookmarked\n if (item.url === action.data.url) {\n const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n return Object.assign({}, item, {\n bookmarkGuid,\n bookmarkTitle,\n bookmarkDateCreated: dateAdded,\n type: \"bookmark\",\n });\n }\n return item;\n }),\n }));\n case at.PLACES_SAVED_TO_POCKET:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n if (item.url === action.data.url) {\n return Object.assign({}, item, {\n open_url: action.data.open_url,\n pocket_id: action.data.pocket_id,\n title: action.data.title,\n type: \"pocket\",\n });\n }\n return item;\n }),\n }));\n case at.PLACES_BOOKMARK_REMOVED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n // find the bookmark within the rows that is attempted to be removed\n if (item.url === action.data.url) {\n const newSite = Object.assign({}, item);\n delete newSite.bookmarkGuid;\n delete newSite.bookmarkTitle;\n delete newSite.bookmarkDateCreated;\n if (!newSite.type || newSite.type === \"bookmark\") {\n newSite.type = \"history\";\n }\n return newSite;\n }\n return item;\n }),\n }));\n case at.PLACES_LINK_DELETED:\n case at.PLACES_LINK_BLOCKED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section =>\n Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));\n case at.DELETE_FROM_POCKET:\n case at.ARCHIVE_FROM_POCKET:\n return prevState.map(section =>\n Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));\n case at.SNIPPETS_PREVIEW_MODE:\n return prevState.map(section => ({...section, rows: []}));\n default:\n return prevState;\n }\n}\n\nfunction Snippets(prevState = INITIAL_STATE.Snippets, action) {\n switch (action.type) {\n case at.SNIPPETS_DATA:\n return Object.assign({}, prevState, {initialized: true}, action.data);\n case at.SNIPPET_BLOCKED:\n return Object.assign({}, prevState, {blockList: prevState.blockList.concat(action.data)});\n case at.SNIPPETS_BLOCKLIST_CLEARED:\n return Object.assign({}, prevState, {blockList: []});\n case at.SNIPPETS_RESET:\n return INITIAL_STATE.Snippets;\n default:\n return prevState;\n }\n}\n\nfunction Pocket(prevState = INITIAL_STATE.Pocket, action) {\n switch (action.type) {\n case at.POCKET_WAITING_FOR_SPOC:\n return {...prevState, waitingForSpoc: action.data};\n case at.POCKET_LOGGED_IN:\n return {...prevState, isUserLoggedIn: !!action.data};\n case at.POCKET_CTA:\n return {\n ...prevState,\n pocketCta: {\n ctaButton: action.data.cta_button,\n ctaText: action.data.cta_text,\n ctaUrl: action.data.cta_url,\n useCta: action.data.use_cta,\n },\n };\n default:\n return prevState;\n }\n}\n\nthis.INITIAL_STATE = INITIAL_STATE;\nthis.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;\nthis.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;\n\nthis.reducers = {TopSites, App, ASRouter, Snippets, Prefs, Dialog, Sections, Pocket};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n","/**\n * Checks if a given string is an email or phone number or neither\n * @param {string} val The user input\n * @param {ASRMessageContent} content .content property on ASR message\n * @returns {\"email\"|\"phone\"|\"\"} The type of the input\n */\nexport function isEmailOrPhoneNumber(val, content) {\n const {locale} = content;\n // http://emailregex.com/\n const email_re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n const check_email = email_re.test(val);\n let check_phone; // depends on locale\n switch (locale) {\n case \"en-US\":\n case \"en-CA\":\n // allow 10-11 digits in case user wants to enter country code\n check_phone = val.length >= 10 && val.length <= 11 && !isNaN(val);\n break;\n case \"de\":\n // allow between 2 and 12 digits for german phone numbers\n check_phone = val.length >= 2 && val.length <= 12 && !isNaN(val);\n break;\n // this case should never be hit, but good to have a fallback just in case\n default:\n check_phone = !isNaN(val);\n break;\n }\n if (check_email) {\n return \"email\";\n } else if (check_phone) {\n return \"phone\";\n }\n return \"\";\n}\n","import {isEmailOrPhoneNumber} from \"./isEmailOrPhoneNumber\";\nimport React from \"react\";\nimport {SubmitFormSnippet} from \"../SubmitFormSnippet/SubmitFormSnippet.jsx\";\n\nfunction validateInput(value, content) {\n const type = isEmailOrPhoneNumber(value, content);\n return type ? \"\" : \"Must be an email or a phone number.\";\n}\n\nfunction processFormData(input, message) {\n const {content} = message;\n const type = content.include_sms ? isEmailOrPhoneNumber(input.value, content) : \"email\";\n const formData = new FormData();\n let url;\n if (type === \"phone\") {\n url = \"https://basket.mozilla.org/news/subscribe_sms/\";\n formData.append(\"mobile_number\", input.value);\n formData.append(\"msg_name\", content.message_id_sms);\n formData.append(\"country\", content.country);\n } else if (type === \"email\") {\n url = \"https://basket.mozilla.org/news/subscribe/\";\n formData.append(\"email\", input.value);\n formData.append(\"newsletters\", content.message_id_email);\n formData.append(\"source_url\", encodeURIComponent(`https://snippets.mozilla.com/show/${message.id}`));\n }\n formData.append(\"lang\", content.locale);\n return {formData, url};\n}\n\nexport const SendToDeviceSnippet = props => (\n \n);\n","import React from \"react\";\n\nexport class ModalOverlay extends React.PureComponent {\n componentWillMount() {\n this.setState({active: true});\n document.body.classList.add(\"modal-open\");\n }\n\n componentWillUnmount() {\n document.body.classList.remove(\"modal-open\");\n this.setState({active: false});\n }\n\n render() {\n const {active} = this.state;\n const {title, button_label} = this.props;\n return (\n \n
\n
\n
{title} \n {this.props.children}\n
\n {button_label} \n
\n
\n
\n );\n }\n}\n","import {ModalOverlay} from \"../../components/ModalOverlay/ModalOverlay\";\nimport React from \"react\";\n\nclass OnboardingCard extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n }\n\n onClick() {\n const {props} = this;\n const ping = {\n event: \"CLICK_BUTTON\",\n message_id: props.id,\n id: props.UISurface,\n };\n props.sendUserActionTelemetry(ping);\n props.onAction(props.content.button_action);\n }\n\n render() {\n const {content} = this.props;\n return (\n \n
\n
\n
\n {content.title} \n {content.text}
\n \n
\n {content.button_label} \n \n
\n
\n );\n }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n render() {\n const {props} = this;\n const {button_label, header} = props.extraTemplateStrings;\n return (\n \n \n {props.bundle.map(message => (\n \n ))}\n
\n \n );\n }\n}\n","export const cardContextTypes = {\n history: {\n intlID: \"type_label_visited\",\n icon: \"history-item\",\n },\n bookmark: {\n intlID: \"type_label_bookmarked\",\n icon: \"bookmark-added\",\n },\n trending: {\n intlID: \"type_label_recommended\",\n icon: \"trending\",\n },\n now: {\n intlID: \"type_label_now\",\n icon: \"now\",\n },\n pocket: {\n intlID: \"type_label_pocket\",\n icon: \"pocket\",\n },\n download: {\n intlID: \"type_label_downloaded\",\n icon: \"download\",\n },\n};\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {cardContextTypes} from \"./types\";\nimport {connect} from \"react-redux\";\nimport {GetPlatformString} from \"content-src/lib/link-menu-options\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {ScreenshotUtils} from \"content-src/lib/screenshot-utils\";\n\n// Keep track of pending image loads to only request once\nconst gImageLoading = new Map();\n\n/**\n * Card component.\n * Cards are found within a Section component and contain information about a link such\n * as preview image, page title, page description, and some context about if the page\n * was visited, bookmarked, trending etc...\n * Each Section can make an unordered list of Cards which will create one instane of\n * this class. Each card will then get a context menu which reflects the actions that\n * can be done on this Card.\n */\nexport class _Card extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n activeCard: null,\n imageLoaded: false,\n showContextMenu: false,\n cardImage: null,\n };\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n this.onLinkClick = this.onLinkClick.bind(this);\n }\n\n /**\n * Helper to conditionally load an image and update state when it loads.\n */\n async maybeLoadImage() {\n // No need to load if it's already loaded or no image\n const {cardImage} = this.state;\n if (!cardImage) {\n return;\n }\n\n const imageUrl = cardImage.url;\n if (!this.state.imageLoaded) {\n // Initialize a promise to share a load across multiple card updates\n if (!gImageLoading.has(imageUrl)) {\n const loaderPromise = new Promise((resolve, reject) => {\n const loader = new Image();\n loader.addEventListener(\"load\", resolve);\n loader.addEventListener(\"error\", reject);\n loader.src = imageUrl;\n });\n\n // Save and remove the promise only while it's pending\n gImageLoading.set(imageUrl, loaderPromise);\n loaderPromise.catch(ex => ex).then(() => gImageLoading.delete(imageUrl)).catch();\n }\n\n // Wait for the image whether just started loading or reused promise\n await gImageLoading.get(imageUrl);\n\n // Only update state if we're still waiting to load the original image\n if (ScreenshotUtils.isRemoteImageLocal(this.state.cardImage, this.props.link.image) &&\n !this.state.imageLoaded) {\n this.setState({imageLoaded: true});\n }\n }\n }\n\n /**\n * Helper to obtain the next state based on nextProps and prevState.\n *\n * NOTE: Rename this method to getDerivedStateFromProps when we update React\n * to >= 16.3. We will need to update tests as well. We cannot rename this\n * method to getDerivedStateFromProps now because there is a mismatch in\n * the React version that we are using for both testing and production.\n * (i.e. react-test-render => \"16.3.2\", react => \"16.2.0\").\n *\n * See https://github.com/airbnb/enzyme/blob/master/packages/enzyme-adapter-react-16/package.json#L43.\n */\n static getNextStateFromProps(nextProps, prevState) {\n const {image} = nextProps.link;\n const imageInState = ScreenshotUtils.isRemoteImageLocal(prevState.cardImage, image);\n let nextState = null;\n\n // Image is updating.\n if (!imageInState && nextProps.link) {\n nextState = {imageLoaded: false};\n }\n\n if (imageInState) {\n return nextState;\n }\n\n // Since image was updated, attempt to revoke old image blob URL, if it exists.\n ScreenshotUtils.maybeRevokeBlobObjectURL(prevState.cardImage);\n\n nextState = nextState || {};\n nextState.cardImage = ScreenshotUtils.createLocalImageObject(image);\n\n return nextState;\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.setState({\n activeCard: this.props.index,\n showContextMenu: true,\n });\n }\n\n /**\n * Report to telemetry additional information about the item.\n */\n _getTelemetryInfo() {\n // Filter out \"history\" type for being the default\n if (this.props.link.type !== \"history\") {\n return {value: {card_type: this.props.link.type}};\n }\n\n return null;\n }\n\n onLinkClick(event) {\n event.preventDefault();\n if (this.props.link.type === \"download\") {\n this.props.dispatch(ac.OnlyToMain({\n type: at.SHOW_DOWNLOAD_FILE,\n data: this.props.link,\n }));\n } else {\n const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n this.props.dispatch(ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}}),\n }));\n }\n if (this.props.isWebExtension) {\n this.props.dispatch(ac.WebExtEvent(at.WEBEXT_CLICK, {\n source: this.props.eventSource,\n url: this.props.link.url,\n action_position: this.props.index,\n }));\n } else {\n this.props.dispatch(ac.UserEvent(Object.assign({\n event: \"CLICK\",\n source: this.props.eventSource,\n action_position: this.props.index,\n }, this._getTelemetryInfo())));\n\n if (this.props.shouldSendImpressionStats) {\n this.props.dispatch(ac.ImpressionStats({\n source: this.props.eventSource,\n click: 0,\n tiles: [{id: this.props.link.guid, pos: this.props.index}],\n }));\n }\n }\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n componentDidMount() {\n this.maybeLoadImage();\n }\n\n componentDidUpdate() {\n this.maybeLoadImage();\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillMount() {\n const nextState = _Card.getNextStateFromProps(this.props, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillReceiveProps(nextProps) {\n const nextState = _Card.getNextStateFromProps(nextProps, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n ScreenshotUtils.maybeRevokeBlobObjectURL(this.state.cardImage);\n }\n\n render() {\n const {index, className, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats} = this.props;\n const {props} = this;\n const isContextMenuOpen = this.state.showContextMenu && this.state.activeCard === index;\n // Display \"now\" as \"trending\" until we have new strings #3402\n const {icon, intlID} = cardContextTypes[link.type === \"now\" ? \"trending\" : link.type] || {};\n const hasImage = this.state.cardImage || link.hasImage;\n const imageStyle = {backgroundImage: this.state.cardImage ? `url(${this.state.cardImage.url})` : \"none\"};\n const outerClassName = [\n \"card-outer\",\n className,\n isContextMenuOpen && \"active\",\n props.placeholder && \"placeholder\",\n ].filter(v => v).join(\" \");\n\n return (\n \n \n
\n
\n {link.type === \"download\" &&
}\n {link.hostname &&\n
\n {link.hostname.slice(0, 100)}{link.type === \"download\" && ` \\u2014 ${link.description}`}\n
\n }\n
\n
{link.title} \n
{link.description}
\n
\n
\n {icon && !link.context &&
}\n {link.icon && link.context &&
}\n {intlID && !link.context &&
}\n {link.context &&
{link.context}
}\n
\n
\n
\n \n {!props.placeholder && \n {`Open context menu for ${link.title}`} \n }\n {isContextMenuOpen &&\n \n }\n );\n }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(injectIntl(_Card));\nexport const PlaceholderCard = props => ;\n","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class TopSiteFormInput extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {validationError: this.props.validationError};\n this.onChange = this.onChange.bind(this);\n this.onMount = this.onMount.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.shouldFocus && !this.props.shouldFocus) {\n this.input.focus();\n }\n if (nextProps.validationError && !this.props.validationError) {\n this.setState({validationError: true});\n }\n // If the component is in an error state but the value was cleared by the parent\n if (this.state.validationError && !nextProps.value) {\n this.setState({validationError: false});\n }\n }\n\n onChange(ev) {\n if (this.state.validationError) {\n this.setState({validationError: false});\n }\n this.props.onChange(ev);\n }\n\n onMount(input) {\n this.input = input;\n }\n\n render() {\n const showClearButton = this.props.value && this.props.onClear;\n const {typeUrl} = this.props;\n const {validationError} = this.state;\n\n return ( \n \n {this.props.loading ?\n
:\n showClearButton &&
}\n
\n {validationError &&\n
}\n
\n );\n }\n}\n\nTopSiteFormInput.defaultProps = {\n showClearButton: false,\n value: \"\",\n validationError: false,\n};\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {TopSiteFormInput} from \"./TopSiteFormInput\";\nimport {TopSiteLink} from \"./TopSite\";\n\nexport class TopSiteForm extends React.PureComponent {\n constructor(props) {\n super(props);\n const {site} = props;\n this.state = {\n label: site ? (site.label || site.hostname) : \"\",\n url: site ? site.url : \"\",\n validationError: false,\n customScreenshotUrl: site ? site.customScreenshotURL : \"\",\n showCustomScreenshotForm: site ? site.customScreenshotURL : false,\n };\n this.onClearScreenshotInput = this.onClearScreenshotInput.bind(this);\n this.onLabelChange = this.onLabelChange.bind(this);\n this.onUrlChange = this.onUrlChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onClearUrlClick = this.onClearUrlClick.bind(this);\n this.onDoneButtonClick = this.onDoneButtonClick.bind(this);\n this.onCustomScreenshotUrlChange = this.onCustomScreenshotUrlChange.bind(this);\n this.onPreviewButtonClick = this.onPreviewButtonClick.bind(this);\n this.onEnableScreenshotUrlForm = this.onEnableScreenshotUrlForm.bind(this);\n this.validateUrl = this.validateUrl.bind(this);\n }\n\n onLabelChange(event) {\n this.setState({\"label\": event.target.value});\n }\n\n onUrlChange(event) {\n this.setState({\n url: event.target.value,\n validationError: false,\n });\n }\n\n onClearUrlClick() {\n this.setState({\n url: \"\",\n validationError: false,\n });\n }\n\n onEnableScreenshotUrlForm() {\n this.setState({showCustomScreenshotForm: true});\n }\n\n _updateCustomScreenshotInput(customScreenshotUrl) {\n this.setState({\n customScreenshotUrl,\n validationError: false,\n });\n this.props.dispatch({type: at.PREVIEW_REQUEST_CANCEL});\n }\n\n onCustomScreenshotUrlChange(event) {\n this._updateCustomScreenshotInput(event.target.value);\n }\n\n onClearScreenshotInput() {\n this._updateCustomScreenshotInput(\"\");\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onDoneButtonClick(ev) {\n ev.preventDefault();\n\n if (this.validateForm()) {\n const site = {url: this.cleanUrl(this.state.url)};\n const {index} = this.props;\n if (this.state.label !== \"\") {\n site.label = this.state.label;\n }\n\n if (this.state.customScreenshotUrl) {\n site.customScreenshotURL = this.cleanUrl(this.state.customScreenshotUrl);\n } else if (this.props.site && this.props.site.customScreenshotURL) {\n // Used to flag that previously cached screenshot should be removed\n site.customScreenshotURL = null;\n }\n this.props.dispatch(ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {site, index},\n }));\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"TOP_SITES_EDIT\",\n action_position: index,\n }));\n\n this.props.onClose();\n }\n }\n\n onPreviewButtonClick(event) {\n event.preventDefault();\n if (this.validateForm()) {\n this.props.dispatch(ac.AlsoToMain({\n type: at.PREVIEW_REQUEST,\n data: {url: this.cleanUrl(this.state.customScreenshotUrl)},\n }));\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"PREVIEW_REQUEST\",\n }));\n }\n }\n\n cleanUrl(url) {\n // If we are missing a protocol, prepend http://\n if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\")) {\n return `http://${url}`;\n }\n return url;\n }\n\n _tryParseUrl(url) {\n try {\n return new URL(url);\n } catch (e) {\n return null;\n }\n }\n\n validateUrl(url) {\n const validProtocols = [\"http:\", \"https:\"];\n const urlObj = this._tryParseUrl(url) || this._tryParseUrl(this.cleanUrl(url));\n\n return urlObj && validProtocols.includes(urlObj.protocol);\n }\n\n validateCustomScreenshotUrl() {\n const {customScreenshotUrl} = this.state;\n return !customScreenshotUrl || this.validateUrl(customScreenshotUrl);\n }\n\n validateForm() {\n const validate = this.validateUrl(this.state.url) && this.validateCustomScreenshotUrl();\n\n if (!validate) {\n this.setState({validationError: true});\n }\n\n return validate;\n }\n\n _renderCustomScreenshotInput() {\n const {customScreenshotUrl} = this.state;\n const requestFailed = this.props.previewResponse === \"\";\n const validationError = (this.state.validationError && !this.validateCustomScreenshotUrl()) || requestFailed;\n // Set focus on error if the url field is valid or when the input is first rendered and is empty\n const shouldFocus = (validationError && this.validateUrl(this.state.url)) || !customScreenshotUrl;\n const isLoading = this.props.previewResponse === null &&\n customScreenshotUrl && this.props.previewUrl === this.cleanUrl(customScreenshotUrl);\n\n if (!this.state.showCustomScreenshotForm) {\n return (\n \n );\n }\n return (\n \n
);\n }\n\n render() {\n const {customScreenshotUrl} = this.state;\n const requestFailed = this.props.previewResponse === \"\";\n // For UI purposes, editing without an existing link is \"add\"\n const showAsAdd = !this.props.site;\n const previous = (this.props.site && this.props.site.customScreenshotURL) || \"\";\n const changed = customScreenshotUrl && this.cleanUrl(customScreenshotUrl) !== previous;\n // Preview mode if changes were made to the custom screenshot URL and no preview was received yet\n // or the request failed\n const previewMode = changed && !this.props.previewResponse;\n const previewLink = Object.assign({}, this.props.site);\n if (this.props.previewResponse) {\n previewLink.screenshot = this.props.previewResponse;\n previewLink.customScreenshotURL = this.props.previewUrl;\n }\n return (\n \n );\n }\n}\n\nTopSiteForm.defaultProps = {\n site: null,\n index: -1,\n};\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./content-src/activity-stream.jsx","webpack:///(webpack)/buildin/global.js","webpack:///./common/Actions.jsm","webpack:///./content-src/lib/snippets.js","webpack:///./content-src/asrouter/asrouter-content.jsx","webpack:///./content-src/lib/init-store.js","webpack:///external \"Redux\"","webpack:///./content-src/asrouter/rich-text-strings.js","webpack:///./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///external \"React\"","webpack:///external \"PropTypes\"","webpack:///external \"ReactDOM\"","webpack:///./content-src/components/Base/Base.jsx","webpack:///external \"ReactIntl\"","webpack:///./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///external \"ReactRedux\"","webpack:///./content-src/components/ErrorBoundary/ErrorBoundary.jsx","webpack:///./content-src/components/ManualMigration/ManualMigration.jsx","webpack:///./common/PrerenderData.jsm","webpack:///./content-src/components/Search/Search.jsx","webpack:///./content-src/lib/constants.js","webpack:///./content-src/components/Sections/Sections.jsx","webpack:///./content-src/lib/link-menu-options.js","webpack:///./content-src/components/LinkMenu/LinkMenu.jsx","webpack:///./content-src/components/ContextMenu/ContextMenu.jsx","webpack:///./content-src/lib/screenshot-utils.js","webpack:///./content-src/components/CollapsibleSection/CollapsibleSection.jsx","webpack:///./content-src/components/SectionMenu/SectionMenu.jsx","webpack:///./content-src/lib/section-menu-options.js","webpack:///./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./common/PerfService.jsm","webpack:///./content-src/components/MoreRecommendations/MoreRecommendations.jsx","webpack:///./content-src/components/PocketLoggedInCta/PocketLoggedInCta.jsx","webpack:///./content-src/components/Topics/Topics.jsx","webpack:///./content-src/components/TopSites/TopSites.jsx","webpack:///./content-src/components/TopSites/TopSitesConstants.js","webpack:///./content-src/components/TopSites/SearchShortcutsForm.jsx","webpack:///./content-src/components/TopSites/TopSite.jsx","webpack:///./content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./content-src/lib/detect-user-session-start.js","webpack:///./content-src/lib/asroutercontent.js","webpack:///./content-src/asrouter/components/Button/Button.jsx","webpack:///./content-src/asrouter/template-utils.js","webpack:///./content-src/asrouter/components/RichText/RichText.jsx","webpack:///./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./content-src/asrouter/templates/EOYSnippet/EOYSnippet.jsx","webpack:///./content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx","webpack:///./content-src/asrouter/templates/FXASignupSnippet/FXASignupSnippet.jsx","webpack:///./content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx","webpack:///./content-src/asrouter/templates/SendToDeviceSnippet/isEmailOrPhoneNumber.js","webpack:///./content-src/asrouter/templates/SendToDeviceSnippet/SendToDeviceSnippet.jsx","webpack:///./content-src/asrouter/templates/template-manifest.jsx","webpack:///./node_modules/fluent/src/parser.js","webpack:///./node_modules/fluent/src/types.js","webpack:///./node_modules/fluent/src/builtins.js","webpack:///./node_modules/fluent/src/resolver.js","webpack:///./node_modules/fluent/src/context.js","webpack:///./node_modules/fluent/src/cached_iterable.js","webpack:///./node_modules/fluent/src/fallback.js","webpack:///./node_modules/fluent/src/util.js","webpack:///./node_modules/fluent/src/index.js","webpack:///./node_modules/fluent-react/src/localization.js","webpack:///./node_modules/fluent-react/src/provider.js","webpack:///./node_modules/fluent-react/src/with_localization.js","webpack:///./node_modules/fluent-react/src/markup.js","webpack:///./node_modules/fluent-react/vendor/omittedCloseTags.js","webpack:///./node_modules/fluent-react/vendor/voidElementTags.js","webpack:///./node_modules/fluent-react/src/localized.js","webpack:///./node_modules/fluent-react/src/index.js","webpack:///./common/Dedupe.jsm","webpack:///./common/Reducers.jsm","webpack:///./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","webpack:///./content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","webpack:///./content-src/components/Card/types.js","webpack:///./content-src/components/Card/Card.jsx","webpack:///./content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./content-src/components/TopSites/TopSiteForm.jsx"],"names":["store","initStore","global","gActivityStreamPrerenderedState","asrouterContent","sendEventOrAddListener","dispatch","ac","AlsoToMain","type","at","NEW_TAB_STATE_REQUEST","ReactDOM","hydrate","document","location","href","documentElement","lang","gActivityStreamStrings","getElementById","enableASRouterContent","addSnippetsSubscriber","globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","fromTarget","skipLocal","CONTENT_MESSAGE_TYPE","MAIN_MESSAGE_TYPE","OnlyToMain","BroadcastToContent","AlsoToOneContent","target","skipMain","toTarget","OnlyToOneContent","AlsoToPreloaded","PRELOAD_MESSAGE_TYPE","UserEvent","data","TELEMETRY_USER_EVENT","ASRouterUserEvent","AS_ROUTER_TELEMETRY_USER_EVENT","UndesiredEvent","importContext","TELEMETRY_UNDESIRED_EVENT","PerfEvent","TELEMETRY_PERFORMANCE_EVENT","ImpressionStats","TELEMETRY_IMPRESSION_STATS","SetPref","name","value","SET_PREF","WebExtEvent","source","isSendToMain","isBroadcastToContent","isSendToOneContent","isSendToPreloaded","isFromMain","getPortIdOfSender","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","Map","constructor","_db","_dispatch","set","key","_dbTransaction","db","put","delete","clear","SNIPPETS_BLOCKLIST_CLEARED","blockList","get","blockSnippetById","id","includes","push","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","RPMAddMessageListener","onMessage","TOTAL_BOOKMARKS_RESPONSE","RPMRemoveMessageListener","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","connect","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","event","onerror","error","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","result","objectStoreNames","contains","createObjectStore","err","console","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","bind","snippetsMap","_refreshSnippets","cachedVersion","appData","version","lastUpdate","needsUpdate","Date","now","snippetsURL","response","fetch","status","payload","text","e","_noSnippetFallback","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","msg","SNIPPET_BLOCKED","concat","style","display","init","Object","assign","keys","window","dispatchEvent","Event","initialized","uninit","snippets","initializing","subscribe","state","getState","Prefs","values","ASRouter","allowLegacySnippets","disableSnippets","Snippets","hash","log","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASR_CONTAINER_ID","ASRouterUtils","addListener","listener","removeListener","sendMessage","RPMSendAsyncMessage","blockById","dismissById","blockBundle","bundle","executeAction","button_action","unblockById","unblockBundle","overrideMessage","sendTelemetry","ping","getPreviewEndpoint","params","URLSearchParams","slice","indexOf","endpoint","URL","url","snippetId","shouldSendImpressionOnUpdate","nextProps","prevProps","message","ASRouterUISurface","React","PureComponent","props","onMessageFromParent","sendClick","sendImpression","sendUserActionTelemetry","extraProps","message_id","eventType","provider","metric","dataset","args","content","do_not_autoblock","onBlockById","onDismissById","clearBundle","setState","componentWillMount","trigger","componentWillUnmount","renderSnippets","SnippetComponent","SnippetsTemplates","template","generateMessages","renderOnboarding","renderPreviewBanner","render","defaultProps","ASRouterContent","containerElement","_mount","zIndex","body","appendChild","_unmount","unmountComponentAtNode","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","prevState","messageMiddleware","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","_didRequestInitialState","INIT","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","reducers","initialState","createStore","combineReducers","applyMiddleware","ex","dump","JSON","stringify","stack","RICH_TEXT_CONFIG","RICH_TEXT_KEYS","cx","attrs","attrsToTry","Array","isArray","string","length","attr","pop","addMessages","VISIBLE","VISIBILITY_CHANGE_EVENT","ImpressionsWrapper","sendImpressionOrAddListener","visibilityState","_onVisibilityChange","removeEventListener","addEventListener","componentDidMount","sendOnMount","componentDidUpdate","children","PrefsButton","injectIntl","onClick","intl","formatMessage","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","debounce","func","wait","timer","wakeUp","setTimeout","apply","_Base","isFirstrun","classList","add","isPrerendered","updateTheme","componentWillUpdate","bodyClassName","filter","v","join","className","App","strings","prefs","BaseContent","openPreferences","onWindowScroll","fixedSearch","SCROLL_THRESHOLD","scrollY","SETTINGS_OPEN","shouldBeFixedToTop","PrerenderData","arePrefsValid","noSectionsEnabled","Sections","section","enabled","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","handleEnabledToggle","onChangeMessageFilter","findOtherBundledMessagesOfSameTemplate","messageFilter","messages","bundled","handleBlock","handleUnblock","handleOverride","expireCache","resetPref","renderMessageItem","isCurrent","lastMessageId","isBlocked","messageBlockList","impressions","messageImpressions","itemClassName","renderMessages","messagesToShow","map","renderMessageFilter","providers","renderTableHead","checked","renderProviders","providersConfig","providerPrefs","providerInfo","i","isTestProvider","info","find","p","label","bucket","whiteSpace","lastUpdated","toLocaleString","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","DIALOG_CANCEL","eventSource","onConfirm","_renderModalMessage","message_body","body_string_id","visible","icon","cancel_button_string_id","confirm_button_string_id","ConfirmDialog","Dialog","ErrorBoundaryFallback","windowObj","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","FallbackComponent","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","reduce","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","pref","order","title","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","showLogo","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","getFormattedMessage","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","rows","needsImpressionStats","tiles","link","guid","impressionCardGuids","sendImpressionStatsOrAddListener","shouldSendImpressionStats","collapsed","sendNewTabRehydrated","isCollapsed","wasCollapsed","renderNotified","NEW_TAB_REHYDRATED","Pocket","topics","emptyState","read_more_endpoint","contextMenuOptions","learnMore","privacyNoticeURL","isFirst","isLast","waitingForSpoc","maxCardsPerRow","maxCardsOnNarrow","pocketCta","isUserLoggedIn","useCta","isPocketLoggedInDefined","shouldShowPocketCta","shouldShowTopics","realRows","shouldShowEmptyState","usePlaceholder","isWebExtension","sectionClassName","feed","padding","startsWith","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","commonProps","s","_OpenInPrivateWindow","site","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","bookmarkGuid","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","index","BLOCK_URL","open_url","pocket_id","impression","block","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","DIALOG_OPEN","DELETE_HISTORY_URL","forceBlock","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","searchTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","DELETE_FROM_POCKET","ArchiveFromPocket","ARCHIVE_FROM_POCKET","EditTopSite","TOP_SITES_EDIT","CheckBookmark","CheckPinTopSite","isPinned","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","userEventData","first","last","onUpdate","LinkMenu","ContextMenu","hideContext","stopPropagation","ContextMenuItem","onKeyDown","shiftKey","ScreenshotUtils","isBlob","isLocal","image","path","createLocalImageObject","remoteImage","createObjectURL","maybeRevokeBlobObjectURL","localImage","revokeObjectURL","isRemoteImageLocal","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","sectionBody","scrollHeight","node","undefined","maxHeight","_getSectionBodyHeight","SectionMenuOptions","CheckCollapsed","div","currentTarget","renderIcon","backgroundImage","preventDefault","isCollapsible","extraMenuOptions","showPrefName","active","bodyStyle","CollapsibleSection","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","splice","SectionMenu","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","AddSearchShortcut","TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","MoreRecommendations","_PocketLoggedInCta","ctaUrl","ctaButton","ctaText","PocketLoggedInCta","Topic","Topics","t","topSiteIconType","customScreenshotURL","tippyTopIcon","faviconRef","faviconSize","screenshot","countTopSitesIconsTypes","topSites","countTopSitesTypes","acc","_TopSites","onEditFormClose","onSearchShortcutsFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","searchShortcuts","topsites_icon_stats","topsites_pinned","topsites_search_shortcuts","sitesPerRow","TopSites","TopSitesRows","TOP_SITES_CANCEL_EDIT","TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL","editForm","showSearchShortcutsForm","topSitesRows","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","SelectableSearchShortcut","shortcut","selected","imageStyle","keyword","onChange","SearchShortcutsForm","handleChange","onCancelButtonClick","onSaveButtonClick","shortcuts","isSelected","row","ev","onClose","pinQueue","unpinQueue","alreadyPinned","_searchTopSite","searchVendor","shortURL","UPDATE_PINNED_SEARCH_SHORTCUTS","addedShortcuts","deletedShortcuts","search_vendor","TopSiteLink","screenshotImage","onDragEvent","onKeyPress","_allowDrop","dataTransfer","types","dragged","effectAllowed","setData","blur","button","getNextStateFromProps","imageInState","nextState","componentWillReceiveProps","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","letterFallback","imageClassName","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","hasScreenshotImage","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","hostname","altKey","ctrlKey","metaKey","FILL_SEARCH_TERM","onActivate","isContextMenuOpen","activeIndex","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","preview","shift","topSitesUI","maxNarrowVisibleIndex","l","slotProps","TopSiteList","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","onInputInvalid","emailInput","overlayRemoved","flowId","flowBeginTime","didFetch","fxa_endpoint","fxaParams","json","show","remove","previousSibling","_getFormInfo","has_flow_params","focus","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts","ALLOWED_STYLE_TAGS","Button","tag","border","safeURI","protocol","isAllowed","warn","ALLOWED_TAGS","b","u","strong","em","br","convertLinks","links","doNotAutoBlock","linkTag","RichText","localization_id","customElements","onBlockClicked","UISurface","onBlock","renderDismissButton","footerDismiss","onDismiss","scene2_dismiss_button_text","block_button_text","containerClassName","textStyle","DEFAULT_ICON_PATH","onButtonClick","button_url","onAction","button_action_args","renderTitle","renderTitleIcon","titleIcon","title_icon","renderButton","button_color","button_background_color","button_label","renderText","tall","extraContent","handleSubmit","setFrequencyValue","frequencyCheckbox","refs","form","querySelector","submit","renderDonations","fieldNames","numberFormat","Intl","NumberFormat","navigator","language","currency","currency_code","minimumFractionDigits","selected_button","btnStyle","color","donation_form_url","form_method","field","idx","button_name","amount","format","monthly_checkbox_label_text","text_color","background_color","customElement","highlight_color","test","EOYSnippet","extendedContent","expandSnippet","expanded","signupSubmitted","signupSuccess","disableForm","toUpperCase","formData","processFormData","mainInput","FormData","fetchRequest","Request","method","preventDismiss","renderHiddenFormInputs","hidden_inputs","renderDisclaimer","scene2_disclaimer_html","renderFormPrivacyNotice","scene2_privacy_html","renderSignupSubmitted","isSuccess","successTitle","success_title","bodyText","success_text","error_text","retryButtonText","scene1_button_label","validateInput","setCustomValidity","renderInput","placholder","scene2_email_placeholder_text","scene2_input_placeholder","inputType","renderSignupView","containerClass","scene2_icon","scene2_text","form_action","scene2_button_label","getFirstSceneContent","substr","FXASignupSnippet","userAgent","match","firefox_version","context","entrypoint","service","utm_source","utm_content","utm_campaign","utm_term","NewsletterSnippet","newsletters","scene2_newsletter","fmt","source_url","isEmailOrPhoneNumber","val","email_re","check_email","check_phone","isNaN","include_sms","append","message_id_sms","country","message_id_email","encodeURIComponent","SendToDeviceSnippet","simple_snippet","newsletter_snippet","fxa_signup_snippet","send_to_device_snippet","eoy_snippet","MAX_PLACEABLES","entryIdentifierRe","identifierRe","functionIdentifierRe","RuntimeParser","getResource","_source","_index","_length","errors","skipWS","getEntry","SyntaxError","skipToNextEntryStart","ch","skipComment","skipSection","getMessage","skipInlineWS","getVariantName","getEntryIdentifier","getPattern","lineStart","getAttributes","skipBlankLines","ptr","getIdentifier","re","lastIndex","exec","toString","start","cc","charCodeAt","getString","substring","eol","firstLineContent","getComplexPattern","buffer","placeables","blankLinesStart","blankLinesEnd","ch2","getPlaceable","variants","getVariants","exp","vars","def","selector","getSelectorExpression","literal","getLiteral","getVariantKey","getCallArgs","fun","lastIndexOf","getNumber","num","defaultIndex","cc0","cc1","parse","parser","FluentType","opts","valueOf","FluentNone","FluentNumber","parseFloat","ctx","nf","_memoizeIntlObject","other","FluentDateTime","dtf","DateTimeFormat","FluentSymbol","pr","PluralRules","select","arg","merge","argopts","unwrapped","opt","MAX_PLACEABLE_LENGTH","FSI","PDI","DefaultMember","env","members","RangeError","MessageReference","_terms","_messages","ReferenceError","VariantExpression","Type","isVariantList","variant","variantKey","AttributeExpression","attrName","SelectExpression","keyCanMatch","expr","Pattern","ExternalArgument","FunctionReference","CallExpression","member","hasOwnProperty","TypeError","_functions","builtins","callee","posargs","keyargs","ptn","dirty","has","useIsolating","_useIsolating","elem","part","WeakSet","locales","functions","_intls","WeakMap","Symbol","iterator","hasMessage","ctor","cache","CachedIterable","iterable","asyncIterator","seen","cur","touchNext","done","mapContextSync","ids","getContextForId","remainingCount","foundContexts","fill","mapContextAsync","nonBlank","line","countIndent","indent","ftl","code","lines","indents","common","Math","min","RegExp","replace","contexts","subs","Set","comp","unsubscribe","setMessages","relocalize","getMessageContext","formatCompound","mcx","fallback","isReactLocalization","propName","prop","l10n","getChildContext","Children","only","LocalizationProvider","childContextTypes","propTypes","PropTypes","element","isRequired","isIterable","componentName","withLocalization","Inner","WithLocalization","forceUpdate","displayName","contextTypes","component","TEMPLATE","parseMarkup","omittedCloseTags","area","base","col","embed","hr","img","keygen","param","track","wbr","voidElementTags","menuitem","reMarkup","toArguments","elems","propname","propval","isValidElement","toLowerCase","messageValue","messageAttrs","localizedProps","cloneElement","translationNodes","childNodes","translatedChildren","childNode","nodeType","TEXT_NODE","textContent","localName","sourceChild","Localized","Dedupe","createKey","defaultCreateKey","item","group","groups","globalKeys","valueMap","m","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","INITIAL_STATE","AS_ROUTER_INITIALIZED","AS_ROUTER_PREF_CHANGED","insertPinned","pinned","pinnedUrls","newLinks","pinIndex","hasMatch","newRows","TOP_SITES_UPDATED","TOP_SITES_PREFS_UPDATED","previewResponse","PREVIEW_RESPONSE","previewUrl","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","PLACES_BOOKMARK_ADDED","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","UPDATE_SEARCH_SHORTCUTS","SNIPPETS_PREVIEW_MODE","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","SECTION_REGISTER","SECTION_UPDATE","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","dedupeSectionId","dedupeSection","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","PLACES_LINK_BLOCKED","SNIPPETS_DATA","SNIPPETS_RESET","POCKET_WAITING_FOR_SPOC","POCKET_LOGGED_IN","POCKET_CTA","cta_button","cta_text","cta_url","use_cta","onDoneButton","header","extraTemplateStrings","cardContextTypes","history","intlID","bookmark","trending","download","gImageLoading","activeCard","imageLoaded","cardImage","maybeLoadImage","imageUrl","loaderPromise","loader","Image","src","catch","then","WEBEXT_CLICK","click","_Card","hasImage","placeholder","description","Card","PlaceholderCard","validationError","onMount","shouldFocus","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm"],"mappings":"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","file":"activity-stream.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {enableASRouterContent} from \"content-src/lib/asroutercontent\";\nimport {initStore} from \"content-src/lib/init-store\";\nimport {Provider} from \"react-redux\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {reducers} from \"common/Reducers.jsm\";\n\nconst store = initStore(reducers, global.gActivityStreamPrerenderedState);\nconst asrouterContent = new ASRouterContent();\n\nnew DetectUserSessionStart(store).sendEventOrAddListener();\n\n// If we are starting in a prerendered state, we must wait until the first render\n// to request state rehydration (see Base.jsx). If we are NOT in a prerendered state,\n// we can request it immedately.\nif (!global.gActivityStreamPrerenderedState) {\n store.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n}\n\nReactDOM.hydrate(\n \n , document.getElementById(\"root\"));\n\nenableASRouterContent(store, asrouterContent);\naddSnippetsSubscriber(store);\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nthis.MAIN_MESSAGE_TYPE = \"ActivityStream:Main\";\nthis.CONTENT_MESSAGE_TYPE = \"ActivityStream:Content\";\nthis.PRELOAD_MESSAGE_TYPE = \"ActivityStream:PreloadedBrowser\";\nthis.UI_CODE = 1;\nthis.BACKGROUND_PROCESS = 2;\n\n/**\n * globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?\n * Use this in action creators if you need different logic\n * for ui/background processes.\n */\nconst globalImportContext = typeof Window === \"undefined\" ? BACKGROUND_PROCESS : UI_CODE;\n// Export for tests\nthis.globalImportContext = globalImportContext;\n\n// Create an object that avoids accidental differing key/value pairs:\n// {\n// INIT: \"INIT\",\n// UNINIT: \"UNINIT\"\n// }\nconst actionTypes = {};\nfor (const type of [\n \"ADDONS_INFO_REQUEST\",\n \"ADDONS_INFO_RESPONSE\",\n \"ARCHIVE_FROM_POCKET\",\n \"AS_ROUTER_INITIALIZED\",\n \"AS_ROUTER_PREF_CHANGED\",\n \"AS_ROUTER_TELEMETRY_USER_EVENT\",\n \"BLOCK_URL\",\n \"BOOKMARK_URL\",\n \"COPY_DOWNLOAD_LINK\",\n \"DELETE_BOOKMARK_BY_ID\",\n \"DELETE_FROM_POCKET\",\n \"DELETE_HISTORY_URL\",\n \"DIALOG_CANCEL\",\n \"DIALOG_OPEN\",\n \"DOWNLOAD_CHANGED\",\n \"FILL_SEARCH_TERM\",\n \"INIT\",\n \"MIGRATION_CANCEL\",\n \"MIGRATION_COMPLETED\",\n \"MIGRATION_START\",\n \"NEW_TAB_INIT\",\n \"NEW_TAB_INITIAL_STATE\",\n \"NEW_TAB_LOAD\",\n \"NEW_TAB_REHYDRATED\",\n \"NEW_TAB_STATE_REQUEST\",\n \"NEW_TAB_UNLOAD\",\n \"OPEN_DOWNLOAD_FILE\",\n \"OPEN_LINK\",\n \"OPEN_NEW_WINDOW\",\n \"OPEN_PRIVATE_WINDOW\",\n \"OPEN_WEBEXT_SETTINGS\",\n \"PAGE_PRERENDERED\",\n \"PLACES_BOOKMARK_ADDED\",\n \"PLACES_BOOKMARK_REMOVED\",\n \"PLACES_HISTORY_CLEARED\",\n \"PLACES_LINKS_CHANGED\",\n \"PLACES_LINK_BLOCKED\",\n \"PLACES_LINK_DELETED\",\n \"PLACES_SAVED_TO_POCKET\",\n \"POCKET_CTA\",\n \"POCKET_LOGGED_IN\",\n \"POCKET_WAITING_FOR_SPOC\",\n \"PREFS_INITIAL_VALUES\",\n \"PREF_CHANGED\",\n \"PREVIEW_REQUEST\",\n \"PREVIEW_REQUEST_CANCEL\",\n \"PREVIEW_RESPONSE\",\n \"REMOVE_DOWNLOAD_FILE\",\n \"RICH_ICON_MISSING\",\n \"SAVE_SESSION_PERF_DATA\",\n \"SAVE_TO_POCKET\",\n \"SCREENSHOT_UPDATED\",\n \"SECTION_DEREGISTER\",\n \"SECTION_DISABLE\",\n \"SECTION_ENABLE\",\n \"SECTION_MOVE\",\n \"SECTION_OPTIONS_CHANGED\",\n \"SECTION_REGISTER\",\n \"SECTION_UPDATE\",\n \"SECTION_UPDATE_CARD\",\n \"SETTINGS_CLOSE\",\n \"SETTINGS_OPEN\",\n \"SET_PREF\",\n \"SHOW_DOWNLOAD_FILE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\n \"SKIPPED_SIGNIN\",\n \"SNIPPETS_BLOCKLIST_CLEARED\",\n \"SNIPPETS_BLOCKLIST_UPDATED\",\n \"SNIPPETS_DATA\",\n \"SNIPPETS_PREVIEW_MODE\",\n \"SNIPPETS_RESET\",\n \"SNIPPET_BLOCKED\",\n \"SUBMIT_EMAIL\",\n \"SYSTEM_TICK\",\n \"TELEMETRY_IMPRESSION_STATS\",\n \"TELEMETRY_PERFORMANCE_EVENT\",\n \"TELEMETRY_UNDESIRED_EVENT\",\n \"TELEMETRY_USER_EVENT\",\n \"TOP_SITES_CANCEL_EDIT\",\n \"TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL\",\n \"TOP_SITES_EDIT\",\n \"TOP_SITES_INSERT\",\n \"TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL\",\n \"TOP_SITES_PIN\",\n \"TOP_SITES_PREFS_UPDATED\",\n \"TOP_SITES_UNPIN\",\n \"TOP_SITES_UPDATED\",\n \"TOTAL_BOOKMARKS_REQUEST\",\n \"TOTAL_BOOKMARKS_RESPONSE\",\n \"UNINIT\",\n \"UPDATE_PINNED_SEARCH_SHORTCUTS\",\n \"UPDATE_SEARCH_SHORTCUTS\",\n \"UPDATE_SECTION_PREFS\",\n \"WEBEXT_CLICK\",\n \"WEBEXT_DISMISS\",\n]) {\n actionTypes[type] = type;\n}\n\n// These are acceptable actions for AS Router messages to have. They can show up\n// as call-to-action buttons in snippets, onboarding tour, etc.\nconst ASRouterActions = {};\nfor (const type of [\n \"INSTALL_ADDON_FROM_URL\",\n \"OPEN_APPLICATIONS_MENU\",\n \"OPEN_PRIVATE_BROWSER_WINDOW\",\n \"OPEN_URL\",\n \"OPEN_ABOUT_PAGE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\n]) {\n ASRouterActions[type] = type;\n}\n\n// Helper function for creating routed actions between content and main\n// Not intended to be used by consumers\nfunction _RouteMessage(action, options) {\n const meta = action.meta ? {...action.meta} : {};\n if (!options || !options.from || !options.to) {\n throw new Error(\"Routed Messages must have options as the second parameter, and must at least include a .from and .to property.\");\n }\n // For each of these fields, if they are passed as an option,\n // add them to the action. If they are not defined, remove them.\n [\"from\", \"to\", \"toTarget\", \"fromTarget\", \"skipMain\", \"skipLocal\"].forEach(o => {\n if (typeof options[o] !== \"undefined\") {\n meta[o] = options[o];\n } else if (meta[o]) {\n delete meta[o];\n }\n });\n return {...action, meta};\n}\n\n/**\n * AlsoToMain - Creates a message that will be dispatched locally and also sent to the Main process.\n *\n * @param {object} action Any redux action (required)\n * @param {object} options\n * @param {bool} skipLocal Used by OnlyToMain to skip the main reducer\n * @param {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToMain(action, fromTarget, skipLocal) {\n return _RouteMessage(action, {\n from: CONTENT_MESSAGE_TYPE,\n to: MAIN_MESSAGE_TYPE,\n fromTarget,\n skipLocal,\n });\n}\n\n/**\n * OnlyToMain - Creates a message that will be sent to the Main process and skip the local reducer.\n *\n * @param {object} action Any redux action (required)\n * @param {object} options\n * @param {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToMain(action, fromTarget) {\n return AlsoToMain(action, fromTarget, true);\n}\n\n/**\n * BroadcastToContent - Creates a message that will be dispatched to main and sent to ALL content processes.\n *\n * @param {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction BroadcastToContent(action) {\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: CONTENT_MESSAGE_TYPE,\n });\n}\n\n/**\n * AlsoToOneContent - Creates a message that will be will be dispatched to the main store\n * and also sent to a particular Content process.\n *\n * @param {object} action Any redux action (required)\n * @param {string} target The id of a content port\n * @param {bool} skipMain Used by OnlyToOneContent to skip the main process\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToOneContent(action, target, skipMain) {\n if (!target) {\n throw new Error(\"You must provide a target ID as the second parameter of AlsoToOneContent. If you want to send to all content processes, use BroadcastToContent\");\n }\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: CONTENT_MESSAGE_TYPE,\n toTarget: target,\n skipMain,\n });\n}\n\n/**\n * OnlyToOneContent - Creates a message that will be sent to a particular Content process\n * and skip the main reducer.\n *\n * @param {object} action Any redux action (required)\n * @param {string} target The id of a content port\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToOneContent(action, target) {\n return AlsoToOneContent(action, target, true);\n}\n\n/**\n * AlsoToPreloaded - Creates a message that dispatched to the main reducer and also sent to the preloaded tab.\n *\n * @param {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToPreloaded(action) {\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: PRELOAD_MESSAGE_TYPE,\n });\n}\n\n/**\n * UserEvent - A telemetry ping indicating a user action. This should only\n * be sent from the UI during a user session.\n *\n * @param {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction UserEvent(data) {\n return AlsoToMain({\n type: actionTypes.TELEMETRY_USER_EVENT,\n data,\n });\n}\n\n/**\n * ASRouterUserEvent - A telemetry ping indicating a user action from AS router. This should only\n * be sent from the UI during a user session.\n *\n * @param {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction ASRouterUserEvent(data) {\n return AlsoToMain({\n type: actionTypes.AS_ROUTER_TELEMETRY_USER_EVENT,\n data,\n });\n}\n\n/**\n * UndesiredEvent - A telemetry ping indicating an undesired state.\n *\n * @param {object} data Fields to include in the ping (value, etc.)\n * @param {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction UndesiredEvent(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_UNDESIRED_EVENT,\n data,\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * PerfEvent - A telemetry ping indicating a performance-related event.\n *\n * @param {object} data Fields to include in the ping (value, etc.)\n * @param {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction PerfEvent(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_PERFORMANCE_EVENT,\n data,\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * ImpressionStats - A telemetry ping indicating an impression stats.\n *\n * @param {object} data Fields to include in the ping\n * @param {int} importContext (For testing) Override the import context for testing.\n * #return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction ImpressionStats(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_IMPRESSION_STATS,\n data,\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction SetPref(name, value, importContext = globalImportContext) {\n const action = {type: actionTypes.SET_PREF, data: {name, value}};\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction WebExtEvent(type, data, importContext = globalImportContext) {\n if (!data || !data.source) {\n throw new Error(\"WebExtEvent actions should include a property \\\"source\\\", the id of the webextension that should receive the event.\");\n }\n const action = {type, data};\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nthis.actionTypes = actionTypes;\nthis.ASRouterActions = ASRouterActions;\n\nthis.actionCreators = {\n BroadcastToContent,\n UserEvent,\n ASRouterUserEvent,\n UndesiredEvent,\n PerfEvent,\n ImpressionStats,\n AlsoToOneContent,\n OnlyToOneContent,\n AlsoToMain,\n OnlyToMain,\n AlsoToPreloaded,\n SetPref,\n WebExtEvent,\n};\n\n// These are helpers to test for certain kinds of actions\nthis.actionUtils = {\n isSendToMain(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.to === MAIN_MESSAGE_TYPE && action.meta.from === CONTENT_MESSAGE_TYPE;\n },\n isBroadcastToContent(action) {\n if (!action.meta) {\n return false;\n }\n if (action.meta.to === CONTENT_MESSAGE_TYPE && !action.meta.toTarget) {\n return true;\n }\n return false;\n },\n isSendToOneContent(action) {\n if (!action.meta) {\n return false;\n }\n if (action.meta.to === CONTENT_MESSAGE_TYPE && action.meta.toTarget) {\n return true;\n }\n return false;\n },\n isSendToPreloaded(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.to === PRELOAD_MESSAGE_TYPE &&\n action.meta.from === MAIN_MESSAGE_TYPE;\n },\n isFromMain(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.from === MAIN_MESSAGE_TYPE &&\n action.meta.to === CONTENT_MESSAGE_TYPE;\n },\n getPortIdOfSender(action) {\n return (action.meta && action.meta.fromTarget) || null;\n },\n _RouteMessage,\n};\n\nconst EXPORTED_SYMBOLS = [\n \"actionTypes\",\n \"actionCreators\",\n \"actionUtils\",\n \"ASRouterActions\",\n \"globalImportContext\",\n \"UI_CODE\",\n \"BACKGROUND_PROCESS\",\n \"MAIN_MESSAGE_TYPE\",\n \"CONTENT_MESSAGE_TYPE\",\n \"PRELOAD_MESSAGE_TYPE\",\n];\n","const DATABASE_NAME = \"snippets_db\";\nconst DATABASE_VERSION = 1;\nconst SNIPPETS_OBJECTSTORE_NAME = \"snippets\";\nexport const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours.\n\nconst SNIPPETS_ENABLED_EVENT = \"Snippets:Enabled\";\nconst SNIPPETS_DISABLED_EVENT = \"Snippets:Disabled\";\n\nimport {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * SnippetsMap - A utility for cacheing values related to the snippet. It has\n * the same interface as a Map, but is optionally backed by\n * indexedDB for persistent storage.\n * Call .connect() to open a database connection and restore any\n * previously cached data, if necessary.\n *\n */\nexport class SnippetsMap extends Map {\n constructor(dispatch) {\n super();\n this._db = null;\n this._dispatch = dispatch;\n }\n\n set(key, value) {\n super.set(key, value);\n return this._dbTransaction(db => db.put(value, key));\n }\n\n delete(key) {\n super.delete(key);\n return this._dbTransaction(db => db.delete(key));\n }\n\n clear() {\n super.clear();\n this._dispatch(ac.OnlyToMain({type: at.SNIPPETS_BLOCKLIST_CLEARED}));\n return this._dbTransaction(db => db.clear());\n }\n\n get blockList() {\n return this.get(\"blockList\") || [];\n }\n\n /**\n * blockSnippetById - Blocks a snippet given an id\n *\n * @param {str|int} id The id of the snippet\n * @return {Promise} Resolves when the id has been written to indexedDB,\n * or immediately if the snippetMap is not connected\n */\n async blockSnippetById(id) {\n if (!id) {\n return;\n }\n const {blockList} = this;\n if (!blockList.includes(id)) {\n blockList.push(id);\n this._dispatch(ac.AlsoToMain({type: at.SNIPPETS_BLOCKLIST_UPDATED, data: id}));\n await this.set(\"blockList\", blockList);\n }\n }\n\n disableOnboarding() {}\n\n showFirefoxAccounts() {\n this._dispatch(ac.AlsoToMain({type: at.SHOW_FIREFOX_ACCOUNTS}));\n }\n\n getTotalBookmarksCount() {\n return new Promise(resolve => {\n this._dispatch(ac.OnlyToMain({type: at.TOTAL_BOOKMARKS_REQUEST}));\n global.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"ActivityStream:MainToContent\", onMessage);\n }\n });\n });\n }\n\n getAddonsInfo() {\n return new Promise(resolve => {\n this._dispatch(ac.OnlyToMain({type: at.ADDONS_INFO_REQUEST}));\n global.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.ADDONS_INFO_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"ActivityStream:MainToContent\", onMessage);\n }\n });\n });\n }\n\n /**\n * connect - Attaches an indexedDB back-end to the Map so that any set values\n * are also cached in a store. It also restores any existing values\n * that are already stored in the indexedDB store.\n *\n * @return {type} description\n */\n async connect() {\n // Open the connection\n const db = await this._openDB();\n\n // Restore any existing values\n await this._restoreFromDb(db);\n\n // Attach a reference to the db\n this._db = db;\n }\n\n /**\n * _dbTransaction - Returns a db transaction wrapped with the given modifier\n * function as a Promise. If the db has not been connected,\n * it resolves immediately.\n *\n * @param {func} modifier A function to call with the transaction\n * @return {obj} A Promise that resolves when the transaction has\n * completed or errored\n */\n _dbTransaction(modifier) {\n if (!this._db) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const transaction = modifier(\n this._db\n .transaction(SNIPPETS_OBJECTSTORE_NAME, \"readwrite\")\n .objectStore(SNIPPETS_OBJECTSTORE_NAME)\n );\n transaction.onsuccess = event => resolve();\n\n /* istanbul ignore next */\n transaction.onerror = event => reject(transaction.error);\n });\n }\n\n _openDB() {\n return new Promise((resolve, reject) => {\n const openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n\n /* istanbul ignore next */\n openRequest.onerror = event => {\n // Try to delete the old database so that we can start this process over\n // next time.\n indexedDB.deleteDatabase(DATABASE_NAME);\n reject(event);\n };\n\n openRequest.onupgradeneeded = event => {\n const db = event.target.result;\n if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {\n db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);\n }\n };\n\n openRequest.onsuccess = event => {\n let db = event.target.result;\n\n /* istanbul ignore next */\n db.onerror = err => console.error(err); // eslint-disable-line no-console\n /* istanbul ignore next */\n db.onversionchange = versionChangeEvent => versionChangeEvent.target.close();\n\n resolve(db);\n };\n });\n }\n\n _restoreFromDb(db) {\n return new Promise((resolve, reject) => {\n let cursorRequest;\n try {\n cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)\n .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();\n } catch (err) {\n // istanbul ignore next\n reject(err);\n // istanbul ignore next\n return;\n }\n\n /* istanbul ignore next */\n cursorRequest.onerror = event => reject(event);\n\n cursorRequest.onsuccess = event => {\n let cursor = event.target.result;\n // Populate the cache from the persistent storage.\n if (cursor) {\n if (cursor.value !== \"blockList\") {\n this.set(cursor.key, cursor.value);\n }\n cursor.continue();\n } else {\n // We are done.\n resolve();\n }\n };\n });\n }\n}\n\n/**\n * SnippetsProvider - Initializes a SnippetsMap and loads snippets from a\n * remote location, or else default snippets if the remote\n * snippets cannot be retrieved.\n */\nexport class SnippetsProvider {\n constructor(dispatch) {\n // Initialize the Snippets Map and attaches it to a global so that\n // the snippet payload can interact with it.\n global.gSnippetsMap = new SnippetsMap(dispatch);\n this._onAction = this._onAction.bind(this);\n }\n\n get snippetsMap() {\n return global.gSnippetsMap;\n }\n\n async _refreshSnippets() {\n // Check if the cached version of of the snippets in snippetsMap. If it's too\n // old, blow away the entire snippetsMap.\n const cachedVersion = this.snippetsMap.get(\"snippets-cached-version\");\n\n if (cachedVersion !== this.appData.version) {\n this.snippetsMap.clear();\n }\n\n // Has enough time passed for us to require an update?\n const lastUpdate = this.snippetsMap.get(\"snippets-last-update\");\n const needsUpdate = !(lastUpdate >= 0) || Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;\n\n if (needsUpdate && this.appData.snippetsURL) {\n this.snippetsMap.set(\"snippets-last-update\", Date.now());\n try {\n const response = await fetch(this.appData.snippetsURL);\n if (response.status === 200) {\n const payload = await response.text();\n\n this.snippetsMap.set(\"snippets\", payload);\n this.snippetsMap.set(\"snippets-cached-version\", this.appData.version);\n }\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n }\n\n _noSnippetFallback() {\n // TODO\n }\n\n _showRemoteSnippets() {\n const snippetsEl = document.getElementById(this.elementId);\n const payload = this.snippetsMap.get(\"snippets\");\n\n if (!snippetsEl) {\n throw new Error(`No element was found with id '${this.elementId}'.`);\n }\n\n // This could happen if fetching failed\n if (!payload) {\n throw new Error(\"No remote snippets were found in gSnippetsMap.\");\n }\n\n if (typeof payload !== \"string\") {\n throw new Error(\"Snippet payload was incorrectly formatted\");\n }\n\n // Note that injecting snippets can throw if they're invalid XML.\n // eslint-disable-next-line no-unsanitized/property\n snippetsEl.innerHTML = payload;\n\n // Scripts injected by innerHTML are inactive, so we have to relocate them\n // through DOM manipulation to activate their contents.\n for (const scriptEl of snippetsEl.getElementsByTagName(\"script\")) {\n const relocatedScript = document.createElement(\"script\");\n relocatedScript.text = scriptEl.text;\n scriptEl.parentNode.replaceChild(relocatedScript, scriptEl);\n }\n }\n\n _onAction(msg) {\n if (msg.data.type === at.SNIPPET_BLOCKED) {\n if (!this.snippetsMap.blockList.includes(msg.data.data)) {\n this.snippetsMap.set(\"blockList\", this.snippetsMap.blockList.concat(msg.data.data));\n document.getElementById(\"snippets-container\").style.display = \"none\";\n }\n }\n }\n\n /**\n * init - Fetch the snippet payload and show snippets\n *\n * @param {obj} options\n * @param {str} options.appData.snippetsURL The URL from which we fetch snippets\n * @param {int} options.appData.version The current snippets version\n * @param {str} options.elementId The id of the element in which to inject snippets\n * @param {bool} options.connect Should gSnippetsMap connect to indexedDB?\n */\n async init(options) {\n Object.assign(this, {\n appData: {},\n elementId: \"snippets\",\n connect: true,\n }, options);\n\n // Add listener so we know when snippets are blocked on other pages\n if (global.RPMAddMessageListener) {\n global.RPMAddMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n }\n\n // TODO: Requires enabling indexedDB on newtab\n // Restore the snippets map from indexedDB\n if (this.connect) {\n try {\n await this.snippetsMap.connect();\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n\n // Cache app data values so they can be accessible from gSnippetsMap\n for (const key of Object.keys(this.appData)) {\n if (key === \"blockList\") {\n this.snippetsMap.set(\"blockList\", this.appData[key]);\n } else {\n this.snippetsMap.set(`appData.${key}`, this.appData[key]);\n }\n }\n\n // Refresh snippets, if enough time has passed.\n await this._refreshSnippets();\n\n // Try showing remote snippets, falling back to defaults if necessary.\n try {\n this._showRemoteSnippets();\n } catch (e) {\n this._noSnippetFallback(e);\n }\n\n window.dispatchEvent(new Event(SNIPPETS_ENABLED_EVENT));\n\n this.initialized = true;\n }\n\n uninit() {\n window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n if (global.RPMRemoveMessageListener) {\n global.RPMRemoveMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n }\n this.initialized = false;\n }\n}\n\n/**\n * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes\n * when the store has received the appropriate\n * Snippet data.\n *\n * @param {obj} store The redux store\n * @return {obj} Returns the snippets instance, asrouterContent instance and unsubscribe function\n */\nexport function addSnippetsSubscriber(store) {\n const snippets = new SnippetsProvider(store.dispatch);\n\n let initializing = false;\n\n store.subscribe(async () => {\n const state = store.getState();\n\n /**\n * Sorry this code is so complicated. It will be removed soon.\n * This is what the different values actually mean:\n *\n * ASRouter.initialized Is ASRouter.jsm initialised?\n * ASRouter.allowLegacySnippets Are ASRouter snippets turned OFF (i.e. legacy snippets are allowed)\n * state.Prefs.values[\"feeds.snippets\"] User preference for snippets\n * state.Snippets.initialized Is SnippetsFeed.jsm initialised?\n * snippets.initialized Is in-content snippets currently initialised?\n * state.Prefs.values.disableSnippets This pref is used to disable legacy snippets in an emergency\n * in a way that is not user-editable (true = disabled)\n */\n\n /** If we should initialize snippets... */\n if (\n state.Prefs.values[\"feeds.snippets\"] &&\n state.ASRouter.initialized &&\n state.ASRouter.allowLegacySnippets &&\n !state.Prefs.values.disableSnippets &&\n state.Snippets.initialized &&\n !snippets.initialized &&\n // Don't call init multiple times\n !initializing &&\n location.href !== \"about:welcome\" &&\n location.hash !== \"#asrouter\"\n ) {\n initializing = true;\n await snippets.init({appData: state.Snippets});\n // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets initialized\"); // eslint-disable-line no-console\n }\n initializing = false;\n\n /** If we should remove snippets... */\n } else if (\n (\n state.Prefs.values[\"feeds.snippets\"] === false ||\n state.Prefs.values.disableSnippets === true ||\n (state.ASRouter.initialized && !state.ASRouter.allowLegacySnippets)\n ) &&\n snippets.initialized\n ) {\n // Remove snippets\n snippets.uninit();\n // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets removed\"); // eslint-disable-line no-console\n }\n }\n });\n\n // Returned for testing purposes\n return {snippets};\n}\n","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {generateMessages} from \"./rich-text-strings\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {LocalizationProvider} from \"fluent-react\";\nimport {OnboardingMessage} from \"./templates/OnboardingMessage/OnboardingMessage\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {SnippetsTemplates} from \"./templates/template-manifest\";\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\nconst ASR_CONTAINER_ID = \"asr-newtab-container\";\n\nexport const ASRouterUtils = {\n addListener(listener) {\n global.RPMAddMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n removeListener(listener) {\n global.RPMRemoveMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n sendMessage(action) {\n global.RPMSendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n },\n blockById(id, options) {\n ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id, ...options}});\n },\n dismissById(id) {\n ASRouterUtils.sendMessage({type: \"DISMISS_MESSAGE_BY_ID\", data: {id}});\n },\n blockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n },\n executeAction(button_action) {\n ASRouterUtils.sendMessage({\n type: \"USER_ACTION\",\n data: button_action,\n });\n },\n unblockById(id) {\n ASRouterUtils.sendMessage({type: \"UNBLOCK_MESSAGE_BY_ID\", data: {id}});\n },\n unblockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"UNBLOCK_BUNDLE\", data: {bundle}});\n },\n overrideMessage(id) {\n ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n },\n sendTelemetry(ping) {\n const payload = ac.ASRouterUserEvent(ping);\n global.RPMSendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n },\n getPreviewEndpoint() {\n if (window.location.href.includes(\"endpoint\")) {\n const params = new URLSearchParams(window.location.href.slice(window.location.href.indexOf(\"endpoint\")));\n try {\n const endpoint = new URL(params.get(\"endpoint\"));\n return {\n url: endpoint.href,\n snippetId: params.get(\"snippetId\"),\n };\n } catch (e) {}\n }\n\n return null;\n },\n};\n\n// Note: nextProps/prevProps refer to props passed to , not \nfunction shouldSendImpressionOnUpdate(nextProps, prevProps) {\n return (nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id));\n}\n\nexport class ASRouterUISurface extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onMessageFromParent = this.onMessageFromParent.bind(this);\n this.sendClick = this.sendClick.bind(this);\n this.sendImpression = this.sendImpression.bind(this);\n this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);\n this.state = {message: {}, bundle: {}};\n }\n\n sendUserActionTelemetry(extraProps = {}) {\n const {message, bundle} = this.state;\n if (!message && !extraProps.message_id) {\n throw new Error(`You must provide a message_id for bundled messages`);\n }\n const eventType = `${message.provider || bundle.provider}_user_event`;\n ASRouterUtils.sendTelemetry({\n message_id: message.id || extraProps.message_id,\n source: extraProps.id,\n action: eventType,\n ...extraProps,\n });\n }\n\n sendImpression(extraProps) {\n if (this.state.message.provider === \"preview\") {\n return;\n }\n\n ASRouterUtils.sendMessage({type: \"IMPRESSION\", data: this.state.message});\n this.sendUserActionTelemetry({event: \"IMPRESSION\", ...extraProps});\n }\n\n // If link has a `metric` data attribute send it as part of the `value`\n // telemetry field which can have arbitrary values.\n // Used for router messages with links as part of the content.\n sendClick(event) {\n const metric = {\n value: event.target.dataset.metric,\n // Used for the `source` of the event. Needed to differentiate\n // from other snippet or onboarding events that may occur.\n id: \"NEWTAB_FOOTER_BAR_CONTENT\",\n };\n const action = {\n type: event.target.dataset.action,\n data: {args: event.target.dataset.args},\n };\n if (action.type) {\n ASRouterUtils.executeAction(action);\n }\n if (!this.state.message.content.do_not_autoblock && !event.target.dataset.do_not_autoblock) {\n ASRouterUtils.blockById(this.state.message.id);\n }\n if (this.state.message.provider !== \"preview\") {\n this.sendUserActionTelemetry({event: \"CLICK_BUTTON\", ...metric});\n }\n }\n\n onBlockById(id) {\n return options => ASRouterUtils.blockById(id, options);\n }\n\n onDismissById(id) {\n return () => ASRouterUtils.dismissById(id);\n }\n\n clearBundle(bundle) {\n return () => ASRouterUtils.blockBundle(bundle);\n }\n\n onMessageFromParent({data: action}) {\n switch (action.type) {\n case \"SET_MESSAGE\":\n this.setState({message: action.data});\n break;\n case \"SET_BUNDLED_MESSAGES\":\n this.setState({bundle: action.data});\n break;\n case \"CLEAR_MESSAGE\":\n if (action.data.id === this.state.message.id) {\n this.setState({message: {}});\n }\n break;\n case \"CLEAR_PROVIDER\":\n if (action.data.id === this.state.message.provider) {\n this.setState({message: {}});\n }\n break;\n case \"CLEAR_BUNDLE\":\n if (this.state.bundle.bundle) {\n this.setState({bundle: {}});\n }\n break;\n case \"CLEAR_ALL\":\n this.setState({message: {}, bundle: {}});\n }\n }\n\n componentWillMount() {\n const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.addListener(this.onMessageFromParent);\n\n // If we are loading about:welcome we want to trigger the onboarding messages\n if (this.props.document.location.href === \"about:welcome\") {\n ASRouterUtils.sendMessage({type: \"TRIGGER\", data: {trigger: {id: \"firstRun\"}}});\n } else {\n ASRouterUtils.sendMessage({type: \"SNIPPETS_REQUEST\", data: {endpoint}});\n }\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessageFromParent);\n }\n\n renderSnippets() {\n const SnippetComponent = SnippetsTemplates[this.state.message.template];\n const {content} = this.state.message;\n\n return (\n );\n }\n\n renderOnboarding() {\n return (\n );\n }\n\n renderPreviewBanner() {\n if (this.state.message.provider !== \"preview\") {\n return null;\n }\n\n return (\n \n \n Preview Purposes Only \n
\n );\n }\n\n render() {\n const {message, bundle} = this.state;\n if (!message.id && !bundle.template) { return null; }\n return (\n \n {this.renderPreviewBanner()}\n {bundle.template === \"onboarding\" ? this.renderOnboarding() : this.renderSnippets()}\n \n );\n }\n}\n\nASRouterUISurface.defaultProps = {document: global.document};\n\nexport class ASRouterContent {\n constructor() {\n this.initialized = false;\n this.containerElement = null;\n }\n\n _mount() {\n this.containerElement = global.document.getElementById(ASR_CONTAINER_ID);\n if (!this.containerElement) {\n this.containerElement = global.document.createElement(\"div\");\n this.containerElement.id = ASR_CONTAINER_ID;\n this.containerElement.style.zIndex = 1;\n global.document.body.appendChild(this.containerElement);\n }\n\n ReactDOM.render( , this.containerElement);\n }\n\n _unmount() {\n ReactDOM.unmountComponentAtNode(this.containerElement);\n }\n\n init() {\n this._mount();\n this.initialized = true;\n }\n\n uninit() {\n if (this.initialized) {\n this._unmount();\n this.initialized = false;\n }\n }\n}\n","/* eslint-env mozilla/frame-script */\n\nimport {actionCreators as ac, actionTypes as at, actionUtils as au} from \"common/Actions.jsm\";\nimport {applyMiddleware, combineReducers, createStore} from \"redux\";\n\nexport const MERGE_STORE_ACTION = \"NEW_TAB_INITIAL_STATE\";\nexport const OUTGOING_MESSAGE_NAME = \"ActivityStream:ContentToMain\";\nexport const INCOMING_MESSAGE_NAME = \"ActivityStream:MainToContent\";\nexport const EARLY_QUEUED_ACTIONS = [at.SAVE_SESSION_PERF_DATA, at.PAGE_PRERENDERED];\n\n/**\n * A higher-order function which returns a reducer that, on MERGE_STORE action,\n * will return the action.data object merged into the previous state.\n *\n * For all other actions, it merely calls mainReducer.\n *\n * Because we want this to merge the entire state object, it's written as a\n * higher order function which takes the main reducer (itself often a call to\n * combineReducers) as a parameter.\n *\n * @param {function} mainReducer reducer to call if action != MERGE_STORE_ACTION\n * @return {function} a reducer that, on MERGE_STORE_ACTION action,\n * will return the action.data object merged\n * into the previous state, and the result\n * of calling mainReducer otherwise.\n */\nfunction mergeStateReducer(mainReducer) {\n return (prevState, action) => {\n if (action.type === MERGE_STORE_ACTION) {\n return {...prevState, ...action.data};\n }\n\n return mainReducer(prevState, action);\n };\n}\n\n/**\n * messageMiddleware - Middleware that looks for SentToMain type actions, and sends them if necessary\n */\nconst messageMiddleware = store => next => action => {\n const skipLocal = action.meta && action.meta.skipLocal;\n if (au.isSendToMain(action)) {\n RPMSendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n }\n if (!skipLocal) {\n next(action);\n }\n};\n\nexport const rehydrationMiddleware = store => next => action => {\n if (store._didRehydrate) {\n return next(action);\n }\n\n const isMergeStoreAction = action.type === MERGE_STORE_ACTION;\n const isRehydrationRequest = action.type === at.NEW_TAB_STATE_REQUEST;\n\n if (isRehydrationRequest) {\n store._didRequestInitialState = true;\n return next(action);\n }\n\n if (isMergeStoreAction) {\n store._didRehydrate = true;\n return next(action);\n }\n\n // If init happened after our request was made, we need to re-request\n if (store._didRequestInitialState && action.type === at.INIT) {\n return next(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n }\n\n if (au.isBroadcastToContent(action) || au.isSendToOneContent(action) || au.isSendToPreloaded(action)) {\n // Note that actions received before didRehydrate will not be dispatched\n // because this could negatively affect preloading and the the state\n // will be replaced by rehydration anyway.\n return null;\n }\n\n return next(action);\n};\n\n/**\n * This middleware queues up all the EARLY_QUEUED_ACTIONS until it receives\n * the first action from main. This is useful for those actions for main which\n * require higher reliability, i.e. the action will not be lost in the case\n * that it gets sent before the main is ready to receive it. Conversely, any\n * actions allowed early are accepted to be ignorable or re-sendable.\n */\nexport const queueEarlyMessageMiddleware = store => next => action => {\n if (store._receivedFromMain) {\n next(action);\n } else if (au.isFromMain(action)) {\n next(action);\n store._receivedFromMain = true;\n // Sending out all the early actions as main is ready now\n if (store._earlyActionQueue) {\n store._earlyActionQueue.forEach(next);\n store._earlyActionQueue = [];\n }\n } else if (EARLY_QUEUED_ACTIONS.includes(action.type)) {\n store._earlyActionQueue = store._earlyActionQueue || [];\n store._earlyActionQueue.push(action);\n } else {\n // Let any other type of action go through\n next(action);\n }\n};\n\n/**\n * initStore - Create a store and listen for incoming actions\n *\n * @param {object} reducers An object containing Redux reducers\n * @param {object} intialState (optional) The initial state of the store, if desired\n * @return {object} A redux store\n */\nexport function initStore(reducers, initialState) {\n const store = createStore(\n mergeStateReducer(combineReducers(reducers)),\n initialState,\n global.RPMAddMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n );\n\n store._didRehydrate = false;\n store._didRequestInitialState = false;\n\n if (global.RPMAddMessageListener) {\n global.RPMAddMessageListener(INCOMING_MESSAGE_NAME, msg => {\n try {\n store.dispatch(msg.data);\n } catch (ex) {\n console.error(\"Content msg:\", msg, \"Dispatch error: \", ex); // eslint-disable-line no-console\n dump(`Content msg: ${JSON.stringify(msg)}\\nDispatch error: ${ex}\\n${ex.stack}`);\n }\n });\n }\n\n return store;\n}\n","module.exports = Redux;","import {MessageContext} from \"fluent\";\n\n/**\n * Properties that allow rich text MUST be added to this list.\n * key: the localization_id that should be used\n * value: a property or array of properties on the message.content object\n */\nconst RICH_TEXT_CONFIG = {\n \"text\": [\"text\", \"scene1_text\"],\n \"privacy_html\": \"scene2_privacy_html\",\n \"disclaimer_html\": \"scene2_disclaimer_html\",\n};\n\nexport const RICH_TEXT_KEYS = Object.keys(RICH_TEXT_CONFIG);\n\n/**\n * Generates an array of messages suitable for fluent's localization provider\n * including all needed strings for rich text.\n * @param {object} content A .content object from an ASR message (i.e. message.content)\n * @returns {MessageContext[]} A array containing the fluent message context\n */\nexport function generateMessages(content) {\n const cx = new MessageContext(\"en-US\");\n\n RICH_TEXT_KEYS.forEach(key => {\n const attrs = RICH_TEXT_CONFIG[key];\n const attrsToTry = Array.isArray(attrs) ? [...attrs] : [attrs];\n let string = \"\";\n while (!string && attrsToTry.length) {\n const attr = attrsToTry.pop();\n string = content[attr];\n }\n cx.addMessages(`${key} = ${string}`);\n });\n return [cx];\n}\n","import React from \"react\";\n\nexport const VISIBLE = \"visible\";\nexport const VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\n/**\n * Component wrapper used to send telemetry pings on every impression.\n */\nexport class ImpressionsWrapper extends React.PureComponent {\n // This sends an event when a user sees a set of new content. If content\n // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n // only send the event if the page becomes visible again.\n sendImpressionOrAddListener() {\n if (this.props.document.visibilityState === VISIBLE) {\n this.props.sendImpression({id: this.props.id});\n } else {\n // We should only ever send the latest impression stats ping, so remove any\n // older listeners.\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n\n // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n this._onVisibilityChange = () => {\n if (this.props.document.visibilityState === VISIBLE) {\n this.props.sendImpression({id: this.props.id});\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n };\n this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentWillUnmount() {\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentDidMount() {\n if (this.props.sendOnMount) {\n this.sendImpressionOrAddListener();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {\n this.sendImpressionOrAddListener();\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nImpressionsWrapper.defaultProps = {\n document: global.document,\n sendOnMount: true,\n};\n","module.exports = React;","module.exports = PropTypes;","module.exports = ReactDOM;","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addLocaleData, injectIntl, IntlProvider} from \"react-intl\";\nimport {ASRouterAdmin} from \"content-src/components/ASRouterAdmin/ASRouterAdmin\";\nimport {ConfirmDialog} from \"content-src/components/ConfirmDialog/ConfirmDialog\";\nimport {connect} from \"react-redux\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport {ManualMigration} from \"content-src/components/ManualMigration/ManualMigration\";\nimport {PrerenderData} from \"common/PrerenderData.jsm\";\nimport React from \"react\";\nimport {Search} from \"content-src/components/Search/Search\";\nimport {Sections} from \"content-src/components/Sections/Sections\";\nimport {StartupOverlay} from \"content-src/components/StartupOverlay/StartupOverlay\";\n\nconst PrefsButton = injectIntl(props => (\n \n \n
\n));\n\n// Add the locale data for pluralization and relative-time formatting for now,\n// this just uses english locale data. We can make this more sophisticated if\n// more features are needed.\nfunction addLocaleDataForReactIntl(locale) {\n addLocaleData([{locale, parentLocale: \"en\"}]);\n}\n\n// Returns a function will not be continuously triggered when called. The\n// function will be triggered if called again after `wait` milliseconds.\nfunction debounce(func, wait) {\n let timer;\n return (...args) => {\n if (timer) { return; }\n\n let wakeUp = () => { timer = null; };\n\n timer = setTimeout(wakeUp, wait);\n func.apply(this, args);\n };\n}\n\nexport class _Base extends React.PureComponent {\n componentWillMount() {\n const {locale} = this.props;\n addLocaleDataForReactIntl(locale);\n if (this.props.isFirstrun) {\n global.document.body.classList.add(\"welcome\", \"hide-main\");\n }\n }\n\n componentDidMount() {\n // Request state AFTER the first render to ensure we don't cause the\n // prerendered DOM to be unmounted. Otherwise, NEW_TAB_STATE_REQUEST is\n // dispatched right after the store is ready.\n if (this.props.isPrerendered) {\n this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n this.props.dispatch(ac.AlsoToMain({type: at.PAGE_PRERENDERED}));\n }\n }\n\n componentWillUnmount() {\n this.updateTheme();\n }\n\n componentWillUpdate() {\n this.updateTheme();\n }\n\n updateTheme() {\n const bodyClassName = [\n \"activity-stream\",\n // If we skipped the about:welcome overlay and removed the CSS classes\n // we don't want to add them back to the Activity Stream view\n document.body.classList.contains(\"welcome\") ? \"welcome\" : \"\",\n document.body.classList.contains(\"hide-main\") ? \"hide-main\" : \"\",\n ].filter(v => v).join(\" \");\n global.document.body.className = bodyClassName;\n }\n\n render() {\n const {props} = this;\n const {App, locale, strings} = props;\n const {initialized} = App;\n\n const prefs = props.Prefs.values;\n if (prefs[\"asrouter.devtoolsEnabled\"]) {\n if (window.location.hash === \"#asrouter\") {\n return ( );\n }\n console.log(\"ASRouter devtools enabled. To access visit %cabout:newtab#asrouter\", \"font-weight: bold\"); // eslint-disable-line no-console\n }\n\n if (!props.isPrerendered && !initialized) {\n return null;\n }\n\n return (\n \n \n \n );\n }\n}\n\nexport class BaseContent extends React.PureComponent {\n constructor(props) {\n super(props);\n this.openPreferences = this.openPreferences.bind(this);\n this.onWindowScroll = debounce(this.onWindowScroll.bind(this), 5);\n this.state = {fixedSearch: false};\n }\n\n componentDidMount() {\n global.addEventListener(\"scroll\", this.onWindowScroll);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"scroll\", this.onWindowScroll);\n }\n\n onWindowScroll() {\n const SCROLL_THRESHOLD = 34;\n if (global.scrollY > SCROLL_THRESHOLD && !this.state.fixedSearch) {\n this.setState({fixedSearch: true});\n } else if (global.scrollY <= SCROLL_THRESHOLD && this.state.fixedSearch) {\n this.setState({fixedSearch: false});\n }\n }\n\n openPreferences() {\n this.props.dispatch(ac.OnlyToMain({type: at.SETTINGS_OPEN}));\n this.props.dispatch(ac.UserEvent({event: \"OPEN_NEWTAB_PREFS\"}));\n }\n\n render() {\n const {props} = this;\n const {App} = props;\n const {initialized} = App;\n const prefs = props.Prefs.values;\n\n const shouldBeFixedToTop = PrerenderData.arePrefsValid(name => prefs[name]);\n const noSectionsEnabled = !prefs[\"feeds.topsites\"] && props.Sections.filter(section => section.enabled).length === 0;\n\n const outerClassName = [\n \"outer-wrapper\",\n shouldBeFixedToTop && \"fixed-to-top\",\n prefs.showSearch && this.state.fixedSearch && !noSectionsEnabled && \"fixed-search\",\n prefs.showSearch && noSectionsEnabled && \"only-search\",\n ].filter(v => v).join(\" \");\n\n return (\n \n
\n
\n {prefs.showSearch &&\n \n \n \n \n
\n }\n \n {!prefs.migrationExpired &&\n
\n \n
\n }\n
\n
\n
\n \n \n
\n {this.props.isFirstrun &&
}\n
);\n }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Sections: state.Sections}))(_Base);\n","module.exports = ReactIntl;","import {ASRouterUtils} from \"../../asrouter/asrouter-content\";\nimport React from \"react\";\n\nexport class ASRouterAdmin extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onMessage = this.onMessage.bind(this);\n this.handleEnabledToggle = this.handleEnabledToggle.bind(this);\n this.onChangeMessageFilter = this.onChangeMessageFilter.bind(this);\n this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);\n this.state = {messageFilter: \"all\"};\n }\n\n onMessage({data: action}) {\n if (action.type === \"ADMIN_SET_STATE\") {\n this.setState(action.data);\n }\n }\n\n componentWillMount() {\n const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\", data: {endpoint}});\n ASRouterUtils.addListener(this.onMessage);\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessage);\n }\n\n findOtherBundledMessagesOfSameTemplate(template) {\n return this.state.messages.filter(msg => msg.template === template && msg.bundled);\n }\n\n handleBlock(msg) {\n if (msg.bundled) {\n // If we are blocking a message that belongs to a bundle, block all other messages that are bundled of that same template\n let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n return () => ASRouterUtils.blockBundle(bundle);\n }\n return () => ASRouterUtils.blockById(msg.id);\n }\n\n handleUnblock(msg) {\n if (msg.bundled) {\n // If we are unblocking a message that belongs to a bundle, unblock all other messages that are bundled of that same template\n let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n return () => ASRouterUtils.unblockBundle(bundle);\n }\n return () => ASRouterUtils.unblockById(msg.id);\n }\n\n handleOverride(id) {\n return () => ASRouterUtils.overrideMessage(id);\n }\n\n expireCache() {\n ASRouterUtils.sendMessage({type: \"EXPIRE_QUERY_CACHE\"});\n }\n\n resetPref() {\n ASRouterUtils.sendMessage({type: \"RESET_PROVIDER_PREF\"});\n }\n\n renderMessageItem(msg) {\n const isCurrent = msg.id === this.state.lastMessageId;\n const isBlocked = this.state.messageBlockList.includes(msg.id);\n const impressions = this.state.messageImpressions[msg.id] ? this.state.messageImpressions[msg.id].length : 0;\n\n let itemClassName = \"message-item\";\n if (isCurrent) { itemClassName += \" current\"; }\n if (isBlocked) { itemClassName += \" blocked\"; }\n\n return (\n {msg.id} \n \n {isBlocked ? \"Unblock\" : \"Block\"} \n {isBlocked ? null : Show }\n ({impressions} impressions)\n \n \n {JSON.stringify(msg, null, 2)} \n \n );\n }\n\n renderMessages() {\n if (!this.state.messages) {\n return null;\n }\n const messagesToShow = this.state.messageFilter === \"all\" ? this.state.messages : this.state.messages.filter(message => message.provider === this.state.messageFilter);\n return (\n {messagesToShow.map(msg => this.renderMessageItem(msg))}\n
);\n }\n\n onChangeMessageFilter(event) {\n this.setState({messageFilter: event.target.value});\n }\n\n renderMessageFilter() {\n if (!this.state.providers) {\n return null;\n }\n return (Show messages from \n all providers \n {this.state.providers.map(provider => ({provider.id} ))}\n
);\n }\n\n renderTableHead() {\n return (\n \n id \n enabled \n source \n last updated \n \n );\n }\n\n handleEnabledToggle(event) {\n const action = {type: event.target.checked ? \"ENABLE_PROVIDER\" : \"DISABLE_PROVIDER\", data: event.target.name};\n ASRouterUtils.sendMessage(action);\n this.setState({messageFilter: \"all\"});\n }\n\n renderProviders() {\n const providersConfig = this.state.providerPrefs;\n const providerInfo = this.state.providers;\n return ();\n }\n\n render() {\n return (\n
AS Router Admin \n Targeting Utilities \n Expire Cache (This expires the cache in ASR Targeting for bookmarks and top sites)\n Message Providers \n Restore defaults \n {this.state.providers ? this.renderProviders() : null}\n Messages \n {this.renderMessageFilter()}\n {this.renderMessages()}\n );\n }\n}\n","import {actionCreators as ac, actionTypes} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * ConfirmDialog component.\n * One primary action button, one cancel button.\n *\n * Content displayed is controlled by `data` prop the component receives.\n * Example:\n * data: {\n * // Any sort of data needed to be passed around by actions.\n * payload: site.url,\n * // Primary button AlsoToMain action.\n * action: \"DELETE_HISTORY_URL\",\n * // Primary button USerEvent action.\n * userEvent: \"DELETE\",\n * // Array of locale ids to display.\n * message_body: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n * // Text for primary button.\n * confirm_button_string_id: \"menu_action_delete\"\n * },\n */\nexport class _ConfirmDialog extends React.PureComponent {\n constructor(props) {\n super(props);\n this._handleCancelBtn = this._handleCancelBtn.bind(this);\n this._handleConfirmBtn = this._handleConfirmBtn.bind(this);\n }\n\n _handleCancelBtn() {\n this.props.dispatch({type: actionTypes.DIALOG_CANCEL});\n this.props.dispatch(ac.UserEvent({event: actionTypes.DIALOG_CANCEL, source: this.props.data.eventSource}));\n }\n\n _handleConfirmBtn() {\n this.props.data.onConfirm.forEach(this.props.dispatch);\n }\n\n _renderModalMessage() {\n const message_body = this.props.data.body_string_id;\n\n if (!message_body) {\n return null;\n }\n\n return (\n {message_body.map(msg =>
)}\n );\n }\n\n render() {\n if (!this.props.visible) {\n return null;\n }\n\n return (\n
\n
\n \n {this.props.data.icon && }\n {this._renderModalMessage()}\n \n \n
\n
);\n }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n","module.exports = ReactRedux;","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class ErrorBoundaryFallback extends React.PureComponent {\n constructor(props) {\n super(props);\n this.windowObj = this.props.windowObj || window;\n this.onClick = this.onClick.bind(this);\n }\n\n /**\n * Since we only get here if part of the page has crashed, do a\n * forced reload to give us the best chance at recovering.\n */\n onClick() {\n this.windowObj.location.reload(true);\n }\n\n render() {\n const defaultClass = \"as-error-fallback\";\n let className;\n if (\"className\" in this.props) {\n className = `${this.props.className} ${defaultClass}`;\n } else {\n className = defaultClass;\n }\n\n // href=\"#\" to force normal link styling stuff (eg cursor on hover)\n return (\n \n
\n \n
\n
\n \n \n \n \n
\n );\n }\n}\nErrorBoundaryFallback.defaultProps = {className: \"as-error-fallback\"};\n\nexport class ErrorBoundary extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {hasError: false};\n }\n\n componentDidCatch(error, info) {\n this.setState({hasError: true});\n }\n\n render() {\n if (!this.state.hasError) {\n return (this.props.children);\n }\n\n return ;\n }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * Manual migration component used to start the profile import wizard.\n * Message is presented temporarily and will go away if:\n * 1. User clicks \"No Thanks\"\n * 2. User completed the data import\n * 3. After 3 active days\n * 4. User clicks \"Cancel\" on the import wizard (currently not implemented).\n */\nexport class _ManualMigration extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onLaunchTour = this.onLaunchTour.bind(this);\n this.onCancelTour = this.onCancelTour.bind(this);\n }\n\n onLaunchTour() {\n this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_START}));\n this.props.dispatch(ac.UserEvent({event: at.MIGRATION_START}));\n }\n\n onCancelTour() {\n this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_CANCEL}));\n this.props.dispatch(ac.UserEvent({event: at.MIGRATION_CANCEL}));\n }\n\n render() {\n return (\n
\n \n \n
\n
\n \n \n \n \n \n \n
\n
);\n }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n","class _PrerenderData {\n constructor(options) {\n this.initialPrefs = options.initialPrefs;\n this.initialSections = options.initialSections;\n this._setValidation(options.validation);\n }\n\n get validation() {\n return this._validation;\n }\n\n set validation(value) {\n this._setValidation(value);\n }\n\n get invalidatingPrefs() {\n return this._invalidatingPrefs;\n }\n\n // This is needed so we can use it in the constructor\n _setValidation(value = []) {\n this._validation = value;\n this._invalidatingPrefs = value.reduce((result, next) => {\n if (typeof next === \"string\") {\n result.push(next);\n return result;\n } else if (next && next.oneOf) {\n return result.concat(next.oneOf);\n } else if (next && next.indexedDB) {\n return result.concat(next.indexedDB);\n }\n throw new Error(\"Your validation configuration is not properly configured\");\n }, []);\n }\n\n arePrefsValid(getPref, indexedDBPrefs) {\n for (const prefs of this.validation) {\n // {oneOf: [\"foo\", \"bar\"]}\n if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {\n return false;\n\n // {indexedDB: [\"foo\", \"bar\"]}\n } else if (indexedDBPrefs && prefs && prefs.indexedDB) {\n const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));\n if (anyModifiedPrefs) {\n return false;\n }\n // \"foo\"\n } else if (getPref(prefs) !== this.initialPrefs[prefs]) {\n return false;\n }\n }\n return true;\n }\n}\n\nthis.PrerenderData = new _PrerenderData({\n initialPrefs: {\n \"migrationExpired\": true,\n \"feeds.topsites\": true,\n \"showSearch\": true,\n \"topSitesRows\": 1,\n \"feeds.section.topstories\": true,\n \"feeds.section.highlights\": true,\n \"sectionOrder\": \"topsites,topstories,highlights\",\n \"collapsed\": false,\n },\n // Prefs listed as invalidating will prevent the prerendered version\n // of AS from being used if their value is something other than what is listed\n // here. This is required because some preferences cause the page layout to be\n // too different for the prerendered version to be used. Unfortunately, this\n // will result in users who have modified some of their preferences not being\n // able to get the benefits of prerendering.\n validation: [\n \"feeds.topsites\",\n \"showSearch\",\n \"topSitesRows\",\n \"sectionOrder\",\n // This means if either of these are set to their default values,\n // prerendering can be used.\n {oneOf: [\"feeds.section.topstories\", \"feeds.section.highlights\"]},\n // If any component has the following preference set to `true` it will\n // invalidate the prerendered version.\n {indexedDB: [\"collapsed\"]},\n ],\n initialSections: [\n {\n enabled: true,\n icon: \"pocket\",\n id: \"topstories\",\n order: 1,\n title: {id: \"header_recommended_by\", values: {provider: \"Pocket\"}},\n },\n {\n enabled: true,\n id: \"highlights\",\n icon: \"highlights\",\n order: 2,\n title: {id: \"header_highlights\"},\n },\n ],\n});\n\nthis._PrerenderData = _PrerenderData;\nconst EXPORTED_SYMBOLS = [\"PrerenderData\", \"_PrerenderData\"];\n","/* globals ContentSearchUIController */\n\"use strict\";\n\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {IS_NEWTAB} from \"content-src/lib/constants\";\nimport React from \"react\";\n\nexport class _Search extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.onInputMount = this.onInputMount.bind(this);\n }\n\n handleEvent(event) {\n // Also track search events with our own telemetry\n if (event.detail.type === \"Search\") {\n this.props.dispatch(ac.UserEvent({event: \"SEARCH\"}));\n }\n }\n\n onClick(event) {\n window.gContentSearchController.search(event);\n }\n\n componentWillUnmount() {\n delete window.gContentSearchController;\n }\n\n onInputMount(input) {\n if (input) {\n // The \"healthReportKey\" and needs to be \"newtab\" or \"abouthome\" so that\n // BrowserUsageTelemetry.jsm knows to handle events with this name, and\n // can add the appropriate telemetry probes for search. Without the correct\n // name, certain tests like browser_UsageTelemetry_content.js will fail\n // (See github ticket #2348 for more details)\n const healthReportKey = IS_NEWTAB ? \"newtab\" : \"abouthome\";\n\n // The \"searchSource\" needs to be \"newtab\" or \"homepage\" and is sent with\n // the search data and acts as context for the search request (See\n // nsISearchEngine.getSubmission). It is necessary so that search engine\n // plugins can correctly atribute referrals. (See github ticket #3321 for\n // more details)\n const searchSource = IS_NEWTAB ? \"newtab\" : \"homepage\";\n\n // gContentSearchController needs to exist as a global so that tests for\n // the existing about:home can find it; and so it allows these tests to pass.\n // In the future, when activity stream is default about:home, this can be renamed\n window.gContentSearchController = new ContentSearchUIController(input, input.parentNode,\n healthReportKey, searchSource);\n addEventListener(\"ContentSearchClient\", this);\n } else {\n window.gContentSearchController = null;\n removeEventListener(\"ContentSearchClient\", this);\n }\n }\n\n /*\n * Do not change the ID on the input field, as legacy newtab code\n * specifically looks for the id 'newtab-search-text' on input fields\n * in order to execute searches in various tests\n */\n render() {\n return (\n {this.props.showLogo &&\n
\n }\n
\n \n \n \n \n \n \n \n
\n
);\n }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {MoreRecommendations} from \"content-src/components/MoreRecommendations/MoreRecommendations\";\nimport {PocketLoggedInCta} from \"content-src/components/PocketLoggedInCta/PocketLoggedInCta\";\nimport React from \"react\";\nimport {Topics} from \"content-src/components/Topics/Topics\";\nimport {TopSites} from \"content-src/components/TopSites/TopSites\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\nconst CARDS_PER_ROW_DEFAULT = 3;\nconst CARDS_PER_ROW_COMPACT_WIDE = 4;\n\nfunction getFormattedMessage(message) {\n return typeof message === \"string\" ? {message} : ;\n}\n\nexport class Section extends React.PureComponent {\n get numRows() {\n const {rowsPref, maxRows, Prefs} = this.props;\n return rowsPref ? Prefs.values[rowsPref] : maxRows;\n }\n\n _dispatchImpressionStats() {\n const {props} = this;\n let cardsPerRow = CARDS_PER_ROW_DEFAULT;\n if (props.compactCards && global.matchMedia(`(min-width: 1072px)`).matches) {\n // If the section has compact cards and the viewport is wide enough, we show\n // 4 columns instead of 3.\n // $break-point-widest = 1072px (from _variables.scss)\n cardsPerRow = CARDS_PER_ROW_COMPACT_WIDE;\n }\n const maxCards = cardsPerRow * this.numRows;\n const cards = props.rows.slice(0, maxCards);\n\n if (this.needsImpressionStats(cards)) {\n props.dispatch(ac.ImpressionStats({\n source: props.eventSource,\n tiles: cards.map(link => ({id: link.guid})),\n }));\n this.impressionCardGuids = cards.map(link => link.guid);\n }\n }\n\n // This sends an event when a user sees a set of new content. If content\n // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n // only send the event if the page becomes visible again.\n sendImpressionStatsOrAddListener() {\n const {props} = this;\n\n if (!props.shouldSendImpressionStats || !props.dispatch) {\n return;\n }\n\n if (props.document.visibilityState === VISIBLE) {\n this._dispatchImpressionStats();\n } else {\n // We should only ever send the latest impression stats ping, so remove any\n // older listeners.\n if (this._onVisibilityChange) {\n props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n\n // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n this._onVisibilityChange = () => {\n if (props.document.visibilityState === VISIBLE) {\n if (!this.props.pref.collapsed) {\n this._dispatchImpressionStats();\n }\n props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n };\n props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentWillMount() {\n this.sendNewTabRehydrated(this.props.initialized);\n }\n\n componentDidMount() {\n if (this.props.rows.length && !this.props.pref.collapsed) {\n this.sendImpressionStatsOrAddListener();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {props} = this;\n const isCollapsed = props.pref.collapsed;\n const wasCollapsed = prevProps.pref.collapsed;\n if (\n // Don't send impression stats for the empty state\n props.rows.length &&\n (\n // We only want to send impression stats if the content of the cards has changed\n // and the section is not collapsed...\n (props.rows !== prevProps.rows && !isCollapsed) ||\n // or if we are expanding a section that was collapsed.\n (wasCollapsed && !isCollapsed)\n )\n ) {\n this.sendImpressionStatsOrAddListener();\n }\n }\n\n componentWillUpdate(nextProps) {\n this.sendNewTabRehydrated(nextProps.initialized);\n }\n\n componentWillUnmount() {\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n needsImpressionStats(cards) {\n if (!this.impressionCardGuids || (this.impressionCardGuids.length !== cards.length)) {\n return true;\n }\n\n for (let i = 0; i < cards.length; i++) {\n if (cards[i].guid !== this.impressionCardGuids[i]) {\n return true;\n }\n }\n\n return false;\n }\n\n // The NEW_TAB_REHYDRATED event is used to inform feeds that their\n // data has been consumed e.g. for counting the number of tabs that\n // have rendered that data.\n sendNewTabRehydrated(initialized) {\n if (initialized && !this.renderNotified) {\n this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_REHYDRATED, data: {}}));\n this.renderNotified = true;\n }\n }\n\n render() {\n const {\n id, eventSource, title, icon, rows, Pocket, topics,\n emptyState, dispatch, compactCards, read_more_endpoint,\n contextMenuOptions, initialized, learnMore,\n pref, privacyNoticeURL, isFirst, isLast,\n } = this.props;\n\n const waitingForSpoc = id === \"topstories\" && this.props.Pocket.waitingForSpoc;\n const maxCardsPerRow = compactCards ? CARDS_PER_ROW_COMPACT_WIDE : CARDS_PER_ROW_DEFAULT;\n const {numRows} = this;\n const maxCards = maxCardsPerRow * numRows;\n const maxCardsOnNarrow = CARDS_PER_ROW_DEFAULT * numRows;\n\n const {pocketCta, isUserLoggedIn} = Pocket || {};\n const {useCta} = pocketCta || {};\n\n // Don't display anything until we have a definitve result from Pocket,\n // to avoid a flash of logged out state while we render.\n const isPocketLoggedInDefined = (isUserLoggedIn === true || isUserLoggedIn === false);\n\n const shouldShowPocketCta = (id === \"topstories\" &&\n useCta && isUserLoggedIn === false);\n\n // Show topics only for top stories and if it has loaded with topics.\n // The classs .top-stories-bottom-container ensures content doesn't shift as things load.\n const shouldShowTopics = (id === \"topstories\" &&\n (topics && topics.length > 0) &&\n ((useCta && isUserLoggedIn === true) || (!useCta && isPocketLoggedInDefined)));\n\n const realRows = rows.slice(0, maxCards);\n\n // The empty state should only be shown after we have initialized and there is no content.\n // Otherwise, we should show placeholders.\n const shouldShowEmptyState = initialized && !rows.length;\n\n const cards = [];\n if (!shouldShowEmptyState) {\n for (let i = 0; i < maxCards; i++) {\n const link = realRows[i];\n // On narrow viewports, we only show 3 cards per row. We'll mark the rest as\n // .hide-for-narrow to hide in CSS via @media query.\n const className = (i >= maxCardsOnNarrow) ? \"hide-for-narrow\" : \"\";\n let usePlaceholder = !link;\n // If we are in the third card and waiting for spoc,\n // use the placeholder.\n if (!usePlaceholder && i === 2 && waitingForSpoc) {\n usePlaceholder = true;\n }\n cards.push(!usePlaceholder ? (\n \n ) : (\n \n ));\n }\n }\n\n const sectionClassName = [\n \"section\",\n compactCards ? \"compact-cards\" : \"normal-cards\",\n ].join(\" \");\n\n // <-- React component\n // <-- HTML5 element\n return (\n \n\n {!shouldShowEmptyState && ()}\n {shouldShowEmptyState &&\n \n
\n {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n
:\n
}\n
\n {getFormattedMessage(emptyState.message)}\n
\n
\n
}\n {id === \"topstories\" &&\n \n {shouldShowTopics &&
}\n {shouldShowPocketCta &&
}\n {read_more_endpoint &&\n
}\n
}\n \n );\n }\n}\n\nSection.defaultProps = {\n document: global.document,\n rows: [],\n emptyState: {},\n pref: {},\n title: \"\",\n};\n\nexport const SectionIntl = connect(state => ({Prefs: state.Prefs, Pocket: state.Pocket}))(injectIntl(Section));\n\nexport class _Sections extends React.PureComponent {\n renderSections() {\n const sections = [];\n const enabledSections = this.props.Sections.filter(section => section.enabled);\n const {sectionOrder, \"feeds.topsites\": showTopSites} = this.props.Prefs.values;\n // Enabled sections doesn't include Top Sites, so we add it if enabled.\n const expectedCount = enabledSections.length + ~~showTopSites;\n\n for (const sectionId of sectionOrder.split(\",\")) {\n const commonProps = {\n key: sectionId,\n isFirst: sections.length === 0,\n isLast: sections.length === expectedCount - 1,\n };\n if (sectionId === \"topsites\" && showTopSites) {\n sections.push( );\n } else {\n const section = enabledSections.find(s => s.id === sectionId);\n if (section) {\n sections.push( );\n }\n }\n }\n return sections;\n }\n\n render() {\n return (\n \n {this.renderSections()}\n
\n );\n }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\nconst _OpenInPrivateWindow = site => ({\n id: \"menu_action_open_private_window\",\n icon: \"new-window-private\",\n action: ac.OnlyToMain({\n type: at.OPEN_PRIVATE_WINDOW,\n data: {url: site.url, referrer: site.referrer},\n }),\n userEvent: \"OPEN_PRIVATE_WINDOW\",\n});\n\nexport const GetPlatformString = platform => {\n switch (platform) {\n case \"win\":\n return \"menu_action_show_file_windows\";\n case \"macosx\":\n return \"menu_action_show_file_mac_os\";\n case \"linux\":\n return \"menu_action_show_file_linux\";\n default:\n return \"menu_action_show_file_default\";\n }\n};\n\n/**\n * List of functions that return items that can be included as menu options in a\n * LinkMenu. All functions take the site as the first parameter, and optionally\n * the index of the site.\n */\nexport const LinkMenuOptions = {\n Separator: () => ({type: \"separator\"}),\n EmptyItem: () => ({type: \"empty\"}),\n RemoveBookmark: site => ({\n id: \"menu_action_remove_bookmark\",\n icon: \"bookmark-added\",\n action: ac.AlsoToMain({\n type: at.DELETE_BOOKMARK_BY_ID,\n data: site.bookmarkGuid,\n }),\n userEvent: \"BOOKMARK_DELETE\",\n }),\n AddBookmark: site => ({\n id: \"menu_action_bookmark\",\n icon: \"bookmark-hollow\",\n action: ac.AlsoToMain({\n type: at.BOOKMARK_URL,\n data: {url: site.url, title: site.title, type: site.type},\n }),\n userEvent: \"BOOKMARK_ADD\",\n }),\n OpenInNewWindow: site => ({\n id: \"menu_action_open_new_window\",\n icon: \"new-window\",\n action: ac.AlsoToMain({\n type: at.OPEN_NEW_WINDOW,\n data: {\n referrer: site.referrer,\n typedBonus: site.typedBonus,\n url: site.url,\n },\n }),\n userEvent: \"OPEN_NEW_WINDOW\",\n }),\n BlockUrl: (site, index, eventSource) => ({\n id: \"menu_action_dismiss\",\n icon: \"dismiss\",\n action: ac.AlsoToMain({\n type: at.BLOCK_URL,\n data: {url: site.open_url || site.url, pocket_id: site.pocket_id},\n }),\n impression: ac.ImpressionStats({\n source: eventSource,\n block: 0,\n tiles: [{id: site.guid, pos: index}],\n }),\n userEvent: \"BLOCK\",\n }),\n\n // This is an option for web extentions which will result in remove items from\n // memory and notify the web extenion, rather than using the built-in block list.\n WebExtDismiss: (site, index, eventSource) => ({\n id: \"menu_action_webext_dismiss\",\n string_id: \"menu_action_dismiss\",\n icon: \"dismiss\",\n action: ac.WebExtEvent(at.WEBEXT_DISMISS, {\n source: eventSource,\n url: site.url,\n action_position: index,\n }),\n }),\n DeleteUrl: (site, index, eventSource, isEnabled, siteInfo) => ({\n id: \"menu_action_delete\",\n icon: \"delete\",\n action: {\n type: at.DIALOG_OPEN,\n data: {\n onConfirm: [\n ac.AlsoToMain({type: at.DELETE_HISTORY_URL, data: {url: site.url, pocket_id: site.pocket_id, forceBlock: site.bookmarkGuid}}),\n ac.UserEvent(Object.assign({event: \"DELETE\", source: eventSource, action_position: index}, siteInfo)),\n ],\n eventSource,\n body_string_id: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n confirm_button_string_id: \"menu_action_delete\",\n cancel_button_string_id: \"topsites_form_cancel_button\",\n icon: \"modal-delete\",\n },\n },\n userEvent: \"DIALOG_OPEN\",\n }),\n ShowFile: (site, index, eventSource, isEnabled, siteInfo, platform) => ({\n id: GetPlatformString(platform),\n icon: \"search\",\n action: ac.OnlyToMain({\n type: at.SHOW_DOWNLOAD_FILE,\n data: {url: site.url},\n }),\n }),\n OpenFile: site => ({\n id: \"menu_action_open_file\",\n icon: \"open-file\",\n action: ac.OnlyToMain({\n type: at.OPEN_DOWNLOAD_FILE,\n data: {url: site.url},\n }),\n }),\n CopyDownloadLink: site => ({\n id: \"menu_action_copy_download_link\",\n icon: \"copy\",\n action: ac.OnlyToMain({\n type: at.COPY_DOWNLOAD_LINK,\n data: {url: site.url},\n }),\n }),\n GoToDownloadPage: site => ({\n id: \"menu_action_go_to_download_page\",\n icon: \"download\",\n action: ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: {url: site.referrer},\n }),\n disabled: !site.referrer,\n }),\n RemoveDownload: site => ({\n id: \"menu_action_remove_download\",\n icon: \"delete\",\n action: ac.OnlyToMain({\n type: at.REMOVE_DOWNLOAD_FILE,\n data: {url: site.url},\n }),\n }),\n PinTopSite: ({url, searchTopSite, label}, index) => ({\n id: \"menu_action_pin\",\n icon: \"pin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {\n site: {\n url,\n ...(searchTopSite && {searchTopSite, label}),\n },\n index,\n },\n }),\n userEvent: \"PIN\",\n }),\n UnpinTopSite: site => ({\n id: \"menu_action_unpin\",\n icon: \"unpin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_UNPIN,\n data: {site: {url: site.url}},\n }),\n userEvent: \"UNPIN\",\n }),\n SaveToPocket: (site, index, eventSource) => ({\n id: \"menu_action_save_to_pocket\",\n icon: \"pocket-save\",\n action: ac.AlsoToMain({\n type: at.SAVE_TO_POCKET,\n data: {site: {url: site.url, title: site.title}},\n }),\n impression: ac.ImpressionStats({\n source: eventSource,\n pocket: 0,\n tiles: [{id: site.guid, pos: index}],\n }),\n userEvent: \"SAVE_TO_POCKET\",\n }),\n DeleteFromPocket: site => ({\n id: \"menu_action_delete_pocket\",\n icon: \"delete\",\n action: ac.AlsoToMain({\n type: at.DELETE_FROM_POCKET,\n data: {pocket_id: site.pocket_id},\n }),\n userEvent: \"DELETE_FROM_POCKET\",\n }),\n ArchiveFromPocket: site => ({\n id: \"menu_action_archive_pocket\",\n icon: \"check\",\n action: ac.AlsoToMain({\n type: at.ARCHIVE_FROM_POCKET,\n data: {pocket_id: site.pocket_id},\n }),\n userEvent: \"ARCHIVE_FROM_POCKET\",\n }),\n EditTopSite: (site, index) => ({\n id: \"edit_topsites_button_text\",\n icon: \"edit\",\n action: {\n type: at.TOP_SITES_EDIT,\n data: {index},\n },\n }),\n CheckBookmark: site => (site.bookmarkGuid ? LinkMenuOptions.RemoveBookmark(site) : LinkMenuOptions.AddBookmark(site)),\n CheckPinTopSite: (site, index) => (site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index)),\n CheckSavedToPocket: (site, index) => (site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index)),\n CheckBookmarkOrArchive: site => (site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site)),\n OpenInPrivateWindow: (site, index, eventSource, isEnabled) => (isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem()),\n};\n","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport {LinkMenuOptions} from \"content-src/lib/link-menu-options\";\nimport React from \"react\";\n\nconst DEFAULT_SITE_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\", \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\"];\n\nexport class _LinkMenu extends React.PureComponent {\n getOptions() {\n const {props} = this;\n const {site, index, source, isPrivateBrowsingEnabled, siteInfo, platform} = props;\n\n // Handle special case of default site\n const propOptions = (!site.isDefault || site.searchTopSite) ? props.options : DEFAULT_SITE_MENU_OPTIONS;\n\n const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled, siteInfo, platform)).map(option => {\n const {action, impression, id, string_id, type, userEvent} = option;\n if (!type && id) {\n option.label = props.intl.formatMessage({id: string_id || id});\n option.onClick = () => {\n props.dispatch(action);\n if (userEvent) {\n const userEventData = Object.assign({\n event: userEvent,\n source,\n action_position: index,\n }, siteInfo);\n props.dispatch(ac.UserEvent(userEventData));\n }\n if (impression && props.shouldSendImpressionStats) {\n props.dispatch(impression);\n }\n };\n }\n return option;\n });\n\n // This is for accessibility to support making each item tabbable.\n // We want to know which item is the first and which item\n // is the last, so we can close the context menu accordingly.\n options[0].first = true;\n options[options.length - 1].last = true;\n return options;\n }\n\n render() {\n return ( );\n }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n","import React from \"react\";\n\nexport class ContextMenu extends React.PureComponent {\n constructor(props) {\n super(props);\n this.hideContext = this.hideContext.bind(this);\n this.onClick = this.onClick.bind(this);\n }\n\n hideContext() {\n this.props.onUpdate(false);\n }\n\n componentDidMount() {\n setTimeout(() => {\n global.addEventListener(\"click\", this.hideContext);\n }, 0);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"click\", this.hideContext);\n }\n\n onClick(event) {\n // Eat all clicks on the context menu so they don't bubble up to window.\n // This prevents the context menu from closing when clicking disabled items\n // or the separators.\n event.stopPropagation();\n }\n\n render() {\n return (\n \n {this.props.options.map((option, i) => (option.type === \"separator\" ?\n ( ) :\n (option.type !== \"empty\" && )\n ))}\n \n );\n }\n}\n\nexport class ContextMenuItem extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n }\n\n onClick() {\n this.props.hideContext();\n this.props.option.onClick();\n }\n\n onKeyDown(event) {\n const {option} = this.props;\n switch (event.key) {\n case \"Tab\":\n // tab goes down in context menu, shift + tab goes up in context menu\n // if we're on the last item, one more tab will close the context menu\n // similarly, if we're on the first item, one more shift + tab will close it\n if ((event.shiftKey && option.first) || (!event.shiftKey && option.last)) {\n this.props.hideContext();\n }\n break;\n case \"Enter\":\n this.props.hideContext();\n option.onClick();\n break;\n }\n }\n\n render() {\n const {option} = this.props;\n return (\n \n \n {option.icon && }\n {option.label}\n \n );\n }\n}\n","/**\n * List of helper functions for screenshot-based images.\n *\n * There are two kinds of images:\n * 1. Remote Image: This is the image from the main process and it refers to\n * the image in the React props. This can either be an object with the `data`\n * and `path` properties, if it is a blob, or a string, if it is a normal image.\n * 2. Local Image: This is the image object in the content process and it refers\n * to the image *object* in the React component's state. All local image\n * objects have the `url` property, and an additional property `path`, if they\n * are blobs.\n */\nexport const ScreenshotUtils = {\n isBlob(isLocal, image) {\n return !!(image && image.path && ((!isLocal && image.data) || (isLocal && image.url)));\n },\n\n // This should always be called with a remote image and not a local image.\n createLocalImageObject(remoteImage) {\n if (!remoteImage) {\n return null;\n }\n if (this.isBlob(false, remoteImage)) {\n return {url: global.URL.createObjectURL(remoteImage.data), path: remoteImage.path};\n }\n return {url: remoteImage};\n },\n\n // Revokes the object URL of the image if the local image is a blob.\n // This should always be called with a local image and not a remote image.\n maybeRevokeBlobObjectURL(localImage) {\n if (this.isBlob(true, localImage)) {\n global.URL.revokeObjectURL(localImage.url);\n }\n },\n\n // Checks if remoteImage and localImage are the same.\n isRemoteImageLocal(localImage, remoteImage) {\n // Both remoteImage and localImage are present.\n if (remoteImage && localImage) {\n return this.isBlob(false, remoteImage) ?\n localImage.path === remoteImage.path :\n localImage.url === remoteImage;\n }\n\n // This will only handle the remaining three possible outcomes.\n // (i.e. everything except when both image and localImage are present)\n return !remoteImage && !localImage;\n },\n};\n","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport React from \"react\";\nimport {SectionMenu} from \"content-src/components/SectionMenu/SectionMenu\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nfunction getFormattedMessage(message) {\n return typeof message === \"string\" ? {message} : ;\n}\n\nexport class _CollapsibleSection extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onBodyMount = this.onBodyMount.bind(this);\n this.onHeaderClick = this.onHeaderClick.bind(this);\n this.onTransitionEnd = this.onTransitionEnd.bind(this);\n this.enableOrDisableAnimation = this.enableOrDisableAnimation.bind(this);\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuButtonMouseEnter = this.onMenuButtonMouseEnter.bind(this);\n this.onMenuButtonMouseLeave = this.onMenuButtonMouseLeave.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n this.state = {enableAnimation: true, isAnimating: false, menuButtonHover: false, showContextMenu: false};\n }\n\n componentWillMount() {\n this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n }\n\n componentWillUpdate(nextProps) {\n // Check if we're about to go from expanded to collapsed\n if (!this.props.collapsed && nextProps.collapsed) {\n // This next line forces a layout flush of the section body, which has a\n // max-height style set, so that the upcoming collapse animation can\n // animate from that height to the collapsed height. Without this, the\n // update is coalesced and there's no animation from no-max-height to 0.\n this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions\n }\n }\n\n componentWillUnmount() {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n }\n\n enableOrDisableAnimation() {\n // Only animate the collapse/expand for visible tabs.\n const visible = this.props.document.visibilityState === VISIBLE;\n if (this.state.enableAnimation !== visible) {\n this.setState({enableAnimation: visible});\n }\n }\n\n onBodyMount(node) {\n this.sectionBody = node;\n }\n\n onHeaderClick() {\n // If this.sectionBody is unset, it means that we're in some sort of error\n // state, probably displaying the error fallback, so we won't be able to\n // compute the height, and we don't want to persist the preference.\n // If props.collapsed is undefined handler shouldn't do anything.\n if (!this.sectionBody || this.props.collapsed === undefined) {\n return;\n }\n\n // Get the current height of the body so max-height transitions can work\n this.setState({\n isAnimating: true,\n maxHeight: `${this._getSectionBodyHeight()}px`,\n });\n const {action, userEvent} = SectionMenuOptions.CheckCollapsed(this.props);\n this.props.dispatch(action);\n this.props.dispatch(ac.UserEvent({\n event: userEvent,\n source: this.props.source,\n }));\n }\n\n _getSectionBodyHeight() {\n const div = this.sectionBody;\n if (div.style.display === \"none\") {\n // If the div isn't displayed, we can't get it's height. So we display it\n // to get the height (it doesn't show up because max-height is set to 0px\n // in CSS). We don't undo this because we are about to expand the section.\n div.style.display = \"block\";\n }\n return div.scrollHeight;\n }\n\n onTransitionEnd(event) {\n // Only update the animating state for our own transition (not a child's)\n if (event.target === event.currentTarget) {\n this.setState({isAnimating: false});\n }\n }\n\n renderIcon() {\n const {icon} = this.props;\n if (icon && icon.startsWith(\"moz-extension://\")) {\n return ;\n }\n return ;\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.setState({showContextMenu: true});\n }\n\n onMenuButtonMouseEnter() {\n this.setState({menuButtonHover: true});\n }\n\n onMenuButtonMouseLeave() {\n this.setState({menuButtonHover: false});\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n render() {\n const isCollapsible = this.props.collapsed !== undefined;\n const {enableAnimation, isAnimating, maxHeight, menuButtonHover, showContextMenu} = this.state;\n const {id, eventSource, collapsed, learnMore, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n const active = menuButtonHover || showContextMenu;\n let bodyStyle;\n if (isAnimating && !collapsed) {\n bodyStyle = {maxHeight};\n } else if (!isAnimating && collapsed) {\n bodyStyle = {display: \"none\"};\n }\n return (\n \n \n
\n \n \n {this.renderIcon()}\n {getFormattedMessage(title)}\n \n \n {isCollapsible && }\n \n \n {learnMore &&\n \n \n \n \n \n }\n \n \n \n
\n \n \n \n \n \n {showContextMenu &&\n \n }\n
\n
\n \n \n {this.props.children}\n
\n \n \n );\n }\n}\n\n_CollapsibleSection.defaultProps = {\n document: global.document || {\n addEventListener: () => {},\n removeEventListener: () => {},\n visibilityState: \"hidden\",\n },\n Prefs: {values: {}},\n};\n\nexport const CollapsibleSection = injectIntl(_CollapsibleSection);\n","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst DEFAULT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"RemoveSection\", \"CheckCollapsed\", \"Separator\", \"ManageSection\"];\nconst WEBEXT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"CheckCollapsed\", \"Separator\", \"ManageWebExtension\"];\n\nexport class _SectionMenu extends React.PureComponent {\n getOptions() {\n const {props} = this;\n\n const propOptions = props.isWebExtension ? [...WEBEXT_SECTION_MENU_OPTIONS] : [...DEFAULT_SECTION_MENU_OPTIONS];\n // Prepend custom options and a separator\n if (props.extraOptions) {\n propOptions.splice(0, 0, ...props.extraOptions, \"Separator\");\n }\n // Insert privacy notice before the last option (\"ManageSection\")\n if (props.privacyNoticeURL) {\n propOptions.splice(-1, 0, \"PrivacyNotice\");\n }\n\n const options = propOptions.map(o => SectionMenuOptions[o](props)).map(option => {\n const {action, id, type, userEvent} = option;\n if (!type && id) {\n option.label = props.intl.formatMessage({id});\n option.onClick = () => {\n props.dispatch(action);\n if (userEvent) {\n props.dispatch(ac.UserEvent({\n event: userEvent,\n source: props.source,\n }));\n }\n };\n }\n return option;\n });\n\n // This is for accessibility to support making each item tabbable.\n // We want to know which item is the first and which item\n // is the last, so we can close the context menu accordingly.\n options[0].first = true;\n options[options.length - 1].last = true;\n return options;\n }\n\n render() {\n return ( );\n }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * List of functions that return items that can be included as menu options in a\n * SectionMenu. All functions take the section as the only parameter.\n */\nexport const SectionMenuOptions = {\n Separator: () => ({type: \"separator\"}),\n MoveUp: section => ({\n id: \"section_menu_action_move_up\",\n icon: \"arrowhead-up\",\n action: ac.OnlyToMain({\n type: at.SECTION_MOVE,\n data: {id: section.id, direction: -1},\n }),\n userEvent: \"MENU_MOVE_UP\",\n disabled: !!section.isFirst,\n }),\n MoveDown: section => ({\n id: \"section_menu_action_move_down\",\n icon: \"arrowhead-down\",\n action: ac.OnlyToMain({\n type: at.SECTION_MOVE,\n data: {id: section.id, direction: +1},\n }),\n userEvent: \"MENU_MOVE_DOWN\",\n disabled: !!section.isLast,\n }),\n RemoveSection: section => ({\n id: \"section_menu_action_remove_section\",\n icon: \"dismiss\",\n action: ac.SetPref(section.showPrefName, false),\n userEvent: \"MENU_REMOVE\",\n }),\n CollapseSection: section => ({\n id: \"section_menu_action_collapse_section\",\n icon: \"minimize\",\n action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: true}}}),\n userEvent: \"MENU_COLLAPSE\",\n }),\n ExpandSection: section => ({\n id: \"section_menu_action_expand_section\",\n icon: \"maximize\",\n action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: false}}}),\n userEvent: \"MENU_EXPAND\",\n }),\n ManageSection: section => ({\n id: \"section_menu_action_manage_section\",\n icon: \"settings\",\n action: ac.OnlyToMain({type: at.SETTINGS_OPEN}),\n userEvent: \"MENU_MANAGE\",\n }),\n ManageWebExtension: section => ({\n id: \"section_menu_action_manage_webext\",\n icon: \"settings\",\n action: ac.OnlyToMain({type: at.OPEN_WEBEXT_SETTINGS, data: section.id}),\n }),\n AddTopSite: section => ({\n id: \"section_menu_action_add_topsite\",\n icon: \"add\",\n action: {type: at.TOP_SITES_EDIT, data: {index: -1}},\n userEvent: \"MENU_ADD_TOPSITE\",\n }),\n AddSearchShortcut: section => ({\n id: \"section_menu_action_add_search_engine\",\n icon: \"search\",\n action: {type: at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL},\n userEvent: \"MENU_ADD_SEARCH\",\n }),\n PrivacyNotice: section => ({\n id: \"section_menu_action_privacy_notice\",\n icon: \"info\",\n action: ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: {url: section.privacyNoticeURL},\n }),\n userEvent: \"MENU_PRIVACY_NOTICE\",\n }),\n CheckCollapsed: section => (section.collapsed ? SectionMenuOptions.ExpandSection(section) : SectionMenuOptions.CollapseSection(section)),\n};\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\nimport React from \"react\";\n\n// Currently record only a fixed set of sections. This will prevent data\n// from custom sections from showing up or from topstories.\nconst RECORDED_SECTIONS = [\"highlights\", \"topsites\"];\n\nexport class ComponentPerfTimer extends React.Component {\n constructor(props) {\n super(props);\n // Just for test dependency injection:\n this.perfSvc = this.props.perfSvc || perfSvc;\n\n this._sendBadStateEvent = this._sendBadStateEvent.bind(this);\n this._sendPaintedEvent = this._sendPaintedEvent.bind(this);\n this._reportMissingData = false;\n this._timestampHandled = false;\n this._recordedFirstRender = false;\n }\n\n componentDidMount() {\n if (!RECORDED_SECTIONS.includes(this.props.id)) {\n return;\n }\n\n this._maybeSendPaintedEvent();\n }\n\n componentDidUpdate() {\n if (!RECORDED_SECTIONS.includes(this.props.id)) {\n return;\n }\n\n this._maybeSendPaintedEvent();\n }\n\n /**\n * Call the given callback after the upcoming frame paints.\n *\n * @note Both setTimeout and requestAnimationFrame are throttled when the page\n * is hidden, so this callback may get called up to a second or so after the\n * requestAnimationFrame \"paint\" for hidden tabs.\n *\n * Newtabs hidden while loading will presumably be fairly rare (other than\n * preloaded tabs, which we will be filtering out on the server side), so such\n * cases should get lost in the noise.\n *\n * If we decide that it's important to find out when something that's hidden\n * has \"painted\", however, another option is to post a message to this window.\n * That should happen even faster than setTimeout, and, at least as of this\n * writing, it's not throttled in hidden windows in Firefox.\n *\n * @param {Function} callback\n *\n * @returns void\n */\n _afterFramePaint(callback) {\n requestAnimationFrame(() => setTimeout(callback, 0));\n }\n\n _maybeSendBadStateEvent() {\n // Follow up bugs:\n // https://github.com/mozilla/activity-stream/issues/3691\n if (!this.props.initialized) {\n // Remember to report back when data is available.\n this._reportMissingData = true;\n } else if (this._reportMissingData) {\n this._reportMissingData = false;\n // Report how long it took for component to become initialized.\n this._sendBadStateEvent();\n }\n }\n\n _maybeSendPaintedEvent() {\n // If we've already handled a timestamp, don't do it again.\n if (this._timestampHandled || !this.props.initialized) {\n return;\n }\n\n // And if we haven't, we're doing so now, so remember that. Even if\n // something goes wrong in the callback, we can't try again, as we'd be\n // sending back the wrong data, and we have to do it here, so that other\n // calls to this method while waiting for the next frame won't also try to\n // handle it.\n this._timestampHandled = true;\n this._afterFramePaint(this._sendPaintedEvent);\n }\n\n /**\n * Triggered by call to render. Only first call goes through due to\n * `_recordedFirstRender`.\n */\n _ensureFirstRenderTsRecorded() {\n // Used as t0 for recording how long component took to initialize.\n if (!this._recordedFirstRender) {\n this._recordedFirstRender = true;\n // topsites_first_render_ts, highlights_first_render_ts.\n const key = `${this.props.id}_first_render_ts`;\n this.perfSvc.mark(key);\n }\n }\n\n /**\n * Creates `TELEMETRY_UNDESIRED_EVENT` with timestamp in ms\n * of how much longer the data took to be ready for display than it would\n * have been the ideal case.\n * https://github.com/mozilla/ping-centre/issues/98\n */\n _sendBadStateEvent() {\n // highlights_data_ready_ts, topsites_data_ready_ts.\n const dataReadyKey = `${this.props.id}_data_ready_ts`;\n this.perfSvc.mark(dataReadyKey);\n\n try {\n const firstRenderKey = `${this.props.id}_first_render_ts`;\n // value has to be Int32.\n const value = parseInt(this.perfSvc.getMostRecentAbsMarkStartByName(dataReadyKey) -\n this.perfSvc.getMostRecentAbsMarkStartByName(firstRenderKey), 10);\n this.props.dispatch(ac.OnlyToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n // highlights_data_late_by_ms, topsites_data_late_by_ms.\n data: {[`${this.props.id}_data_late_by_ms`]: value},\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true.\n }\n }\n\n _sendPaintedEvent() {\n // Record first_painted event but only send if topsites.\n if (this.props.id !== \"topsites\") {\n return;\n }\n\n // topsites_first_painted_ts.\n const key = `${this.props.id}_first_painted_ts`;\n this.perfSvc.mark(key);\n\n try {\n const data = {};\n data[key] = this.perfSvc.getMostRecentAbsMarkStartByName(key);\n\n this.props.dispatch(ac.OnlyToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data,\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true. We should at least not blow up, and should continue\n // to set this._timestampHandled to avoid going through this again.\n }\n }\n\n render() {\n if (RECORDED_SECTIONS.includes(this.props.id)) {\n this._ensureFirstRenderTsRecorded();\n this._maybeSendBadStateEvent();\n }\n return this.props.children;\n }\n}\n","/* globals Services */\n\"use strict\";\n\n/* istanbul ignore if */\nif (typeof ChromeUtils !== \"undefined\") {\n ChromeUtils.import(\"resource://gre/modules/Services.jsm\");\n}\n\nlet usablePerfObj;\n\n/* istanbul ignore if */\n/* istanbul ignore else */\nif (typeof Services !== \"undefined\") {\n // Borrow the high-resolution timer from the hidden window....\n usablePerfObj = Services.appShell.hiddenDOMWindow.performance;\n} else if (typeof performance !== \"undefined\") {\n // we must be running in content space\n // eslint-disable-next-line no-undef\n usablePerfObj = performance;\n} else {\n // This is a dummy object so this file doesn't crash in the node prerendering\n // task.\n usablePerfObj = {\n now() {},\n mark() {},\n };\n}\n\nfunction _PerfService(options) {\n // For testing, so that we can use a fake Window.performance object with\n // known state.\n if (options && options.performanceObj) {\n this._perf = options.performanceObj;\n } else {\n this._perf = usablePerfObj;\n }\n}\n\n_PerfService.prototype = {\n /**\n * Calls the underlying mark() method on the appropriate Window.performance\n * object to add a mark with the given name to the appropriate performance\n * timeline.\n *\n * @param {String} name the name to give the current mark\n * @return {void}\n */\n mark: function mark(str) {\n this._perf.mark(str);\n },\n\n /**\n * Calls the underlying getEntriesByName on the appropriate Window.performance\n * object.\n *\n * @param {String} name\n * @param {String} type eg \"mark\"\n * @return {Array} Performance* objects\n */\n getEntriesByName: function getEntriesByName(name, type) {\n return this._perf.getEntriesByName(name, type);\n },\n\n /**\n * The timeOrigin property from the appropriate performance object.\n * Used to ensure that timestamps from the add-on code and the content code\n * are comparable.\n *\n * @note If this is called from a context without a window\n * (eg a JSM in chrome), it will return the timeOrigin of the XUL hidden\n * window, which appears to be the first created window (and thus\n * timeOrigin) in the browser. Note also, however, there is also a private\n * hidden window, presumably for private browsing, which appears to be\n * created dynamically later. Exactly how/when that shows up needs to be\n * investigated.\n *\n * @return {Number} A double of milliseconds with a precision of 0.5us.\n */\n get timeOrigin() {\n return this._perf.timeOrigin;\n },\n\n /**\n * Returns the \"absolute\" version of performance.now(), i.e. one that\n * should ([bug 1401406](https://bugzilla.mozilla.org/show_bug.cgi?id=1401406)\n * be comparable across both chrome and content.\n *\n * @return {Number}\n */\n absNow: function absNow() {\n return this.timeOrigin + this._perf.now();\n },\n\n /**\n * This returns the absolute startTime from the most recent performance.mark()\n * with the given name.\n *\n * @param {String} name the name to lookup the start time for\n *\n * @return {Number} the returned start time, as a DOMHighResTimeStamp\n *\n * @throws {Error} \"No Marks with the name ...\" if none are available\n *\n * @note Always surround calls to this by try/catch. Otherwise your code\n * may fail when the `privacy.resistFingerprinting` pref is true. When\n * this pref is set, all attempts to get marks will likely fail, which will\n * cause this method to throw.\n *\n * See [bug 1369303](https://bugzilla.mozilla.org/show_bug.cgi?id=1369303)\n * for more info.\n */\n getMostRecentAbsMarkStartByName(name) {\n let entries = this.getEntriesByName(name, \"mark\");\n\n if (!entries.length) {\n throw new Error(`No marks with the name ${name}`);\n }\n\n let mostRecentEntry = entries[entries.length - 1];\n return this._perf.timeOrigin + mostRecentEntry.startTime;\n },\n};\n\nthis.perfService = new _PerfService();\nconst EXPORTED_SYMBOLS = [\"_PerfService\", \"perfService\"];\n","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class MoreRecommendations extends React.PureComponent {\n render() {\n const {read_more_endpoint} = this.props;\n if (read_more_endpoint) {\n return (\n \n \n \n );\n }\n return null;\n }\n}\n","import {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class _PocketLoggedInCta extends React.PureComponent {\n render() {\n const {pocketCta} = this.props.Pocket;\n return (\n \n \n {pocketCta.ctaButton ? pocketCta.ctaButton : }\n \n\n \n \n {pocketCta.ctaText ? pocketCta.ctaText : }\n \n \n \n );\n }\n}\n\nexport const PocketLoggedInCta = connect(state => ({Pocket: state.Pocket}))(_PocketLoggedInCta);\n","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class Topic extends React.PureComponent {\n render() {\n const {url, name} = this.props;\n return ({name} );\n }\n}\n\nexport class Topics extends React.PureComponent {\n render() {\n const {topics} = this.props;\n return (\n \n \n {topics && topics.map(t => )} \n \n );\n }\n}\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {MIN_CORNER_FAVICON_SIZE, MIN_RICH_FAVICON_SIZE, TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SearchShortcutsForm} from \"./SearchShortcutsForm\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\nimport {TopSiteForm} from \"./TopSiteForm\";\nimport {TopSiteList} from \"./TopSite\";\n\nfunction topSiteIconType(link) {\n if (link.customScreenshotURL) {\n return \"custom_screenshot\";\n }\n if (link.tippyTopIcon || link.faviconRef === \"tippytop\") {\n return \"tippytop\";\n }\n if (link.faviconSize >= MIN_RICH_FAVICON_SIZE) {\n return \"rich_icon\";\n }\n if (link.screenshot && link.faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n return \"screenshot_with_icon\";\n }\n if (link.screenshot) {\n return \"screenshot\";\n }\n return \"no_image\";\n}\n\n/**\n * Iterates through TopSites and counts types of images.\n * @param acc Accumulator for reducer.\n * @param topsite Entry in TopSites.\n */\nfunction countTopSitesIconsTypes(topSites) {\n const countTopSitesTypes = (acc, link) => {\n acc[topSiteIconType(link)]++;\n return acc;\n };\n\n return topSites.reduce(countTopSitesTypes, {\n \"custom_screenshot\": 0,\n \"screenshot_with_icon\": 0,\n \"screenshot\": 0,\n \"tippytop\": 0,\n \"rich_icon\": 0,\n \"no_image\": 0,\n });\n}\n\nexport class _TopSites extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onEditFormClose = this.onEditFormClose.bind(this);\n this.onSearchShortcutsFormClose = this.onSearchShortcutsFormClose.bind(this);\n }\n\n /**\n * Dispatch session statistics about the quality of TopSites icons and pinned count.\n */\n _dispatchTopSitesStats() {\n const topSites = this._getVisibleTopSites();\n const topSitesIconsStats = countTopSitesIconsTypes(topSites);\n const topSitesPinned = topSites.filter(site => !!site.isPinned).length;\n const searchShortcuts = topSites.filter(site => !!site.searchTopSite).length;\n // Dispatch telemetry event with the count of TopSites images types.\n this.props.dispatch(ac.AlsoToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data: {\n topsites_icon_stats: topSitesIconsStats,\n topsites_pinned: topSitesPinned,\n topsites_search_shortcuts: searchShortcuts,\n },\n }));\n }\n\n /**\n * Return the TopSites that are visible based on prefs and window width.\n */\n _getVisibleTopSites() {\n // We hide 2 sites per row when not in the wide layout.\n let sitesPerRow = TOP_SITES_MAX_SITES_PER_ROW;\n // $break-point-widest = 1072px (from _variables.scss)\n if (!global.matchMedia(`(min-width: 1072px)`).matches) {\n sitesPerRow -= 2;\n }\n return this.props.TopSites.rows.slice(0, this.props.TopSitesRows * sitesPerRow);\n }\n\n componentDidUpdate() {\n this._dispatchTopSitesStats();\n }\n\n componentDidMount() {\n this._dispatchTopSitesStats();\n }\n\n onEditFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"TOP_SITES_EDIT_CLOSE\",\n }));\n this.props.dispatch({type: at.TOP_SITES_CANCEL_EDIT});\n }\n\n onSearchShortcutsFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_CLOSE\",\n }));\n this.props.dispatch({type: at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL});\n }\n\n render() {\n const {props} = this;\n const {editForm, showSearchShortcutsForm} = props.TopSites;\n const extraMenuOptions = [\"AddTopSite\"];\n if (props.Prefs.values[\"improvesearch.topSiteSearchShortcuts\"]) {\n extraMenuOptions.push(\"AddSearchShortcut\");\n }\n\n return (\n \n \n \n {editForm &&\n
\n }\n {showSearchShortcutsForm &&\n
\n }\n
\n \n );\n }\n}\n\nexport const TopSites = connect(state => ({\n TopSites: state.TopSites,\n Prefs: state.Prefs,\n TopSitesRows: state.Prefs.values.topSitesRows,\n}))(injectIntl(_TopSites));\n","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// the special top site for search shortcut experiment can only have the option to unpin (which removes) the topsite\nexport const TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"Separator\", \"BlockUrl\"];\n// minimum size necessary to show a rich icon instead of a screenshot\nexport const MIN_RICH_FAVICON_SIZE = 96;\n// minimum size necessary to show any icon in the top left corner with a screenshot\nexport const MIN_CORNER_FAVICON_SIZE = 16;\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\n\nclass SelectableSearchShortcut extends React.PureComponent {\n render() {\n const {shortcut, selected} = this.props;\n const imageStyle = {backgroundImage: `url(\"${shortcut.tippyTopIcon}\")`};\n return (\n \n
\n
\n \n
\n \n \n {shortcut.keyword} \n
\n \n
\n \n
\n );\n }\n}\n\nexport class SearchShortcutsForm extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onSaveButtonClick = this.onSaveButtonClick.bind(this);\n\n // clone the shortcuts and add them to the state so we can add isSelected property\n const shortcuts = [];\n const {rows, searchShortcuts} = props.TopSites;\n searchShortcuts.forEach(shortcut => {\n shortcuts.push({\n ...shortcut,\n isSelected: !!rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword),\n });\n });\n this.state = {shortcuts};\n }\n\n handleChange(event) {\n const {target} = event;\n const {name, checked} = target;\n this.setState(prevState => {\n const shortcuts = prevState.shortcuts.slice();\n let shortcut = shortcuts.find(({keyword}) => keyword === name);\n shortcut.isSelected = checked;\n return {shortcuts};\n });\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onSaveButtonClick(ev) {\n ev.preventDefault();\n\n // Check if there were any changes and act accordingly\n const {rows} = this.props.TopSites;\n const pinQueue = [];\n const unpinQueue = [];\n this.state.shortcuts.forEach(shortcut => {\n const alreadyPinned = rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword);\n if (shortcut.isSelected && !alreadyPinned) {\n pinQueue.push(this._searchTopSite(shortcut));\n } else if (!shortcut.isSelected && alreadyPinned) {\n unpinQueue.push({url: alreadyPinned.url, searchVendor: shortcut.shortURL});\n }\n });\n\n // Tell the feed to do the work.\n this.props.dispatch(ac.OnlyToMain({\n type: at.UPDATE_PINNED_SEARCH_SHORTCUTS,\n data: {\n addedShortcuts: pinQueue,\n deletedShortcuts: unpinQueue,\n },\n }));\n\n // Send the Telemetry pings.\n pinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_ADD\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n unpinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_DELETE\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n\n this.props.onClose();\n }\n\n _searchTopSite(shortcut) {\n return {\n url: shortcut.url,\n searchTopSite: true,\n label: shortcut.keyword,\n searchVendor: shortcut.shortURL,\n };\n }\n\n render() {\n return (\n \n );\n }\n}\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {\n MIN_CORNER_FAVICON_SIZE,\n MIN_RICH_FAVICON_SIZE,\n TOP_SITES_CONTEXT_MENU_OPTIONS,\n TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS,\n TOP_SITES_SOURCE,\n} from \"./TopSitesConstants\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {ScreenshotUtils} from \"content-src/lib/screenshot-utils\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\n\nexport class TopSiteLink extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {screenshotImage: null};\n this.onDragEvent = this.onDragEvent.bind(this);\n this.onKeyPress = this.onKeyPress.bind(this);\n }\n\n /*\n * Helper to determine whether the drop zone should allow a drop. We only allow\n * dropping top sites for now.\n */\n _allowDrop(e) {\n return e.dataTransfer.types.includes(\"text/topsite-index\");\n }\n\n onDragEvent(event) {\n switch (event.type) {\n case \"click\":\n // Stop any link clicks if we started any dragging\n if (this.dragged) {\n event.preventDefault();\n }\n break;\n case \"dragstart\":\n this.dragged = true;\n event.dataTransfer.effectAllowed = \"move\";\n event.dataTransfer.setData(\"text/topsite-index\", this.props.index);\n event.target.blur();\n this.props.onDragEvent(event, this.props.index, this.props.link, this.props.title);\n break;\n case \"dragend\":\n this.props.onDragEvent(event);\n break;\n case \"dragenter\":\n case \"dragover\":\n case \"drop\":\n if (this._allowDrop(event)) {\n event.preventDefault();\n this.props.onDragEvent(event, this.props.index);\n }\n break;\n case \"mousedown\":\n // Block the scroll wheel from appearing for middle clicks on search top sites\n if (event.button === 1 && this.props.link.searchTopSite) {\n event.preventDefault();\n }\n // Reset at the first mouse event of a potential drag\n this.dragged = false;\n break;\n }\n }\n\n /**\n * Helper to obtain the next state based on nextProps and prevState.\n *\n * NOTE: Rename this method to getDerivedStateFromProps when we update React\n * to >= 16.3. We will need to update tests as well. We cannot rename this\n * method to getDerivedStateFromProps now because there is a mismatch in\n * the React version that we are using for both testing and production.\n * (i.e. react-test-render => \"16.3.2\", react => \"16.2.0\").\n *\n * See https://github.com/airbnb/enzyme/blob/master/packages/enzyme-adapter-react-16/package.json#L43.\n */\n static getNextStateFromProps(nextProps, prevState) {\n const {screenshot} = nextProps.link;\n const imageInState = ScreenshotUtils.isRemoteImageLocal(prevState.screenshotImage, screenshot);\n if (imageInState) {\n return null;\n }\n\n // Since image was updated, attempt to revoke old image blob URL, if it exists.\n ScreenshotUtils.maybeRevokeBlobObjectURL(prevState.screenshotImage);\n\n return {screenshotImage: ScreenshotUtils.createLocalImageObject(screenshot)};\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillMount() {\n const nextState = TopSiteLink.getNextStateFromProps(this.props, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillReceiveProps(nextProps) {\n const nextState = TopSiteLink.getNextStateFromProps(nextProps, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n ScreenshotUtils.maybeRevokeBlobObjectURL(this.state.screenshotImage);\n }\n\n onKeyPress(event) {\n // If we have tabbed to a search shortcut top site, and we click 'enter',\n // we should execute the onClick function. This needs to be added because\n // search top sites are anchor tags without an href. See bug 1483135\n if (this.props.link.searchTopSite && event.key === \"Enter\") {\n this.props.onClick(event);\n }\n }\n\n render() {\n const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}${link.searchTopSite ? \" search-shortcut\" : \"\"}`;\n const {tippyTopIcon, faviconSize} = link;\n const [letterFallback] = title;\n let imageClassName;\n let imageStyle;\n let showSmallFavicon = false;\n let smallFaviconStyle;\n let smallFaviconFallback;\n let hasScreenshotImage = this.state.screenshotImage && this.state.screenshotImage.url;\n if (defaultStyle) { // force no styles (letter fallback) even if the link has imagery\n smallFaviconFallback = false;\n } else if (link.searchTopSite) {\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon})`,\n };\n smallFaviconStyle = {backgroundImage: `url(${tippyTopIcon})`};\n } else if (link.customScreenshotURL) {\n // assume high quality custom screenshot and use rich icon styles and class names\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: hasScreenshotImage ? `url(${this.state.screenshotImage.url})` : \"none\",\n };\n } else if (tippyTopIcon || faviconSize >= MIN_RICH_FAVICON_SIZE) {\n // styles and class names for top sites with rich icons\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon || link.favicon})`,\n };\n } else {\n // styles and class names for top sites with screenshot + small icon in top left corner\n imageClassName = `screenshot${hasScreenshotImage ? \" active\" : \"\"}`;\n imageStyle = {backgroundImage: hasScreenshotImage ? `url(${this.state.screenshotImage.url})` : \"none\"};\n\n // only show a favicon in top left if it's greater than 16x16\n if (faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n showSmallFavicon = true;\n smallFaviconStyle = {backgroundImage: `url(${link.favicon})`};\n } else if (hasScreenshotImage) {\n // Don't show a small favicon if there is no screenshot, because that\n // would result in two fallback icons\n showSmallFavicon = true;\n smallFaviconFallback = true;\n }\n }\n let draggableProps = {};\n if (isDraggable) {\n draggableProps = {\n onClick: this.onDragEvent,\n onDragEnd: this.onDragEvent,\n onDragStart: this.onDragEvent,\n onMouseDown: this.onDragEvent,\n };\n }\n return (\n \n );\n }\n}\nTopSiteLink.defaultProps = {\n title: \"\",\n link: {},\n isDraggable: true,\n};\n\nexport class TopSite extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {showContextMenu: false};\n this.onLinkClick = this.onLinkClick.bind(this);\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n }\n\n /**\n * Report to telemetry additional information about the item.\n */\n _getTelemetryInfo() {\n const value = {icon_type: this.props.link.iconType};\n // Filter out \"not_pinned\" type for being the default\n if (this.props.link.isPinned) {\n value.card_type = \"pinned\";\n }\n if (this.props.link.searchTopSite) {\n // Set the card_type as \"search\" regardless of its pinning status\n value.card_type = \"search\";\n value.search_vendor = this.props.link.hostname;\n }\n return {value};\n }\n\n userEvent(event) {\n this.props.dispatch(ac.UserEvent(Object.assign({\n event,\n source: TOP_SITES_SOURCE,\n action_position: this.props.index,\n }, this._getTelemetryInfo())));\n }\n\n onLinkClick(event) {\n this.userEvent(\"CLICK\");\n\n // Specially handle a top site link click for \"typed\" frecency bonus as\n // specified as a property on the link.\n event.preventDefault();\n const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n if (!this.props.link.searchTopSite) {\n this.props.dispatch(ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}}),\n }));\n } else {\n this.props.dispatch(ac.OnlyToMain({\n type: at.FILL_SEARCH_TERM,\n data: {label: this.props.link.label},\n }));\n }\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.props.onActivate(this.props.index);\n this.setState({showContextMenu: true});\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n render() {\n const {props} = this;\n const {link} = props;\n const isContextMenuOpen = this.state.showContextMenu && props.activeIndex === props.index;\n const title = link.label || link.hostname;\n return (\n \n \n \n \n \n \n {isContextMenuOpen &&\n \n }\n
\n );\n }\n}\nTopSite.defaultProps = {\n link: {},\n onActivate() {},\n};\n\nexport class TopSitePlaceholder extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onEditButtonClick = this.onEditButtonClick.bind(this);\n }\n\n onEditButtonClick() {\n this.props.dispatch(\n {type: at.TOP_SITES_EDIT, data: {index: this.props.index}});\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport class _TopSiteList extends React.PureComponent {\n static get DEFAULT_STATE() {\n return {\n activeIndex: null,\n draggedIndex: null,\n draggedSite: null,\n draggedTitle: null,\n topSitesPreview: null,\n };\n }\n\n constructor(props) {\n super(props);\n this.state = _TopSiteList.DEFAULT_STATE;\n this.onDragEvent = this.onDragEvent.bind(this);\n this.onActivate = this.onActivate.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.state.draggedSite) {\n const prevTopSites = this.props.TopSites && this.props.TopSites.rows;\n const newTopSites = nextProps.TopSites && nextProps.TopSites.rows;\n if (prevTopSites && prevTopSites[this.state.draggedIndex] &&\n prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url &&\n (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) {\n // We got the new order from the redux store via props. We can clear state now.\n this.setState(_TopSiteList.DEFAULT_STATE);\n }\n }\n }\n\n userEvent(event, index) {\n this.props.dispatch(ac.UserEvent({\n event,\n source: TOP_SITES_SOURCE,\n action_position: index,\n }));\n }\n\n onDragEvent(event, index, link, title) {\n switch (event.type) {\n case \"dragstart\":\n this.dropped = false;\n this.setState({\n draggedIndex: index,\n draggedSite: link,\n draggedTitle: title,\n activeIndex: null,\n });\n this.userEvent(\"DRAG\", index);\n break;\n case \"dragend\":\n if (!this.dropped) {\n // If there was no drop event, reset the state to the default.\n this.setState(_TopSiteList.DEFAULT_STATE);\n }\n break;\n case \"dragenter\":\n if (index === this.state.draggedIndex) {\n this.setState({topSitesPreview: null});\n } else {\n this.setState({topSitesPreview: this._makeTopSitesPreview(index)});\n }\n break;\n case \"drop\":\n if (index !== this.state.draggedIndex) {\n this.dropped = true;\n this.props.dispatch(ac.AlsoToMain({\n type: at.TOP_SITES_INSERT,\n data: {\n site: {\n url: this.state.draggedSite.url,\n label: this.state.draggedTitle,\n customScreenshotURL: this.state.draggedSite.customScreenshotURL,\n // Only if the search topsites experiment is enabled\n ...(this.state.draggedSite.searchTopSite && {searchTopSite: true}),\n },\n index,\n draggedFromIndex: this.state.draggedIndex,\n },\n }));\n this.userEvent(\"DROP\", index);\n }\n break;\n }\n }\n\n _getTopSites() {\n // Make a copy of the sites to truncate or extend to desired length\n let topSites = this.props.TopSites.rows.slice();\n topSites.length = this.props.TopSitesRows * TOP_SITES_MAX_SITES_PER_ROW;\n return topSites;\n }\n\n /**\n * Make a preview of the topsites that will be the result of dropping the currently\n * dragged site at the specified index.\n */\n _makeTopSitesPreview(index) {\n const topSites = this._getTopSites();\n topSites[this.state.draggedIndex] = null;\n const pinnedOnly = topSites.map(site => ((site && site.isPinned) ? site : null));\n const unpinned = topSites.filter(site => site && !site.isPinned);\n const siteToInsert = Object.assign({}, this.state.draggedSite, {isPinned: true, isDragged: true});\n if (!pinnedOnly[index]) {\n pinnedOnly[index] = siteToInsert;\n } else {\n // Find the hole to shift the pinned site(s) towards. We shift towards the\n // hole left by the site being dragged.\n let holeIndex = index;\n const indexStep = index > this.state.draggedIndex ? -1 : 1;\n while (pinnedOnly[holeIndex]) {\n holeIndex += indexStep;\n }\n\n // Shift towards the hole.\n const shiftingStep = index > this.state.draggedIndex ? 1 : -1;\n while (holeIndex !== index) {\n const nextIndex = holeIndex + shiftingStep;\n pinnedOnly[holeIndex] = pinnedOnly[nextIndex];\n holeIndex = nextIndex;\n }\n pinnedOnly[index] = siteToInsert;\n }\n\n // Fill in the remaining holes with unpinned sites.\n const preview = pinnedOnly;\n for (let i = 0; i < preview.length; i++) {\n if (!preview[i]) {\n preview[i] = unpinned.shift() || null;\n }\n }\n\n return preview;\n }\n\n onActivate(index) {\n this.setState({activeIndex: index});\n }\n\n render() {\n const {props} = this;\n const topSites = this.state.topSitesPreview || this._getTopSites();\n const topSitesUI = [];\n const commonProps = {\n onDragEvent: this.onDragEvent,\n dispatch: props.dispatch,\n intl: props.intl,\n };\n // We assign a key to each placeholder slot. We need it to be independent\n // of the slot index (i below) so that the keys used stay the same during\n // drag and drop reordering and the underlying DOM nodes are reused.\n // This mostly (only?) affects linux so be sure to test on linux before changing.\n let holeIndex = 0;\n\n // On narrow viewports, we only show 6 sites per row. We'll mark the rest as\n // .hide-for-narrow to hide in CSS via @media query.\n const maxNarrowVisibleIndex = props.TopSitesRows * 6;\n\n for (let i = 0, l = topSites.length; i < l; i++) {\n const link = topSites[i] && Object.assign({}, topSites[i], {iconType: this.props.topSiteIconType(topSites[i])});\n const slotProps = {\n key: link ? link.url : holeIndex++,\n index: i,\n };\n if (i >= maxNarrowVisibleIndex) {\n slotProps.className = \"hide-for-narrow\";\n }\n topSitesUI.push(!link ? (\n \n ) : (\n \n ));\n }\n return ();\n }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\n\nexport class _StartupOverlay extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onInputChange = this.onInputChange.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.clickSkip = this.clickSkip.bind(this);\n this.initScene = this.initScene.bind(this);\n this.removeOverlay = this.removeOverlay.bind(this);\n this.onInputInvalid = this.onInputInvalid.bind(this);\n\n this.state = {\n emailInput: \"\",\n overlayRemoved: false,\n flowId: \"\",\n flowBeginTime: 0,\n };\n this.didFetch = false;\n }\n\n async componentWillUpdate() {\n if (this.props.fxa_endpoint && !this.didFetch) {\n try {\n this.didFetch = true;\n const fxaParams = \"entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun&form_type=email\";\n const response = await fetch(`${this.props.fxa_endpoint}/metrics-flow?${fxaParams}`);\n if (response.status === 200) {\n const {flowId, flowBeginTime} = await response.json();\n this.setState({flowId, flowBeginTime});\n } else {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_FETCH_ERROR\", value: response.status}}));\n }\n } catch (error) {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_ERROR\"}}));\n }\n }\n }\n\n componentDidMount() {\n this.initScene();\n }\n\n initScene() {\n // Timeout to allow the scene to render once before attaching the attribute\n // to trigger the animation.\n setTimeout(() => {\n this.setState({show: true});\n }, 10);\n }\n\n removeOverlay() {\n window.removeEventListener(\"visibilitychange\", this.removeOverlay);\n document.body.classList.remove(\"hide-main\");\n this.setState({show: false});\n setTimeout(() => {\n // Allow scrolling and fully remove overlay after animation finishes.\n document.body.classList.remove(\"welcome\");\n this.setState({overlayRemoved: true});\n }, 400);\n }\n\n onInputChange(e) {\n let error = e.target.previousSibling;\n this.setState({emailInput: e.target.value});\n error.classList.remove(\"active\");\n e.target.classList.remove(\"invalid\");\n }\n\n onSubmit() {\n this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\", ...this._getFormInfo()}));\n\n window.addEventListener(\"visibilitychange\", this.removeOverlay);\n }\n\n clickSkip() {\n this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\", ...this._getFormInfo()}));\n this.removeOverlay();\n }\n\n /**\n * Report to telemetry additional information about the form submission.\n */\n _getFormInfo() {\n const value = {has_flow_params: this.state.flowId.length > 0};\n return {value};\n }\n\n onInputInvalid(e) {\n let error = e.target.previousSibling;\n error.classList.add(\"active\");\n e.target.classList.add(\"invalid\");\n e.preventDefault(); // Override built-in form validation popup\n e.target.focus();\n }\n\n render() {\n // When skipping the onboarding tour we show AS but we are still on\n // about:welcome, prop.isFirstrun is true and StartupOverlay is rendered\n if (this.state.overlayRemoved) {\n return null;\n }\n\n let termsLink = ( );\n let privacyLink = ( );\n\n return (\n \n );\n }\n}\n\nconst getState = state => ({fxa_endpoint: state.Prefs.values.fxa_endpoint});\nexport const StartupOverlay = connect(getState)(injectIntl(_StartupOverlay));\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nexport class DetectUserSessionStart {\n constructor(store, options = {}) {\n this._store = store;\n // Overrides for testing\n this.document = options.document || global.document;\n this._perfService = options.perfService || perfSvc;\n this._onVisibilityChange = this._onVisibilityChange.bind(this);\n }\n\n /**\n * sendEventOrAddListener - Notify immediately if the page is already visible,\n * or else set up a listener for when visibility changes.\n * This is needed for accurate session tracking for telemetry,\n * because tabs are pre-loaded.\n */\n sendEventOrAddListener() {\n if (this.document.visibilityState === VISIBLE) {\n // If the document is already visible, to the user, send a notification\n // immediately that a session has started.\n this._sendEvent();\n } else {\n // If the document is not visible, listen for when it does become visible.\n this.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n /**\n * _sendEvent - Sends a message to the main process to indicate the current\n * tab is now visible to the user, includes the\n * visibility_event_rcvd_ts time in ms from the UNIX epoch.\n */\n _sendEvent() {\n this._perfService.mark(\"visibility_event_rcvd_ts\");\n\n try {\n let visibility_event_rcvd_ts = this._perfService\n .getMostRecentAbsMarkStartByName(\"visibility_event_rcvd_ts\");\n\n this._store.dispatch(ac.AlsoToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data: {visibility_event_rcvd_ts},\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true. We should at least not blow up.\n }\n }\n\n /**\n * _onVisibilityChange - If the visibility has changed to visible, sends a notification\n * and removes the event listener. This should only be called once per tab.\n */\n _onVisibilityChange() {\n if (this.document.visibilityState === VISIBLE) {\n this._sendEvent();\n this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n}\n","export function enableASRouterContent(store, asrouterContent) {\n // Enable asrouter content\n store.subscribe(() => {\n const state = store.getState();\n if (!state.ASRouter.initialized) {\n return;\n }\n\n if (!asrouterContent.initialized) {\n asrouterContent.init();\n }\n });\n // Return this for testing purposes\n return {asrouterContent};\n}\n","import React from \"react\";\n\nconst ALLOWED_STYLE_TAGS = [\"color\", \"backgroundColor\"];\n\nexport const Button = props => {\n const style = {};\n\n // Add allowed style tags from props, e.g. props.color becomes style={color: props.color}\n for (const tag of ALLOWED_STYLE_TAGS) {\n if (typeof props[tag] !== \"undefined\") {\n style[tag] = props[tag];\n }\n }\n // remove border if bg is set to something custom\n if (style.backgroundColor) {\n style.border = \"0\";\n }\n\n return (\n {props.children}\n );\n};\n","export function safeURI(url) {\n if (!url) {\n return \"\";\n }\n const {protocol} = new URL(url);\n const isAllowed = [\n \"http:\",\n \"https:\",\n \"data:\",\n \"resource:\",\n \"chrome:\",\n ].includes(protocol);\n if (!isAllowed) {\n console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console\n }\n return isAllowed ? url : \"\";\n}\n","import {Localized} from \"fluent-react\";\nimport React from \"react\";\nimport {RICH_TEXT_KEYS} from \"../../rich-text-strings\";\nimport {safeURI} from \"../../template-utils\";\n\n// Elements allowed in snippet content\nconst ALLOWED_TAGS = {\n b: ,\n i: ,\n u: ,\n strong: ,\n em: ,\n br: ,\n};\n\n/**\n * Transform an object (tag name: {url}) into (tag name: anchor) where the url\n * is used as href, in order to render links inside a Fluent.Localized component.\n */\nexport function convertLinks(links, sendClick, doNotAutoBlock) {\n if (links) {\n return Object.keys(links).reduce((acc, linkTag) => {\n const {action} = links[linkTag];\n // Setting the value to false will not include the attribute in the anchor\n const url = action ? false : safeURI(links[linkTag].url);\n\n acc[linkTag] = ( );\n return acc;\n }, {});\n }\n\n return null;\n}\n\n/**\n * Message wrapper used to sanitize markup and render HTML.\n */\nexport function RichText(props) {\n if (!RICH_TEXT_KEYS.includes(props.localization_id)) {\n throw new Error(`ASRouter: ${props.localization_id} is not a valid rich text property. If you want it to be processed, you need to add it to asrouter/rich-text-strings.js`);\n }\n return (\n \n {props.text} \n \n );\n}\n","import React from \"react\";\n\nexport class SnippetBase extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onBlockClicked = this.onBlockClicked.bind(this);\n }\n\n onBlockClicked() {\n if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"BLOCK\", id: this.props.UISurface});\n }\n\n this.props.onBlock();\n }\n\n renderDismissButton() {\n if (this.props.footerDismiss) {\n return (\n \n
\n \n {this.props.content.scene2_dismiss_button_text}\n \n
\n
\n );\n }\n\n return (\n \n );\n }\n\n render() {\n const {props} = this;\n\n const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n return (\n
\n {props.children}\n
\n {this.renderDismissButton()}\n
);\n }\n}\n","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {RichText} from \"../../components/RichText/RichText\";\nimport {safeURI} from \"../../template-utils\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nconst DEFAULT_ICON_PATH = \"chrome://branding/content/icon64.png\";\n\nexport class SimpleSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onButtonClick = this.onButtonClick.bind(this);\n }\n\n onButtonClick() {\n if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", id: this.props.UISurface});\n }\n const {button_url} = this.props.content;\n // If button_url is defined handle it as OPEN_URL action\n const type = this.props.content.button_action || (button_url && \"OPEN_URL\");\n this.props.onAction({\n type,\n data: {args: this.props.content.button_action_args || button_url},\n });\n if (!this.props.content.do_not_autoblock) {\n this.props.onBlock();\n }\n }\n\n renderTitle() {\n const {title} = this.props.content;\n return title ? {title} : null;\n }\n\n renderTitleIcon() {\n const titleIcon = safeURI(this.props.content.title_icon);\n return titleIcon ? : null;\n }\n\n renderButton() {\n const {props} = this;\n if (!props.content.button_action && !props.onButtonClick && !props.content.button_url) {\n return null;\n }\n\n return (\n {props.content.button_label}\n );\n }\n\n renderText() {\n const {props} = this;\n return ( );\n }\n\n render() {\n const {props} = this;\n let className = \"SimpleSnippet\";\n if (props.className) {\n className += ` ${props.className}`;\n }\n if (props.content.tall) {\n className += \" tall\";\n }\n return (\n \n \n {this.renderTitleIcon()} {this.renderTitle()}
{this.renderText()}
\n {this.props.extraContent}\n
\n {{this.renderButton()}
}\n );\n }\n}\n","import React from \"react\";\nimport {SimpleSnippet} from \"../SimpleSnippet/SimpleSnippet\";\n\nclass EOYSnippetBase extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleSubmit = this.handleSubmit.bind(this);\n }\n\n /**\n * setFrequencyValue - `frequency` form parameter value should be `monthly`\n * if `monthly-checkbox` is selected or `single` otherwise\n */\n setFrequencyValue() {\n const frequencyCheckbox = this.refs.form.querySelector(\"#monthly-checkbox\");\n if (frequencyCheckbox.checked) {\n this.refs.form.querySelector(\"[name='frequency']\").value = \"monthly\";\n }\n }\n\n handleSubmit(event) {\n event.preventDefault();\n this.setFrequencyValue();\n this.refs.form.submit();\n if (!this.props.content.do_not_autoblock) {\n this.props.onBlock();\n }\n }\n\n renderDonations() {\n const fieldNames = [\"first\", \"second\", \"third\", \"fourth\"];\n const numberFormat = new Intl.NumberFormat(this.props.content.locale || navigator.language, {\n style: \"currency\",\n currency: this.props.content.currency_code,\n minimumFractionDigits: 0,\n });\n // Default to `second` button\n const {selected_button} = this.props.content;\n const btnStyle = {\n color: this.props.content.button_color,\n backgroundColor: this.props.content.button_background_color,\n };\n\n return ();\n }\n\n render() {\n const textStyle = {\n color: this.props.content.text_color,\n backgroundColor: this.props.content.background_color,\n };\n const customElement = ;\n return ( );\n }\n}\n\nexport const EOYSnippet = props => {\n const extendedContent = {\n monthly_checkbox_label_text: \"Make my donation monthly\",\n locale: \"en-US\",\n currency_code: \"usd\",\n selected_button: \"donation_amount_second\",\n ...props.content,\n };\n\n return ( );\n};\n","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {RichText} from \"../../components/RichText/RichText\";\nimport {SimpleSnippet} from \"../SimpleSnippet/SimpleSnippet\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nexport class SubmitFormSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.expandSnippet = this.expandSnippet.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.onInputChange = this.onInputChange.bind(this);\n this.state = {\n expanded: false,\n signupSubmitted: false,\n signupSuccess: false,\n disableForm: false,\n };\n }\n\n async handleSubmit(event) {\n let json;\n\n if (this.state.disableForm) {\n return;\n }\n\n event.preventDefault();\n this.setState({disableForm: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"conversion-subscribe-activation\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n\n if (this.props.form_method.toUpperCase() === \"GET\") {\n this.refs.form.submit();\n return;\n }\n\n const {url, formData} = this.props.processFormData ?\n this.props.processFormData(this.refs.mainInput, this.props) :\n {url: this.refs.form.action, formData: new FormData(this.refs.form)};\n\n try {\n const fetchRequest = new Request(url, {body: formData, method: \"POST\"});\n const response = await fetch(fetchRequest);\n json = await response.json();\n } catch (err) {\n console.log(err); // eslint-disable-line no-console\n }\n\n if (json && json.status === \"ok\") {\n this.setState({signupSuccess: true, signupSubmitted: true});\n if (!this.props.content.do_not_autoblock) {\n this.props.onBlock({preventDismiss: true});\n }\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-success\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n } else {\n console.error(\"There was a problem submitting the form\", json || \"[No JSON response]\"); // eslint-disable-line no-console\n this.setState({signupSuccess: false, signupSubmitted: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-error\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n }\n\n this.setState({disableForm: false});\n }\n\n expandSnippet() {\n this.setState({\n expanded: true,\n signupSuccess: false,\n signupSubmitted: false,\n });\n }\n\n renderHiddenFormInputs() {\n const {hidden_inputs} = this.props.content;\n\n if (!hidden_inputs) {\n return null;\n }\n\n return Object.keys(hidden_inputs).map((key, idx) => );\n }\n\n renderDisclaimer() {\n const {content} = this.props;\n if (!content.scene2_disclaimer_html) {\n return null;\n }\n return (\n \n
);\n }\n\n renderFormPrivacyNotice() {\n const {content} = this.props;\n if (!content.scene2_privacy_html) {\n return null;\n }\n return (\n \n \n \n \n
\n );\n }\n\n renderSignupSubmitted() {\n const {content} = this.props;\n const isSuccess = this.state.signupSuccess;\n const successTitle = isSuccess && content.success_title;\n const bodyText = isSuccess ? content.success_text : content.error_text;\n const retryButtonText = content.scene1_button_label;\n return (\n {successTitle ?
{successTitle} : null}\n
{bodyText}{isSuccess ? null : {retryButtonText} }
\n
);\n }\n\n onInputChange(event) {\n if (!this.props.validateInput) {\n return;\n }\n const hasError = this.props.validateInput(event.target.value, this.props.content);\n event.target.setCustomValidity(hasError);\n }\n\n renderInput() {\n const placholder = this.props.content.scene2_email_placeholder_text || this.props.content.scene2_input_placeholder;\n return ( );\n }\n\n renderSignupView() {\n const {content} = this.props;\n const containerClass = `SubmitFormSnippet ${this.props.className}`;\n return (\n {content.scene2_icon ? : null}\n \n
{content.scene2_text}
\n
\n \n );\n }\n\n getFirstSceneContent() {\n return Object.keys(this.props.content).filter(key => key.includes(\"scene1\")).reduce((acc, key) => {\n acc[key.substr(7)] = this.props.content[key];\n return acc;\n }, {});\n }\n\n render() {\n const content = {...this.props.content, ...this.getFirstSceneContent()};\n\n if (this.state.signupSubmitted) {\n return this.renderSignupSubmitted();\n }\n if (this.state.expanded) {\n return this.renderSignupView();\n }\n return ;\n }\n}\n","import React from \"react\";\nimport {SubmitFormSnippet} from \"../SubmitFormSnippet/SubmitFormSnippet.jsx\";\n\nexport const FXASignupSnippet = props => {\n const userAgent = window.navigator.userAgent.match(/Firefox\\/([0-9]+)\\./);\n const firefox_version = userAgent ? parseInt(userAgent[1], 10) : 0;\n const extendedContent = {\n form_action: \"https://accounts.firefox.com/\",\n ...props.content,\n hidden_inputs: {\n action: \"email\",\n context: \"fx_desktop_v3\",\n entrypoint: \"snippets\",\n service: \"sync\",\n utm_source: \"snippet\",\n utm_content: firefox_version,\n utm_campaign: props.content.utm_campaign,\n utm_term: props.content.utm_term,\n ...props.content.hidden_inputs,\n },\n };\n\n return ( );\n};\n","import React from \"react\";\nimport {SubmitFormSnippet} from \"../SubmitFormSnippet/SubmitFormSnippet.jsx\";\n\nexport const NewsletterSnippet = props => {\n const extendedContent = {\n form_action: \"https://basket.mozilla.org/subscribe.json\",\n ...props.content,\n hidden_inputs: {\n newsletters: props.content.scene2_newsletter || \"mozilla-foundation\",\n fmt: \"H\",\n lang: \"en-US\",\n source_url: `https://snippets.mozilla.com/show/${props.id}`,\n ...props.content.hidden_inputs,\n },\n };\n\n return ( );\n};\n","/**\n * Checks if a given string is an email or phone number or neither\n * @param {string} val The user input\n * @param {ASRMessageContent} content .content property on ASR message\n * @returns {\"email\"|\"phone\"|\"\"} The type of the input\n */\nexport function isEmailOrPhoneNumber(val, content) {\n const {locale} = content;\n // http://emailregex.com/\n const email_re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n const check_email = email_re.test(val);\n let check_phone; // depends on locale\n switch (locale) {\n case \"en-US\":\n case \"en-CA\":\n // allow 10-11 digits in case user wants to enter country code\n check_phone = val.length >= 10 && val.length <= 11 && !isNaN(val);\n break;\n case \"de\":\n // allow between 2 and 12 digits for german phone numbers\n check_phone = val.length >= 2 && val.length <= 12 && !isNaN(val);\n break;\n // this case should never be hit, but good to have a fallback just in case\n default:\n check_phone = !isNaN(val);\n break;\n }\n if (check_email) {\n return \"email\";\n } else if (check_phone) {\n return \"phone\";\n }\n return \"\";\n}\n","import {isEmailOrPhoneNumber} from \"./isEmailOrPhoneNumber\";\nimport React from \"react\";\nimport {SubmitFormSnippet} from \"../SubmitFormSnippet/SubmitFormSnippet.jsx\";\n\nfunction validateInput(value, content) {\n const type = isEmailOrPhoneNumber(value, content);\n return type ? \"\" : \"Must be an email or a phone number.\";\n}\n\nfunction processFormData(input, message) {\n const {content} = message;\n const type = content.include_sms ? isEmailOrPhoneNumber(input.value, content) : \"email\";\n const formData = new FormData();\n let url;\n if (type === \"phone\") {\n url = \"https://basket.mozilla.org/news/subscribe_sms/\";\n formData.append(\"mobile_number\", input.value);\n formData.append(\"msg_name\", content.message_id_sms);\n formData.append(\"country\", content.country);\n } else if (type === \"email\") {\n url = \"https://basket.mozilla.org/news/subscribe/\";\n formData.append(\"email\", input.value);\n formData.append(\"newsletters\", content.message_id_email);\n formData.append(\"source_url\", encodeURIComponent(`https://snippets.mozilla.com/show/${message.id}`));\n }\n formData.append(\"lang\", content.locale);\n return {formData, url};\n}\n\nexport const SendToDeviceSnippet = props => (\n \n);\n","import {EOYSnippet} from \"./EOYSnippet/EOYSnippet\";\nimport {FXASignupSnippet} from \"./FXASignupSnippet/FXASignupSnippet\";\nimport {NewsletterSnippet} from \"./NewsletterSnippet/NewsletterSnippet\";\nimport {SendToDeviceSnippet} from \"./SendToDeviceSnippet/SendToDeviceSnippet\";\nimport {SimpleSnippet} from \"./SimpleSnippet/SimpleSnippet\";\n\n// Key names matching schema name of templates\nexport const SnippetsTemplates = {\n simple_snippet: SimpleSnippet,\n newsletter_snippet: NewsletterSnippet,\n fxa_signup_snippet: FXASignupSnippet,\n send_to_device_snippet: SendToDeviceSnippet,\n eoy_snippet: EOYSnippet,\n};\n","/* eslint no-magic-numbers: [0] */\n\nconst MAX_PLACEABLES = 100;\n\nconst entryIdentifierRe = /-?[a-zA-Z][a-zA-Z0-9_-]*/y;\nconst identifierRe = /[a-zA-Z][a-zA-Z0-9_-]*/y;\nconst functionIdentifierRe = /^[A-Z][A-Z_?-]*$/;\n\n/**\n * The `Parser` class is responsible for parsing FTL resources.\n *\n * It's only public method is `getResource(source)` which takes an FTL string\n * and returns a two element Array with an Object of entries generated from the\n * source as the first element and an array of SyntaxError objects as the\n * second.\n *\n * This parser is optimized for runtime performance.\n *\n * There is an equivalent of this parser in syntax/parser which is\n * generating full AST which is useful for FTL tools.\n */\nclass RuntimeParser {\n /**\n * Parse FTL code into entries formattable by the MessageContext.\n *\n * Given a string of FTL syntax, return a map of entries that can be passed\n * to MessageContext.format and a list of errors encountered during parsing.\n *\n * @param {String} string\n * @returns {Array}\n */\n getResource(string) {\n this._source = string;\n this._index = 0;\n this._length = string.length;\n this.entries = {};\n\n const errors = [];\n\n this.skipWS();\n while (this._index < this._length) {\n try {\n this.getEntry();\n } catch (e) {\n if (e instanceof SyntaxError) {\n errors.push(e);\n\n this.skipToNextEntryStart();\n } else {\n throw e;\n }\n }\n this.skipWS();\n }\n\n return [this.entries, errors];\n }\n\n /**\n * Parse the source string from the current index as an FTL entry\n * and add it to object's entries property.\n *\n * @private\n */\n getEntry() {\n // The index here should either be at the beginning of the file\n // or right after new line.\n if (this._index !== 0 &&\n this._source[this._index - 1] !== \"\\n\") {\n throw this.error(`Expected an entry to start\n at the beginning of the file or on a new line.`);\n }\n\n const ch = this._source[this._index];\n\n // We don't care about comments or sections at runtime\n if (ch === \"/\" ||\n (ch === \"#\" &&\n [\" \", \"#\", \"\\n\"].includes(this._source[this._index + 1]))) {\n this.skipComment();\n return;\n }\n\n if (ch === \"[\") {\n this.skipSection();\n return;\n }\n\n this.getMessage();\n }\n\n /**\n * Skip the section entry from the current index.\n *\n * @private\n */\n skipSection() {\n this._index += 1;\n if (this._source[this._index] !== \"[\") {\n throw this.error('Expected \"[[\" to open a section');\n }\n\n this._index += 1;\n\n this.skipInlineWS();\n this.getVariantName();\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"]\" ||\n this._source[this._index + 1] !== \"]\") {\n throw this.error('Expected \"]]\" to close a section');\n }\n\n this._index += 2;\n }\n\n /**\n * Parse the source string from the current index as an FTL message\n * and add it to the entries property on the Parser.\n *\n * @private\n */\n getMessage() {\n const id = this.getEntryIdentifier();\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \"=\") {\n this._index++;\n }\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (id.startsWith(\"-\") && val === null) {\n throw this.error(\"Expected term to have a value\");\n }\n\n let attrs = null;\n\n if (this._source[this._index] === \" \") {\n const lineStart = this._index;\n this.skipInlineWS();\n\n if (this._source[this._index] === \".\") {\n this._index = lineStart;\n attrs = this.getAttributes();\n }\n }\n\n if (attrs === null && typeof val === \"string\") {\n this.entries[id] = val;\n } else {\n if (val === null && attrs === null) {\n throw this.error(\"Expected message to have a value or attributes\");\n }\n\n this.entries[id] = {};\n\n if (val !== null) {\n this.entries[id].val = val;\n }\n\n if (attrs !== null) {\n this.entries[id].attrs = attrs;\n }\n }\n }\n\n /**\n * Skip whitespace.\n *\n * @private\n */\n skipWS() {\n let ch = this._source[this._index];\n while (ch === \" \" || ch === \"\\n\" || ch === \"\\t\" || ch === \"\\r\") {\n ch = this._source[++this._index];\n }\n }\n\n /**\n * Skip inline whitespace (space and \\t).\n *\n * @private\n */\n skipInlineWS() {\n let ch = this._source[this._index];\n while (ch === \" \" || ch === \"\\t\") {\n ch = this._source[++this._index];\n }\n }\n\n /**\n * Skip blank lines.\n *\n * @private\n */\n skipBlankLines() {\n while (true) {\n const ptr = this._index;\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \"\\n\") {\n this._index += 1;\n } else {\n this._index = ptr;\n break;\n }\n }\n }\n\n /**\n * Get identifier using the provided regex.\n *\n * By default this will get identifiers of public messages, attributes and\n * external arguments (without the $).\n *\n * @returns {String}\n * @private\n */\n getIdentifier(re = identifierRe) {\n re.lastIndex = this._index;\n const result = re.exec(this._source);\n\n if (result === null) {\n this._index += 1;\n throw this.error(`Expected an identifier [${re.toString()}]`);\n }\n\n this._index = re.lastIndex;\n return result[0];\n }\n\n /**\n * Get identifier of a Message or a Term (staring with a dash).\n *\n * @returns {String}\n * @private\n */\n getEntryIdentifier() {\n return this.getIdentifier(entryIdentifierRe);\n }\n\n /**\n * Get Variant name.\n *\n * @returns {Object}\n * @private\n */\n getVariantName() {\n let name = \"\";\n\n const start = this._index;\n let cc = this._source.charCodeAt(this._index);\n\n if ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 || cc === 32) { // _ \n cc = this._source.charCodeAt(++this._index);\n } else {\n throw this.error(\"Expected a keyword (starting with [a-zA-Z_])\");\n }\n\n while ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || cc === 45 || cc === 32) { // _- \n cc = this._source.charCodeAt(++this._index);\n }\n\n // If we encountered the end of name, we want to test if the last\n // collected character is a space.\n // If it is, we will backtrack to the last non-space character because\n // the keyword cannot end with a space character.\n while (this._source.charCodeAt(this._index - 1) === 32) {\n this._index--;\n }\n\n name += this._source.slice(start, this._index);\n\n return { type: \"varname\", name };\n }\n\n /**\n * Get simple string argument enclosed in `\"`.\n *\n * @returns {String}\n * @private\n */\n getString() {\n const start = this._index + 1;\n\n while (++this._index < this._length) {\n const ch = this._source[this._index];\n\n if (ch === '\"') {\n break;\n }\n\n if (ch === \"\\n\") {\n throw this.error(\"Unterminated string expression\");\n }\n }\n\n return this._source.substring(start, this._index++);\n }\n\n /**\n * Parses a Message pattern.\n * Message Pattern may be a simple string or an array of strings\n * and placeable expressions.\n *\n * @returns {String|Array}\n * @private\n */\n getPattern() {\n // We're going to first try to see if the pattern is simple.\n // If it is we can just look for the end of the line and read the string.\n //\n // Then, if either the line contains a placeable opening `{` or the\n // next line starts an indentation, we switch to complex pattern.\n const start = this._index;\n let eol = this._source.indexOf(\"\\n\", this._index);\n\n if (eol === -1) {\n eol = this._length;\n }\n\n const firstLineContent = start !== eol ?\n this._source.slice(start, eol) : null;\n\n if (firstLineContent && firstLineContent.includes(\"{\")) {\n return this.getComplexPattern();\n }\n\n this._index = eol + 1;\n\n this.skipBlankLines();\n\n if (this._source[this._index] !== \" \") {\n // No indentation means we're done with this message. Callers should check\n // if the return value here is null. It may be OK for messages, but not OK\n // for terms, attributes and variants.\n return firstLineContent;\n }\n\n const lineStart = this._index;\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \".\") {\n // The pattern is followed by an attribute. Rewind _index to the first\n // column of the current line as expected by getAttributes.\n this._index = lineStart;\n return firstLineContent;\n }\n\n if (firstLineContent) {\n // It's a multiline pattern which started on the same line as the\n // identifier. Reparse the whole pattern to make sure we get all of it.\n this._index = start;\n }\n\n return this.getComplexPattern();\n }\n\n /**\n * Parses a complex Message pattern.\n * This function is called by getPattern when the message is multiline,\n * or contains escape chars or placeables.\n * It does full parsing of complex patterns.\n *\n * @returns {Array}\n * @private\n */\n /* eslint-disable complexity */\n getComplexPattern() {\n let buffer = \"\";\n const content = [];\n let placeables = 0;\n\n let ch = this._source[this._index];\n\n while (this._index < this._length) {\n // This block handles multi-line strings combining strings separated\n // by new line.\n if (ch === \"\\n\") {\n this._index++;\n\n // We want to capture the start and end pointers\n // around blank lines and add them to the buffer\n // but only if the blank lines are in the middle\n // of the string.\n const blankLinesStart = this._index;\n this.skipBlankLines();\n const blankLinesEnd = this._index;\n\n\n if (this._source[this._index] !== \" \") {\n break;\n }\n this.skipInlineWS();\n\n if (this._source[this._index] === \"}\" ||\n this._source[this._index] === \"[\" ||\n this._source[this._index] === \"*\" ||\n this._source[this._index] === \".\") {\n this._index = blankLinesEnd;\n break;\n }\n\n buffer += this._source.substring(blankLinesStart, blankLinesEnd);\n\n if (buffer.length || content.length) {\n buffer += \"\\n\";\n }\n ch = this._source[this._index];\n continue;\n } else if (ch === \"\\\\\") {\n const ch2 = this._source[this._index + 1];\n if (ch2 === '\"' || ch2 === \"{\" || ch2 === \"\\\\\") {\n ch = ch2;\n this._index++;\n }\n } else if (ch === \"{\") {\n // Push the buffer to content array right before placeable\n if (buffer.length) {\n content.push(buffer);\n }\n if (placeables > MAX_PLACEABLES - 1) {\n throw this.error(\n `Too many placeables, maximum allowed is ${MAX_PLACEABLES}`);\n }\n buffer = \"\";\n content.push(this.getPlaceable());\n\n this._index++;\n\n ch = this._source[this._index];\n placeables++;\n continue;\n }\n\n if (ch) {\n buffer += ch;\n }\n this._index++;\n ch = this._source[this._index];\n }\n\n if (content.length === 0) {\n return buffer.length ? buffer : null;\n }\n\n if (buffer.length) {\n content.push(buffer);\n }\n\n return content;\n }\n /* eslint-enable complexity */\n\n /**\n * Parses a single placeable in a Message pattern and returns its\n * expression.\n *\n * @returns {Object}\n * @private\n */\n getPlaceable() {\n const start = ++this._index;\n\n this.skipWS();\n\n if (this._source[this._index] === \"*\" ||\n (this._source[this._index] === \"[\" &&\n this._source[this._index + 1] !== \"]\")) {\n const variants = this.getVariants();\n\n return {\n type: \"sel\",\n exp: null,\n vars: variants[0],\n def: variants[1]\n };\n }\n\n // Rewind the index and only support in-line white-space now.\n this._index = start;\n this.skipInlineWS();\n\n const selector = this.getSelectorExpression();\n\n this.skipWS();\n\n const ch = this._source[this._index];\n\n if (ch === \"}\") {\n if (selector.type === \"attr\" && selector.id.name.startsWith(\"-\")) {\n throw this.error(\n \"Attributes of private messages cannot be interpolated.\"\n );\n }\n\n return selector;\n }\n\n if (ch !== \"-\" || this._source[this._index + 1] !== \">\") {\n throw this.error('Expected \"}\" or \"->\"');\n }\n\n if (selector.type === \"ref\") {\n throw this.error(\"Message references cannot be used as selectors.\");\n }\n\n if (selector.type === \"var\") {\n throw this.error(\"Variants cannot be used as selectors.\");\n }\n\n if (selector.type === \"attr\" && !selector.id.name.startsWith(\"-\")) {\n throw this.error(\n \"Attributes of public messages cannot be used as selectors.\"\n );\n }\n\n\n this._index += 2; // ->\n\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"\\n\") {\n throw this.error(\"Variants should be listed in a new line\");\n }\n\n this.skipWS();\n\n const variants = this.getVariants();\n\n if (variants[0].length === 0) {\n throw this.error(\"Expected members for the select expression\");\n }\n\n return {\n type: \"sel\",\n exp: selector,\n vars: variants[0],\n def: variants[1]\n };\n }\n\n /**\n * Parses a selector expression.\n *\n * @returns {Object}\n * @private\n */\n getSelectorExpression() {\n const literal = this.getLiteral();\n\n if (literal.type !== \"ref\") {\n return literal;\n }\n\n if (this._source[this._index] === \".\") {\n this._index++;\n\n const name = this.getIdentifier();\n this._index++;\n return {\n type: \"attr\",\n id: literal,\n name\n };\n }\n\n if (this._source[this._index] === \"[\") {\n this._index++;\n\n const key = this.getVariantKey();\n this._index++;\n return {\n type: \"var\",\n id: literal,\n key\n };\n }\n\n if (this._source[this._index] === \"(\") {\n this._index++;\n const args = this.getCallArgs();\n\n if (!functionIdentifierRe.test(literal.name)) {\n throw this.error(\"Function names must be all upper-case\");\n }\n\n this._index++;\n\n literal.type = \"fun\";\n\n return {\n type: \"call\",\n fun: literal,\n args\n };\n }\n\n return literal;\n }\n\n /**\n * Parses call arguments for a CallExpression.\n *\n * @returns {Array}\n * @private\n */\n getCallArgs() {\n const args = [];\n\n while (this._index < this._length) {\n this.skipInlineWS();\n\n if (this._source[this._index] === \")\") {\n return args;\n }\n\n const exp = this.getSelectorExpression();\n\n // MessageReference in this place may be an entity reference, like:\n // `call(foo)`, or, if it's followed by `:` it will be a key-value pair.\n if (exp.type !== \"ref\") {\n args.push(exp);\n } else {\n this.skipInlineWS();\n\n if (this._source[this._index] === \":\") {\n this._index++;\n this.skipInlineWS();\n\n const val = this.getSelectorExpression();\n\n // If the expression returned as a value of the argument\n // is not a quote delimited string or number, throw.\n //\n // We don't have to check here if the pattern is quote delimited\n // because that's the only type of string allowed in expressions.\n if (typeof val === \"string\" ||\n Array.isArray(val) ||\n val.type === \"num\") {\n args.push({\n type: \"narg\",\n name: exp.name,\n val\n });\n } else {\n this._index = this._source.lastIndexOf(\":\", this._index) + 1;\n throw this.error(\n \"Expected string in quotes, number.\");\n }\n\n } else {\n args.push(exp);\n }\n }\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \")\") {\n break;\n } else if (this._source[this._index] === \",\") {\n this._index++;\n } else {\n throw this.error('Expected \",\" or \")\"');\n }\n }\n\n return args;\n }\n\n /**\n * Parses an FTL Number.\n *\n * @returns {Object}\n * @private\n */\n getNumber() {\n let num = \"\";\n let cc = this._source.charCodeAt(this._index);\n\n // The number literal may start with negative sign `-`.\n if (cc === 45) {\n num += \"-\";\n cc = this._source.charCodeAt(++this._index);\n }\n\n // next, we expect at least one digit\n if (cc < 48 || cc > 57) {\n throw this.error(`Unknown literal \"${num}\"`);\n }\n\n // followed by potentially more digits\n while (cc >= 48 && cc <= 57) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n }\n\n // followed by an optional decimal separator `.`\n if (cc === 46) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n\n // followed by at least one digit\n if (cc < 48 || cc > 57) {\n throw this.error(`Unknown literal \"${num}\"`);\n }\n\n // and optionally more digits\n while (cc >= 48 && cc <= 57) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n }\n }\n\n return {\n type: \"num\",\n val: num\n };\n }\n\n /**\n * Parses a list of Message attributes.\n *\n * @returns {Object}\n * @private\n */\n getAttributes() {\n const attrs = {};\n\n while (this._index < this._length) {\n if (this._source[this._index] !== \" \") {\n break;\n }\n this.skipInlineWS();\n\n if (this._source[this._index] !== \".\") {\n break;\n }\n this._index++;\n\n const key = this.getIdentifier();\n\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"=\") {\n throw this.error('Expected \"=\"');\n }\n this._index++;\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (val === null) {\n throw this.error(\"Expected attribute to have a value\");\n }\n\n if (typeof val === \"string\") {\n attrs[key] = val;\n } else {\n attrs[key] = {\n val\n };\n }\n\n this.skipBlankLines();\n }\n\n return attrs;\n }\n\n /**\n * Parses a list of Selector variants.\n *\n * @returns {Array}\n * @private\n */\n getVariants() {\n const variants = [];\n let index = 0;\n let defaultIndex;\n\n while (this._index < this._length) {\n const ch = this._source[this._index];\n\n if ((ch !== \"[\" || this._source[this._index + 1] === \"[\") &&\n ch !== \"*\") {\n break;\n }\n if (ch === \"*\") {\n this._index++;\n defaultIndex = index;\n }\n\n if (this._source[this._index] !== \"[\") {\n throw this.error('Expected \"[\"');\n }\n\n this._index++;\n\n const key = this.getVariantKey();\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (val === null) {\n throw this.error(\"Expected variant to have a value\");\n }\n\n variants[index++] = {key, val};\n\n this.skipWS();\n }\n\n return [variants, defaultIndex];\n }\n\n /**\n * Parses a Variant key.\n *\n * @returns {String}\n * @private\n */\n getVariantKey() {\n // VariantKey may be a Keyword or Number\n\n const cc = this._source.charCodeAt(this._index);\n let literal;\n\n if ((cc >= 48 && cc <= 57) || cc === 45) {\n literal = this.getNumber();\n } else {\n literal = this.getVariantName();\n }\n\n if (this._source[this._index] !== \"]\") {\n throw this.error('Expected \"]\"');\n }\n\n this._index++;\n return literal;\n }\n\n /**\n * Parses an FTL literal.\n *\n * @returns {Object}\n * @private\n */\n getLiteral() {\n const cc0 = this._source.charCodeAt(this._index);\n\n if (cc0 === 36) { // $\n this._index++;\n return {\n type: \"ext\",\n name: this.getIdentifier()\n };\n }\n\n const cc1 = cc0 === 45 // -\n // Peek at the next character after the dash.\n ? this._source.charCodeAt(this._index + 1)\n // Or keep using the character at the current index.\n : cc0;\n\n if ((cc1 >= 97 && cc1 <= 122) || // a-z\n (cc1 >= 65 && cc1 <= 90)) { // A-Z\n return {\n type: \"ref\",\n name: this.getEntryIdentifier()\n };\n }\n\n if ((cc1 >= 48 && cc1 <= 57)) { // 0-9\n return this.getNumber();\n }\n\n if (cc0 === 34) { // \"\n return this.getString();\n }\n\n throw this.error(\"Expected literal\");\n }\n\n /**\n * Skips an FTL comment.\n *\n * @private\n */\n skipComment() {\n // At runtime, we don't care about comments so we just have\n // to parse them properly and skip their content.\n let eol = this._source.indexOf(\"\\n\", this._index);\n\n while (eol !== -1 &&\n ((this._source[eol + 1] === \"/\" && this._source[eol + 2] === \"/\") ||\n (this._source[eol + 1] === \"#\" &&\n [\" \", \"#\"].includes(this._source[eol + 2])))) {\n this._index = eol + 3;\n\n eol = this._source.indexOf(\"\\n\", this._index);\n\n if (eol === -1) {\n break;\n }\n }\n\n if (eol === -1) {\n this._index = this._length;\n } else {\n this._index = eol + 1;\n }\n }\n\n /**\n * Creates a new SyntaxError object with a given message.\n *\n * @param {String} message\n * @returns {Object}\n * @private\n */\n error(message) {\n return new SyntaxError(message);\n }\n\n /**\n * Skips to the beginning of a next entry after the current position.\n * This is used to mark the boundary of junk entry in case of error,\n * and recover from the returned position.\n *\n * @private\n */\n skipToNextEntryStart() {\n let start = this._index;\n\n while (true) {\n if (start === 0 || this._source[start - 1] === \"\\n\") {\n const cc = this._source.charCodeAt(start);\n\n if ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 47 || cc === 91) { // /[\n this._index = start;\n return;\n }\n }\n\n start = this._source.indexOf(\"\\n\", start);\n\n if (start === -1) {\n this._index = this._length;\n return;\n }\n start++;\n }\n }\n}\n\n/**\n * Parses an FTL string using RuntimeParser and returns the generated\n * object with entries and a list of errors.\n *\n * @param {String} string\n * @returns {Array}\n */\nexport default function parse(string) {\n const parser = new RuntimeParser();\n return parser.getResource(string);\n}\n","/* global Intl */\n\n/**\n * The `FluentType` class is the base of Fluent's type system.\n *\n * Fluent types wrap JavaScript values and store additional configuration for\n * them, which can then be used in the `toString` method together with a proper\n * `Intl` formatter.\n */\nexport class FluentType {\n\n /**\n * Create an `FluentType` instance.\n *\n * @param {Any} value - JavaScript value to wrap.\n * @param {Object} opts - Configuration.\n * @returns {FluentType}\n */\n constructor(value, opts) {\n this.value = value;\n this.opts = opts;\n }\n\n /**\n * Unwrap the raw value stored by this `FluentType`.\n *\n * @returns {Any}\n */\n valueOf() {\n return this.value;\n }\n\n /**\n * Format this instance of `FluentType` to a string.\n *\n * Formatted values are suitable for use outside of the `MessageContext`.\n * This method can use `Intl` formatters memoized by the `MessageContext`\n * instance passed as an argument.\n *\n * @param {MessageContext} [ctx]\n * @returns {string}\n */\n toString() {\n throw new Error(\"Subclasses of FluentType must implement toString.\");\n }\n}\n\nexport class FluentNone extends FluentType {\n toString() {\n return this.value || \"???\";\n }\n}\n\nexport class FluentNumber extends FluentType {\n constructor(value, opts) {\n super(parseFloat(value), opts);\n }\n\n toString(ctx) {\n try {\n const nf = ctx._memoizeIntlObject(\n Intl.NumberFormat, this.opts\n );\n return nf.format(this.value);\n } catch (e) {\n // XXX Report the error.\n return this.value;\n }\n }\n\n /**\n * Compare the object with another instance of a FluentType.\n *\n * @param {MessageContext} ctx\n * @param {FluentType} other\n * @returns {bool}\n */\n match(ctx, other) {\n if (other instanceof FluentNumber) {\n return this.value === other.value;\n }\n return false;\n }\n}\n\nexport class FluentDateTime extends FluentType {\n constructor(value, opts) {\n super(new Date(value), opts);\n }\n\n toString(ctx) {\n try {\n const dtf = ctx._memoizeIntlObject(\n Intl.DateTimeFormat, this.opts\n );\n return dtf.format(this.value);\n } catch (e) {\n // XXX Report the error.\n return this.value;\n }\n }\n}\n\nexport class FluentSymbol extends FluentType {\n toString() {\n return this.value;\n }\n\n /**\n * Compare the object with another instance of a FluentType.\n *\n * @param {MessageContext} ctx\n * @param {FluentType} other\n * @returns {bool}\n */\n match(ctx, other) {\n if (other instanceof FluentSymbol) {\n return this.value === other.value;\n } else if (typeof other === \"string\") {\n return this.value === other;\n } else if (other instanceof FluentNumber) {\n const pr = ctx._memoizeIntlObject(\n Intl.PluralRules, other.opts\n );\n return this.value === pr.select(other.value);\n }\n return false;\n }\n}\n","/**\n * @overview\n *\n * The FTL resolver ships with a number of functions built-in.\n *\n * Each function take two arguments:\n * - args - an array of positional args\n * - opts - an object of key-value args\n *\n * Arguments to functions are guaranteed to already be instances of\n * `FluentType`. Functions must return `FluentType` objects as well.\n */\n\nimport { FluentNumber, FluentDateTime } from \"./types\";\n\nexport default {\n \"NUMBER\": ([arg], opts) =>\n new FluentNumber(arg.valueOf(), merge(arg.opts, opts)),\n \"DATETIME\": ([arg], opts) =>\n new FluentDateTime(arg.valueOf(), merge(arg.opts, opts)),\n};\n\nfunction merge(argopts, opts) {\n return Object.assign({}, argopts, values(opts));\n}\n\nfunction values(opts) {\n const unwrapped = {};\n for (const [name, opt] of Object.entries(opts)) {\n unwrapped[name] = opt.valueOf();\n }\n return unwrapped;\n}\n","/**\n * @overview\n *\n * The role of the Fluent resolver is to format a translation object to an\n * instance of `FluentType` or an array of instances.\n *\n * Translations can contain references to other messages or external arguments,\n * conditional logic in form of select expressions, traits which describe their\n * grammatical features, and can use Fluent builtins which make use of the\n * `Intl` formatters to format numbers, dates, lists and more into the\n * context's language. See the documentation of the Fluent syntax for more\n * information.\n *\n * In case of errors the resolver will try to salvage as much of the\n * translation as possible. In rare situations where the resolver didn't know\n * how to recover from an error it will return an instance of `FluentNone`.\n *\n * `MessageReference`, `VariantExpression`, `AttributeExpression` and\n * `SelectExpression` resolve to raw Runtime Entries objects and the result of\n * the resolution needs to be passed into `Type` to get their real value.\n * This is useful for composing expressions. Consider:\n *\n * brand-name[nominative]\n *\n * which is a `VariantExpression` with properties `id: MessageReference` and\n * `key: Keyword`. If `MessageReference` was resolved eagerly, it would\n * instantly resolve to the value of the `brand-name` message. Instead, we\n * want to get the message object and look for its `nominative` variant.\n *\n * All other expressions (except for `FunctionReference` which is only used in\n * `CallExpression`) resolve to an instance of `FluentType`. The caller should\n * use the `toString` method to convert the instance to a native value.\n *\n *\n * All functions in this file pass around a special object called `env`.\n * This object stores a set of elements used by all resolve functions:\n *\n * * {MessageContext} ctx\n * context for which the given resolution is happening\n * * {Object} args\n * list of developer provided arguments that can be used\n * * {Array} errors\n * list of errors collected while resolving\n * * {WeakSet} dirty\n * Set of patterns already encountered during this resolution.\n * This is used to prevent cyclic resolutions.\n */\n\n\nimport { FluentType, FluentNone, FluentNumber, FluentDateTime, FluentSymbol }\n from \"./types\";\nimport builtins from \"./builtins\";\n\n// Prevent expansion of too long placeables.\nconst MAX_PLACEABLE_LENGTH = 2500;\n\n// Unicode bidi isolation characters.\nconst FSI = \"\\u2068\";\nconst PDI = \"\\u2069\";\n\n\n/**\n * Helper for choosing the default value from a set of members.\n *\n * Used in SelectExpressions and Type.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} members\n * Hash map of variants from which the default value is to be selected.\n * @param {Number} def\n * The index of the default variant.\n * @returns {FluentType}\n * @private\n */\nfunction DefaultMember(env, members, def) {\n if (members[def]) {\n return members[def];\n }\n\n const { errors } = env;\n errors.push(new RangeError(\"No default\"));\n return new FluentNone();\n}\n\n\n/**\n * Resolve a reference to another message.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} id\n * The identifier of the message to be resolved.\n * @param {String} id.name\n * The name of the identifier.\n * @returns {FluentType}\n * @private\n */\nfunction MessageReference(env, {name}) {\n const { ctx, errors } = env;\n const message = name.startsWith(\"-\")\n ? ctx._terms.get(name)\n : ctx._messages.get(name);\n\n if (!message) {\n const err = name.startsWith(\"-\")\n ? new ReferenceError(`Unknown term: ${name}`)\n : new ReferenceError(`Unknown message: ${name}`);\n errors.push(err);\n return new FluentNone(name);\n }\n\n return message;\n}\n\n/**\n * Resolve a variant expression to the variant object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {Object} expr.id\n * An Identifier of a message for which the variant is resolved.\n * @param {Object} expr.id.name\n * Name a message for which the variant is resolved.\n * @param {Object} expr.key\n * Variant key to be resolved.\n * @returns {FluentType}\n * @private\n */\nfunction VariantExpression(env, {id, key}) {\n const message = MessageReference(env, id);\n if (message instanceof FluentNone) {\n return message;\n }\n\n const { ctx, errors } = env;\n const keyword = Type(env, key);\n\n function isVariantList(node) {\n return Array.isArray(node) &&\n node[0].type === \"sel\" &&\n node[0].exp === null;\n }\n\n if (isVariantList(message.val)) {\n // Match the specified key against keys of each variant, in order.\n for (const variant of message.val[0].vars) {\n const variantKey = Type(env, variant.key);\n if (keyword.match(ctx, variantKey)) {\n return variant;\n }\n }\n }\n\n errors.push(new ReferenceError(`Unknown variant: ${keyword.toString(ctx)}`));\n return Type(env, message);\n}\n\n\n/**\n * Resolve an attribute expression to the attribute object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.id\n * An ID of a message for which the attribute is resolved.\n * @param {String} expr.name\n * Name of the attribute to be resolved.\n * @returns {FluentType}\n * @private\n */\nfunction AttributeExpression(env, {id, name}) {\n const message = MessageReference(env, id);\n if (message instanceof FluentNone) {\n return message;\n }\n\n if (message.attrs) {\n // Match the specified name against keys of each attribute.\n for (const attrName in message.attrs) {\n if (name === attrName) {\n return message.attrs[name];\n }\n }\n }\n\n const { errors } = env;\n errors.push(new ReferenceError(`Unknown attribute: ${name}`));\n return Type(env, message);\n}\n\n/**\n * Resolve a select expression to the member object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.exp\n * Selector expression\n * @param {Array} expr.vars\n * List of variants for the select expression.\n * @param {Number} expr.def\n * Index of the default variant.\n * @returns {FluentType}\n * @private\n */\nfunction SelectExpression(env, {exp, vars, def}) {\n if (exp === null) {\n return DefaultMember(env, vars, def);\n }\n\n const selector = Type(env, exp);\n if (selector instanceof FluentNone) {\n return DefaultMember(env, vars, def);\n }\n\n // Match the selector against keys of each variant, in order.\n for (const variant of vars) {\n const key = Type(env, variant.key);\n const keyCanMatch =\n key instanceof FluentNumber || key instanceof FluentSymbol;\n\n if (!keyCanMatch) {\n continue;\n }\n\n const { ctx } = env;\n\n if (key.match(ctx, selector)) {\n return variant;\n }\n }\n\n return DefaultMember(env, vars, def);\n}\n\n\n/**\n * Resolve expression to a Fluent type.\n *\n * JavaScript strings are a special case. Since they natively have the\n * `toString` method they can be used as if they were a Fluent type without\n * paying the cost of creating a instance of one.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression object to be resolved into a Fluent type.\n * @returns {FluentType}\n * @private\n */\nfunction Type(env, expr) {\n // A fast-path for strings which are the most common case, and for\n // `FluentNone` which doesn't require any additional logic.\n if (typeof expr === \"string\" || expr instanceof FluentNone) {\n return expr;\n }\n\n // The Runtime AST (Entries) encodes patterns (complex strings with\n // placeables) as Arrays.\n if (Array.isArray(expr)) {\n return Pattern(env, expr);\n }\n\n\n switch (expr.type) {\n case \"varname\":\n return new FluentSymbol(expr.name);\n case \"num\":\n return new FluentNumber(expr.val);\n case \"ext\":\n return ExternalArgument(env, expr);\n case \"fun\":\n return FunctionReference(env, expr);\n case \"call\":\n return CallExpression(env, expr);\n case \"ref\": {\n const message = MessageReference(env, expr);\n return Type(env, message);\n }\n case \"attr\": {\n const attr = AttributeExpression(env, expr);\n return Type(env, attr);\n }\n case \"var\": {\n const variant = VariantExpression(env, expr);\n return Type(env, variant);\n }\n case \"sel\": {\n const member = SelectExpression(env, expr);\n return Type(env, member);\n }\n case undefined: {\n // If it's a node with a value, resolve the value.\n if (expr.val !== null && expr.val !== undefined) {\n return Type(env, expr.val);\n }\n\n const { errors } = env;\n errors.push(new RangeError(\"No value\"));\n return new FluentNone();\n }\n default:\n return new FluentNone();\n }\n}\n\n/**\n * Resolve a reference to an external argument.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.name\n * Name of an argument to be returned.\n * @returns {FluentType}\n * @private\n */\nfunction ExternalArgument(env, {name}) {\n const { args, errors } = env;\n\n if (!args || !args.hasOwnProperty(name)) {\n errors.push(new ReferenceError(`Unknown external: ${name}`));\n return new FluentNone(name);\n }\n\n const arg = args[name];\n\n // Return early if the argument already is an instance of FluentType.\n if (arg instanceof FluentType) {\n return arg;\n }\n\n // Convert the argument to a Fluent type.\n switch (typeof arg) {\n case \"string\":\n return arg;\n case \"number\":\n return new FluentNumber(arg);\n case \"object\":\n if (arg instanceof Date) {\n return new FluentDateTime(arg);\n }\n default:\n errors.push(\n new TypeError(`Unsupported external type: ${name}, ${typeof arg}`)\n );\n return new FluentNone(name);\n }\n}\n\n/**\n * Resolve a reference to a function.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.name\n * Name of the function to be returned.\n * @returns {Function}\n * @private\n */\nfunction FunctionReference(env, {name}) {\n // Some functions are built-in. Others may be provided by the runtime via\n // the `MessageContext` constructor.\n const { ctx: { _functions }, errors } = env;\n const func = _functions[name] || builtins[name];\n\n if (!func) {\n errors.push(new ReferenceError(`Unknown function: ${name}()`));\n return new FluentNone(`${name}()`);\n }\n\n if (typeof func !== \"function\") {\n errors.push(new TypeError(`Function ${name}() is not callable`));\n return new FluentNone(`${name}()`);\n }\n\n return func;\n}\n\n/**\n * Resolve a call to a Function with positional and key-value arguments.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {Object} expr.fun\n * FTL Function object.\n * @param {Array} expr.args\n * FTL Function argument list.\n * @returns {FluentType}\n * @private\n */\nfunction CallExpression(env, {fun, args}) {\n const callee = FunctionReference(env, fun);\n\n if (callee instanceof FluentNone) {\n return callee;\n }\n\n const posargs = [];\n const keyargs = {};\n\n for (const arg of args) {\n if (arg.type === \"narg\") {\n keyargs[arg.name] = Type(env, arg.val);\n } else {\n posargs.push(Type(env, arg));\n }\n }\n\n try {\n return callee(posargs, keyargs);\n } catch (e) {\n // XXX Report errors.\n return new FluentNone();\n }\n}\n\n/**\n * Resolve a pattern (a complex string with placeables).\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Array} ptn\n * Array of pattern elements.\n * @returns {Array}\n * @private\n */\nfunction Pattern(env, ptn) {\n const { ctx, dirty, errors } = env;\n\n if (dirty.has(ptn)) {\n errors.push(new RangeError(\"Cyclic reference\"));\n return new FluentNone();\n }\n\n // Tag the pattern as dirty for the purpose of the current resolution.\n dirty.add(ptn);\n const result = [];\n\n // Wrap interpolations with Directional Isolate Formatting characters\n // only when the pattern has more than one element.\n const useIsolating = ctx._useIsolating && ptn.length > 1;\n\n for (const elem of ptn) {\n if (typeof elem === \"string\") {\n result.push(elem);\n continue;\n }\n\n const part = Type(env, elem).toString(ctx);\n\n if (useIsolating) {\n result.push(FSI);\n }\n\n if (part.length > MAX_PLACEABLE_LENGTH) {\n errors.push(\n new RangeError(\n \"Too many characters in placeable \" +\n `(${part.length}, max allowed is ${MAX_PLACEABLE_LENGTH})`\n )\n );\n result.push(part.slice(MAX_PLACEABLE_LENGTH));\n } else {\n result.push(part);\n }\n\n if (useIsolating) {\n result.push(PDI);\n }\n }\n\n dirty.delete(ptn);\n return result.join(\"\");\n}\n\n/**\n * Format a translation into a string.\n *\n * @param {MessageContext} ctx\n * A MessageContext instance which will be used to resolve the\n * contextual information of the message.\n * @param {Object} args\n * List of arguments provided by the developer which can be accessed\n * from the message.\n * @param {Object} message\n * An object with the Message to be resolved.\n * @param {Array} errors\n * An error array that any encountered errors will be appended to.\n * @returns {FluentType}\n */\nexport default function resolve(ctx, args, message, errors = []) {\n const env = {\n ctx, args, errors, dirty: new WeakSet()\n };\n return Type(env, message).toString(ctx);\n}\n","import resolve from \"./resolver\";\nimport parse from \"./parser\";\n\n/**\n * Message contexts are single-language stores of translations. They are\n * responsible for parsing translation resources in the Fluent syntax and can\n * format translation units (entities) to strings.\n *\n * Always use `MessageContext.format` to retrieve translation units from\n * a context. Translations can contain references to other entities or\n * external arguments, conditional logic in form of select expressions, traits\n * which describe their grammatical features, and can use Fluent builtins which\n * make use of the `Intl` formatters to format numbers, dates, lists and more\n * into the context's language. See the documentation of the Fluent syntax for\n * more information.\n */\nexport class MessageContext {\n\n /**\n * Create an instance of `MessageContext`.\n *\n * The `locales` argument is used to instantiate `Intl` formatters used by\n * translations. The `options` object can be used to configure the context.\n *\n * Examples:\n *\n * const ctx = new MessageContext(locales);\n *\n * const ctx = new MessageContext(locales, { useIsolating: false });\n *\n * const ctx = new MessageContext(locales, {\n * useIsolating: true,\n * functions: {\n * NODE_ENV: () => process.env.NODE_ENV\n * }\n * });\n *\n * Available options:\n *\n * - `functions` - an object of additional functions available to\n * translations as builtins.\n *\n * - `useIsolating` - boolean specifying whether to use Unicode isolation\n * marks (FSI, PDI) for bidi interpolations.\n *\n * @param {string|Array} locales - Locale or locales of the context\n * @param {Object} [options]\n * @returns {MessageContext}\n */\n constructor(locales, { functions = {}, useIsolating = true } = {}) {\n this.locales = Array.isArray(locales) ? locales : [locales];\n\n this._terms = new Map();\n this._messages = new Map();\n this._functions = functions;\n this._useIsolating = useIsolating;\n this._intls = new WeakMap();\n }\n\n /*\n * Return an iterator over public `[id, message]` pairs.\n *\n * @returns {Iterator}\n */\n get messages() {\n return this._messages[Symbol.iterator]();\n }\n\n /*\n * Check if a message is present in the context.\n *\n * @param {string} id - The identifier of the message to check.\n * @returns {bool}\n */\n hasMessage(id) {\n return this._messages.has(id);\n }\n\n /*\n * Return the internal representation of a message.\n *\n * The internal representation should only be used as an argument to\n * `MessageContext.format`.\n *\n * @param {string} id - The identifier of the message to check.\n * @returns {Any}\n */\n getMessage(id) {\n return this._messages.get(id);\n }\n\n /**\n * Add a translation resource to the context.\n *\n * The translation resource must use the Fluent syntax. It will be parsed by\n * the context and each translation unit (message) will be available in the\n * context by its identifier.\n *\n * ctx.addMessages('foo = Foo');\n * ctx.getMessage('foo');\n *\n * // Returns a raw representation of the 'foo' message.\n *\n * Parsed entities should be formatted with the `format` method in case they\n * contain logic (references, select expressions etc.).\n *\n * @param {string} source - Text resource with translations.\n * @returns {Array}\n */\n addMessages(source) {\n const [entries, errors] = parse(source);\n for (const id in entries) {\n if (id.startsWith(\"-\")) {\n // Identifiers starting with a dash (-) define terms. Terms are private\n // and cannot be retrieved from MessageContext.\n if (this._terms.has(id)) {\n errors.push(`Attempt to override an existing term: \"${id}\"`);\n continue;\n }\n this._terms.set(id, entries[id]);\n } else {\n if (this._messages.has(id)) {\n errors.push(`Attempt to override an existing message: \"${id}\"`);\n continue;\n }\n this._messages.set(id, entries[id]);\n }\n }\n\n return errors;\n }\n\n /**\n * Format a message to a string or null.\n *\n * Format a raw `message` from the context into a string (or a null if it has\n * a null value). `args` will be used to resolve references to external\n * arguments inside of the translation.\n *\n * In case of errors `format` will try to salvage as much of the translation\n * as possible and will still return a string. For performance reasons, the\n * encountered errors are not returned but instead are appended to the\n * `errors` array passed as the third argument.\n *\n * const errors = [];\n * ctx.addMessages('hello = Hello, { $name }!');\n * const hello = ctx.getMessage('hello');\n * ctx.format(hello, { name: 'Jane' }, errors);\n *\n * // Returns 'Hello, Jane!' and `errors` is empty.\n *\n * ctx.format(hello, undefined, errors);\n *\n * // Returns 'Hello, name!' and `errors` is now:\n *\n * []\n *\n * @param {Object | string} message\n * @param {Object | undefined} args\n * @param {Array} errors\n * @returns {?string}\n */\n format(message, args, errors) {\n // optimize entities which are simple strings with no attributes\n if (typeof message === \"string\") {\n return message;\n }\n\n // optimize simple-string entities with attributes\n if (typeof message.val === \"string\") {\n return message.val;\n }\n\n // optimize entities with null values\n if (message.val === undefined) {\n return null;\n }\n\n return resolve(this, args, message, errors);\n }\n\n _memoizeIntlObject(ctor, opts) {\n const cache = this._intls.get(ctor) || {};\n const id = JSON.stringify(opts);\n\n if (!cache[id]) {\n cache[id] = new ctor(this.locales, opts);\n this._intls.set(ctor, cache);\n }\n\n return cache[id];\n }\n}\n","/*\n * CachedIterable caches the elements yielded by an iterable.\n *\n * It can be used to iterate over an iterable many times without depleting the\n * iterable.\n */\nexport default class CachedIterable {\n /**\n * Create an `CachedIterable` instance.\n *\n * @param {Iterable} iterable\n * @returns {CachedIterable}\n */\n constructor(iterable) {\n if (Symbol.asyncIterator in Object(iterable)) {\n this.iterator = iterable[Symbol.asyncIterator]();\n } else if (Symbol.iterator in Object(iterable)) {\n this.iterator = iterable[Symbol.iterator]();\n } else {\n throw new TypeError(\"Argument must implement the iteration protocol.\");\n }\n\n this.seen = [];\n }\n\n [Symbol.iterator]() {\n const { seen, iterator } = this;\n let cur = 0;\n\n return {\n next() {\n if (seen.length <= cur) {\n seen.push(iterator.next());\n }\n return seen[cur++];\n }\n };\n }\n\n [Symbol.asyncIterator]() {\n const { seen, iterator } = this;\n let cur = 0;\n\n return {\n async next() {\n if (seen.length <= cur) {\n seen.push(await iterator.next());\n }\n return seen[cur++];\n }\n };\n }\n\n /**\n * This method allows user to consume the next element from the iterator\n * into the cache.\n */\n touchNext() {\n const { seen, iterator } = this;\n if (seen.length === 0 || seen[seen.length - 1].done === false) {\n seen.push(iterator.next());\n }\n }\n}\n","/*\n * @overview\n *\n * Functions for managing ordered sequences of MessageContexts.\n *\n * An ordered iterable of MessageContext instances can represent the current\n * negotiated fallback chain of languages. This iterable can be used to find\n * the best existing translation for a given identifier.\n *\n * The mapContext* methods can be used to find the first MessageContext in the\n * given iterable which contains the translation with the given identifier. If\n * the iterable is ordered according to the result of a language negotiation\n * the returned MessageContext contains the best available translation.\n *\n * A simple function which formats translations based on the identifier might\n * be implemented as follows:\n *\n * formatString(id, args) {\n * const ctx = mapContextSync(contexts, id);\n *\n * if (ctx === null) {\n * return id;\n * }\n *\n * const msg = ctx.getMessage(id);\n * return ctx.format(msg, args);\n * }\n *\n * In order to pass an iterator to mapContext*, wrap it in CachedIterable.\n * This allows multiple calls to mapContext* without advancing and eventually\n * depleting the iterator.\n *\n * function *generateMessages() {\n * // Some lazy logic for yielding MessageContexts.\n * yield *[ctx1, ctx2];\n * }\n *\n * const contexts = new CachedIterable(generateMessages());\n * const ctx = mapContextSync(contexts, id);\n *\n */\n\n/*\n * Synchronously map an identifier or an array of identifiers to the best\n * `MessageContext` instance(s).\n *\n * @param {Iterable} iterable\n * @param {string|Array} ids\n * @returns {MessageContext|Array}\n */\nexport function mapContextSync(iterable, ids) {\n if (!Array.isArray(ids)) {\n return getContextForId(iterable, ids);\n }\n\n return ids.map(\n id => getContextForId(iterable, id)\n );\n}\n\n/*\n * Find the best `MessageContext` with the translation for `id`.\n */\nfunction getContextForId(iterable, id) {\n for (const context of iterable) {\n if (context.hasMessage(id)) {\n return context;\n }\n }\n\n return null;\n}\n\n/*\n * Asynchronously map an identifier or an array of identifiers to the best\n * `MessageContext` instance(s).\n *\n * @param {AsyncIterable} iterable\n * @param {string|Array} ids\n * @returns {Promise>}\n */\nexport async function mapContextAsync(iterable, ids) {\n if (!Array.isArray(ids)) {\n for await (const context of iterable) {\n if (context.hasMessage(ids)) {\n return context;\n }\n }\n }\n\n let remainingCount = ids.length;\n const foundContexts = new Array(remainingCount).fill(null);\n\n for await (const context of iterable) {\n // XXX Switch to const [index, id] of id.entries() when we move to Babel 7.\n // See https://github.com/babel/babel/issues/5880.\n for (let index = 0; index < ids.length; index++) {\n const id = ids[index];\n if (!foundContexts[index] && context.hasMessage(id)) {\n foundContexts[index] = context;\n remainingCount--;\n }\n\n // Return early when all ids have been mapped to contexts.\n if (remainingCount === 0) {\n return foundContexts;\n }\n }\n }\n\n return foundContexts;\n}\n","function nonBlank(line) {\n return !/^\\s*$/.test(line);\n}\n\nfunction countIndent(line) {\n const [indent] = line.match(/^\\s*/);\n return indent.length;\n}\n\n/**\n * Template literal tag for dedenting FTL code.\n *\n * Strip the common indent of non-blank lines. Remove blank lines.\n *\n * @param {Array} strings\n */\nexport function ftl(strings) {\n const [code] = strings;\n const lines = code.split(\"\\n\").filter(nonBlank);\n const indents = lines.map(countIndent);\n const common = Math.min(...indents);\n const indent = new RegExp(`^\\\\s{${common}}`);\n\n return lines.map(\n line => line.replace(indent, \"\")\n ).join(\"\\n\");\n}\n","/*\n * @module fluent\n * @overview\n *\n * `fluent` is a JavaScript implementation of Project Fluent, a localization\n * framework designed to unleash the expressive power of the natural language.\n *\n */\n\nexport { default as _parse } from \"./parser\";\n\nexport { MessageContext } from \"./context\";\nexport {\n FluentType as MessageArgument,\n FluentNumber as MessageNumberArgument,\n FluentDateTime as MessageDateTimeArgument,\n} from \"./types\";\n\nexport { default as CachedIterable } from \"./cached_iterable\";\nexport { mapContextSync, mapContextAsync } from \"./fallback\";\n\nexport { ftl } from \"./util\";\n","import { CachedIterable, mapContextSync } from \"fluent\";\n\n/*\n * `ReactLocalization` handles translation formatting and fallback.\n *\n * The current negotiated fallback chain of languages is stored in the\n * `ReactLocalization` instance in form of an iterable of `MessageContext`\n * instances. This iterable is used to find the best existing translation for\n * a given identifier.\n *\n * `Localized` components must subscribe to the changes of the\n * `ReactLocalization`'s fallback chain. When the fallback chain changes (the\n * `messages` iterable is set anew), all subscribed compontent must relocalize.\n *\n * The `ReactLocalization` class instances are exposed to `Localized` elements\n * via the `LocalizationProvider` component.\n */\nexport default class ReactLocalization {\n constructor(messages) {\n this.contexts = new CachedIterable(messages);\n this.subs = new Set();\n }\n\n /*\n * Subscribe a `Localized` component to changes of `messages`.\n */\n subscribe(comp) {\n this.subs.add(comp);\n }\n\n /*\n * Unsubscribe a `Localized` component from `messages` changes.\n */\n unsubscribe(comp) {\n this.subs.delete(comp);\n }\n\n /*\n * Set a new `messages` iterable and trigger the retranslation.\n */\n setMessages(messages) {\n this.contexts = new CachedIterable(messages);\n\n // Update all subscribed Localized components.\n this.subs.forEach(comp => comp.relocalize());\n }\n\n getMessageContext(id) {\n return mapContextSync(this.contexts, id);\n }\n\n formatCompound(mcx, msg, args) {\n const value = mcx.format(msg, args);\n\n if (msg.attrs) {\n var attrs = {};\n for (const name of Object.keys(msg.attrs)) {\n attrs[name] = mcx.format(msg.attrs[name], args);\n }\n }\n\n return { value, attrs };\n }\n\n /*\n * Find a translation by `id` and format it to a string using `args`.\n */\n getString(id, args, fallback) {\n const mcx = this.getMessageContext(id);\n\n if (mcx === null) {\n return fallback || id;\n }\n\n const msg = mcx.getMessage(id);\n return mcx.format(msg, args);\n }\n}\n\nexport function isReactLocalization(props, propName) {\n const prop = props[propName];\n\n if (prop instanceof ReactLocalization) {\n return null;\n }\n\n return new Error(\n `The ${propName} context field must be an instance of ReactLocalization.`\n );\n}\n","import { Component, Children } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport ReactLocalization, { isReactLocalization} from \"./localization\";\n\n/*\n * The Provider component for the `ReactLocalization` class.\n *\n * Exposes a `ReactLocalization` instance to all descendants via React's\n * context feature. It makes translations available to all localizable\n * elements in the descendant's render tree without the need to pass them\n * explicitly.\n *\n * \n * …\n * \n *\n * The `LocalizationProvider` component takes one prop: `messages`. It should\n * be an iterable of `MessageContext` instances in order of the user's\n * preferred languages. The `MessageContext` instances will be used by\n * `ReactLocalization` to format translations. If a translation is missing in\n * one instance, `ReactLocalization` will fall back to the next one.\n */\nexport default class LocalizationProvider extends Component {\n constructor(props) {\n super(props);\n const { messages } = props;\n\n if (messages === undefined) {\n throw new Error(\"LocalizationProvider must receive the messages prop.\");\n }\n\n if (!messages[Symbol.iterator]) {\n throw new Error(\"The messages prop must be an iterable.\");\n }\n\n this.l10n = new ReactLocalization(messages);\n }\n\n getChildContext() {\n return {\n l10n: this.l10n\n };\n }\n\n componentWillReceiveProps(next) {\n const { messages } = next;\n\n if (messages !== this.props.messages) {\n this.l10n.setMessages(messages);\n }\n }\n\n render() {\n return Children.only(this.props.children);\n }\n}\n\nLocalizationProvider.childContextTypes = {\n l10n: isReactLocalization\n};\n\nLocalizationProvider.propTypes = {\n children: PropTypes.element.isRequired,\n messages: isIterable\n};\n\nfunction isIterable(props, propName, componentName) {\n const prop = props[propName];\n\n if (Symbol.iterator in Object(prop)) {\n return null;\n }\n\n return new Error(\n `The ${propName} prop supplied to ${componentName} must be an iterable.`\n );\n}\n","import { createElement, Component } from \"react\";\n\nimport { isReactLocalization } from \"./localization\";\n\nexport default function withLocalization(Inner) {\n class WithLocalization extends Component {\n componentDidMount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.subscribe(this);\n }\n }\n\n componentWillUnmount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.unsubscribe(this);\n }\n }\n\n /*\n * Rerender this component in a new language.\n */\n relocalize() {\n // When the `ReactLocalization`'s fallback chain changes, update the\n // component.\n this.forceUpdate();\n }\n\n /*\n * Find a translation by `id` and format it to a string using `args`.\n */\n getString(id, args, fallback) {\n const { l10n } = this.context;\n\n if (!l10n) {\n return fallback || id;\n }\n\n return l10n.getString(id, args, fallback);\n }\n\n render() {\n return createElement(\n Inner,\n Object.assign(\n // getString needs to be re-bound on updates to trigger a re-render\n { getString: (...args) => this.getString(...args) },\n this.props\n )\n );\n }\n }\n\n WithLocalization.displayName = `WithLocalization(${displayName(Inner)})`;\n\n WithLocalization.contextTypes = {\n l10n: isReactLocalization\n };\n\n return WithLocalization;\n}\n\nfunction displayName(component) {\n return component.displayName || component.name || \"Component\";\n}\n","/* eslint-env browser */\n\nconst TEMPLATE = document.createElement(\"template\");\n\nexport function parseMarkup(str) {\n TEMPLATE.innerHTML = str;\n return TEMPLATE.content;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in this directory.\n */\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true,\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\nexport default omittedCloseTags;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in this directory.\n */\n\nimport omittedCloseTags from './omittedCloseTags';\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = {\n menuitem: true,\n ...omittedCloseTags,\n};\n\nexport default voidElementTags;\n","import { isValidElement, cloneElement, Component, Children } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { isReactLocalization } from \"./localization\";\nimport { parseMarkup } from \"./markup\";\nimport VOID_ELEMENTS from \"../vendor/voidElementTags\";\n\n// Match the opening angle bracket (<) in HTML tags, and HTML entities like\n// &, &, &.\nconst reMarkup = /<|?\\w+;/;\n\n/*\n * Prepare props passed to `Localized` for formatting.\n */\nfunction toArguments(props) {\n const args = {};\n const elems = {};\n\n for (const [propname, propval] of Object.entries(props)) {\n if (propname.startsWith(\"$\")) {\n const name = propname.substr(1);\n args[name] = propval;\n } else if (isValidElement(propval)) {\n // We'll try to match localNames of elements found in the translation with\n // names of elements passed as props. localNames are always lowercase.\n const name = propname.toLowerCase();\n elems[name] = propval;\n }\n }\n\n return [args, elems];\n}\n\n/*\n * The `Localized` class renders its child with translated props and children.\n *\n * \n * {'Hello, world!'}
\n * \n *\n * The `id` prop should be the unique identifier of the translation. Any\n * attributes found in the translation will be applied to the wrapped element.\n *\n * Arguments to the translation can be passed as `$`-prefixed props on\n * `Localized`.\n *\n * \n * {'Hello, { $username }!'}
\n * \n *\n * It's recommended that the contents of the wrapped component be a string\n * expression. The string will be used as the ultimate fallback if no\n * translation is available. It also makes it easy to grep for strings in the\n * source code.\n */\nexport default class Localized extends Component {\n componentDidMount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.subscribe(this);\n }\n }\n\n componentWillUnmount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.unsubscribe(this);\n }\n }\n\n /*\n * Rerender this component in a new language.\n */\n relocalize() {\n // When the `ReactLocalization`'s fallback chain changes, update the\n // component.\n this.forceUpdate();\n }\n\n render() {\n const { l10n } = this.context;\n const { id, attrs, children } = this.props;\n const elem = Children.only(children);\n\n if (!l10n) {\n // Use the wrapped component as fallback.\n return elem;\n }\n\n const mcx = l10n.getMessageContext(id);\n\n if (mcx === null) {\n // Use the wrapped component as fallback.\n return elem;\n }\n\n const msg = mcx.getMessage(id);\n const [args, elems] = toArguments(this.props);\n const {\n value: messageValue,\n attrs: messageAttrs\n } = l10n.formatCompound(mcx, msg, args);\n\n // The default is to forbid all message attributes. If the attrs prop exists\n // on the Localized instance, only set message attributes which have been\n // explicitly allowed by the developer.\n if (attrs && messageAttrs) {\n var localizedProps = {};\n\n for (const [name, value] of Object.entries(messageAttrs)) {\n if (attrs[name]) {\n localizedProps[name] = value;\n }\n }\n }\n\n // If the wrapped component is a known void element, explicitly dismiss the\n // message value and do not pass it to cloneElement in order to avoid the\n // \"void element tags must neither have `children` nor use\n // `dangerouslySetInnerHTML`\" error.\n if (elem.type in VOID_ELEMENTS) {\n return cloneElement(elem, localizedProps);\n }\n\n // If the message has a null value, we're only interested in its attributes.\n // Do not pass the null value to cloneElement as it would nuke all children\n // of the wrapped component.\n if (messageValue === null) {\n return cloneElement(elem, localizedProps);\n }\n\n // If the message value doesn't contain any markup nor any HTML entities,\n // insert it as the only child of the wrapped component.\n if (!reMarkup.test(messageValue)) {\n return cloneElement(elem, localizedProps, messageValue);\n }\n\n // If the message contains markup, parse it and try to match the children\n // found in the translation with the props passed to this Localized.\n const translationNodes = Array.from(parseMarkup(messageValue).childNodes);\n const translatedChildren = translationNodes.map(childNode => {\n if (childNode.nodeType === childNode.TEXT_NODE) {\n return childNode.textContent;\n }\n\n // If the child is not expected just take its textContent.\n if (!elems.hasOwnProperty(childNode.localName)) {\n return childNode.textContent;\n }\n\n const sourceChild = elems[childNode.localName];\n\n // If the element passed as a prop to is a known void element,\n // explicitly dismiss any textContent which might have accidentally been\n // defined in the translation to prevent the \"void element tags must not\n // have children\" error.\n if (sourceChild.type in VOID_ELEMENTS) {\n return sourceChild;\n }\n\n // TODO Protect contents of elements wrapped in \n // https://github.com/projectfluent/fluent.js/issues/184\n // TODO Control localizable attributes on elements passed as props\n // https://github.com/projectfluent/fluent.js/issues/185\n return cloneElement(sourceChild, null, childNode.textContent);\n });\n\n return cloneElement(elem, localizedProps, ...translatedChildren);\n }\n}\n\nLocalized.contextTypes = {\n l10n: isReactLocalization\n};\n\nLocalized.propTypes = {\n children: PropTypes.element.isRequired,\n};\n","/*\n * @module fluent-react\n * @overview\n *\n\n * `fluent-react` provides React bindings for Fluent. It takes advantage of\n * React's Components system and the virtual DOM. Translations are exposed to\n * components via the provider pattern.\n *\n * \n * \n * {'Hello, world!'}
\n * \n * \n *\n * Consult the documentation of the `LocalizationProvider` and the `Localized`\n * components for more information.\n */\n\nexport { default as LocalizationProvider } from \"./provider\";\nexport { default as withLocalization } from \"./with_localization\";\nexport { default as Localized } from \"./localized\";\nexport { default as ReactLocalization, isReactLocalization }\n from \"./localization\";\n","this.Dedupe = class Dedupe {\n constructor(createKey) {\n this.createKey = createKey || this.defaultCreateKey;\n }\n\n defaultCreateKey(item) {\n return item;\n }\n\n /**\n * Dedupe any number of grouped elements favoring those from earlier groups.\n *\n * @param {Array} groups Contains an arbitrary number of arrays of elements.\n * @returns {Array} A matching array of each provided group deduped.\n */\n group(...groups) {\n const globalKeys = new Set();\n const result = [];\n for (const values of groups) {\n const valueMap = new Map();\n for (const value of values) {\n const key = this.createKey(value);\n if (!globalKeys.has(key) && !valueMap.has(key)) {\n valueMap.set(key, value);\n }\n }\n result.push(valueMap);\n valueMap.forEach((value, key) => globalKeys.add(key));\n }\n return result.map(m => Array.from(m.values()));\n }\n};\n\nconst EXPORTED_SYMBOLS = [\"Dedupe\"];\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nconst {actionTypes: at} = ChromeUtils.import(\"resource://activity-stream/common/Actions.jsm\", {});\nconst {Dedupe} = ChromeUtils.import(\"resource://activity-stream/common/Dedupe.jsm\", {});\n\nconst TOP_SITES_DEFAULT_ROWS = 1;\nconst TOP_SITES_MAX_SITES_PER_ROW = 8;\n\nconst dedupe = new Dedupe(site => site && site.url);\n\nconst INITIAL_STATE = {\n App: {\n // Have we received real data from the app yet?\n initialized: false,\n },\n ASRouter: {\n initialized: false,\n allowLegacySnippets: null,\n },\n Snippets: {initialized: false},\n TopSites: {\n // Have we received real data from history yet?\n initialized: false,\n // The history (and possibly default) links\n rows: [],\n // Used in content only to dispatch action to TopSiteForm.\n editForm: null,\n // Used in content only to open the SearchShortcutsForm modal.\n showSearchShortcutsForm: false,\n // The list of available search shortcuts.\n searchShortcuts: [],\n },\n Prefs: {\n initialized: false,\n values: {},\n },\n Dialog: {\n visible: false,\n data: {},\n },\n Sections: [],\n Pocket: {\n isUserLoggedIn: null,\n pocketCta: {},\n waitingForSpoc: true,\n },\n};\n\nfunction App(prevState = INITIAL_STATE.App, action) {\n switch (action.type) {\n case at.INIT:\n return Object.assign({}, prevState, action.data || {}, {initialized: true});\n default:\n return prevState;\n }\n}\n\nfunction ASRouter(prevState = INITIAL_STATE.ASRouter, action) {\n switch (action.type) {\n case at.AS_ROUTER_INITIALIZED:\n return {...action.data, initialized: true};\n case at.AS_ROUTER_PREF_CHANGED:\n return {...prevState, ...action.data};\n default:\n return prevState;\n }\n}\n\n/**\n * insertPinned - Inserts pinned links in their specified slots\n *\n * @param {array} a list of links\n * @param {array} a list of pinned links\n * @return {array} resulting list of links with pinned links inserted\n */\nfunction insertPinned(links, pinned) {\n // Remove any pinned links\n const pinnedUrls = pinned.map(link => link && link.url);\n let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));\n newLinks = newLinks.map(link => {\n if (link && link.isPinned) {\n delete link.isPinned;\n delete link.pinIndex;\n }\n return link;\n });\n\n // Then insert them in their specified location\n pinned.forEach((val, index) => {\n if (!val) { return; }\n let link = Object.assign({}, val, {isPinned: true, pinIndex: index});\n if (index > newLinks.length) {\n newLinks[index] = link;\n } else {\n newLinks.splice(index, 0, link);\n }\n });\n\n return newLinks;\n}\n\nfunction TopSites(prevState = INITIAL_STATE.TopSites, action) {\n let hasMatch;\n let newRows;\n switch (action.type) {\n case at.TOP_SITES_UPDATED:\n if (!action.data || !action.data.links) {\n return prevState;\n }\n return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});\n case at.TOP_SITES_PREFS_UPDATED:\n return Object.assign({}, prevState, {pref: action.data.pref});\n case at.TOP_SITES_EDIT:\n return Object.assign({}, prevState, {\n editForm: {\n index: action.data.index,\n previewResponse: null,\n },\n });\n case at.TOP_SITES_CANCEL_EDIT:\n return Object.assign({}, prevState, {editForm: null});\n case at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: true});\n case at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: false});\n case at.PREVIEW_RESPONSE:\n if (!prevState.editForm || action.data.url !== prevState.editForm.previewUrl) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: action.data.preview,\n previewUrl: action.data.url,\n },\n });\n case at.PREVIEW_REQUEST:\n if (!prevState.editForm) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: null,\n previewUrl: action.data.url,\n },\n });\n case at.PREVIEW_REQUEST_CANCEL:\n if (!prevState.editForm) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: null,\n },\n });\n case at.SCREENSHOT_UPDATED:\n newRows = prevState.rows.map(row => {\n if (row && row.url === action.data.url) {\n hasMatch = true;\n return Object.assign({}, row, {screenshot: action.data.screenshot});\n }\n return row;\n });\n return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;\n case at.PLACES_BOOKMARK_ADDED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.map(site => {\n if (site && site.url === action.data.url) {\n const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: dateAdded});\n }\n return site;\n });\n return Object.assign({}, prevState, {rows: newRows});\n case at.PLACES_BOOKMARK_REMOVED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.map(site => {\n if (site && site.url === action.data.url) {\n const newSite = Object.assign({}, site);\n delete newSite.bookmarkGuid;\n delete newSite.bookmarkTitle;\n delete newSite.bookmarkDateCreated;\n return newSite;\n }\n return site;\n });\n return Object.assign({}, prevState, {rows: newRows});\n case at.PLACES_LINK_DELETED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.filter(site => action.data.url !== site.url);\n return Object.assign({}, prevState, {rows: newRows});\n case at.UPDATE_SEARCH_SHORTCUTS:\n return {...prevState, searchShortcuts: action.data.searchShortcuts};\n case at.SNIPPETS_PREVIEW_MODE:\n return {...prevState, rows: []};\n default:\n return prevState;\n }\n}\n\nfunction Dialog(prevState = INITIAL_STATE.Dialog, action) {\n switch (action.type) {\n case at.DIALOG_OPEN:\n return Object.assign({}, prevState, {visible: true, data: action.data});\n case at.DIALOG_CANCEL:\n return Object.assign({}, prevState, {visible: false});\n case at.DELETE_HISTORY_URL:\n return Object.assign({}, INITIAL_STATE.Dialog);\n default:\n return prevState;\n }\n}\n\nfunction Prefs(prevState = INITIAL_STATE.Prefs, action) {\n let newValues;\n switch (action.type) {\n case at.PREFS_INITIAL_VALUES:\n return Object.assign({}, prevState, {initialized: true, values: action.data});\n case at.PREF_CHANGED:\n newValues = Object.assign({}, prevState.values);\n newValues[action.data.name] = action.data.value;\n return Object.assign({}, prevState, {values: newValues});\n default:\n return prevState;\n }\n}\n\nfunction Sections(prevState = INITIAL_STATE.Sections, action) {\n let hasMatch;\n let newState;\n switch (action.type) {\n case at.SECTION_DEREGISTER:\n return prevState.filter(section => section.id !== action.data);\n case at.SECTION_REGISTER:\n // If section exists in prevState, update it\n newState = prevState.map(section => {\n if (section && section.id === action.data.id) {\n hasMatch = true;\n return Object.assign({}, section, action.data);\n }\n return section;\n });\n // Otherwise, append it\n if (!hasMatch) {\n const initialized = !!(action.data.rows && action.data.rows.length > 0);\n const section = Object.assign({title: \"\", rows: [], enabled: false}, action.data, {initialized});\n newState.push(section);\n }\n return newState;\n case at.SECTION_UPDATE:\n newState = prevState.map(section => {\n if (section && section.id === action.data.id) {\n // If the action is updating rows, we should consider initialized to be true.\n // This can be overridden if initialized is defined in the action.data\n const initialized = action.data.rows ? {initialized: true} : {};\n\n // Make sure pinned cards stay at their current position when rows are updated.\n // Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.\n if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {\n const rows = Array.from(action.data.rows);\n section.rows.forEach((card, index) => {\n if (card.pinned) {\n rows.splice(index, 0, card);\n }\n });\n return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));\n }\n\n return Object.assign({}, section, initialized, action.data);\n }\n return section;\n });\n\n if (!action.data.dedupeConfigurations) {\n return newState;\n }\n\n action.data.dedupeConfigurations.forEach(dedupeConf => {\n newState = newState.map(section => {\n if (section.id === dedupeConf.id) {\n const dedupedRows = dedupeConf.dedupeFrom.reduce((rows, dedupeSectionId) => {\n const dedupeSection = newState.find(s => s.id === dedupeSectionId);\n const [, newRows] = dedupe.group(dedupeSection.rows, rows);\n return newRows;\n }, section.rows);\n\n return Object.assign({}, section, {rows: dedupedRows});\n }\n\n return section;\n });\n });\n\n return newState;\n case at.SECTION_UPDATE_CARD:\n return prevState.map(section => {\n if (section && section.id === action.data.id && section.rows) {\n const newRows = section.rows.map(card => {\n if (card.url === action.data.url) {\n return Object.assign({}, card, action.data.options);\n }\n return card;\n });\n return Object.assign({}, section, {rows: newRows});\n }\n return section;\n });\n case at.PLACES_BOOKMARK_ADDED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n // find the item within the rows that is attempted to be bookmarked\n if (item.url === action.data.url) {\n const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n return Object.assign({}, item, {\n bookmarkGuid,\n bookmarkTitle,\n bookmarkDateCreated: dateAdded,\n type: \"bookmark\",\n });\n }\n return item;\n }),\n }));\n case at.PLACES_SAVED_TO_POCKET:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n if (item.url === action.data.url) {\n return Object.assign({}, item, {\n open_url: action.data.open_url,\n pocket_id: action.data.pocket_id,\n title: action.data.title,\n type: \"pocket\",\n });\n }\n return item;\n }),\n }));\n case at.PLACES_BOOKMARK_REMOVED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n // find the bookmark within the rows that is attempted to be removed\n if (item.url === action.data.url) {\n const newSite = Object.assign({}, item);\n delete newSite.bookmarkGuid;\n delete newSite.bookmarkTitle;\n delete newSite.bookmarkDateCreated;\n if (!newSite.type || newSite.type === \"bookmark\") {\n newSite.type = \"history\";\n }\n return newSite;\n }\n return item;\n }),\n }));\n case at.PLACES_LINK_DELETED:\n case at.PLACES_LINK_BLOCKED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section =>\n Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));\n case at.DELETE_FROM_POCKET:\n case at.ARCHIVE_FROM_POCKET:\n return prevState.map(section =>\n Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));\n case at.SNIPPETS_PREVIEW_MODE:\n return prevState.map(section => ({...section, rows: []}));\n default:\n return prevState;\n }\n}\n\nfunction Snippets(prevState = INITIAL_STATE.Snippets, action) {\n switch (action.type) {\n case at.SNIPPETS_DATA:\n return Object.assign({}, prevState, {initialized: true}, action.data);\n case at.SNIPPET_BLOCKED:\n return Object.assign({}, prevState, {blockList: prevState.blockList.concat(action.data)});\n case at.SNIPPETS_BLOCKLIST_CLEARED:\n return Object.assign({}, prevState, {blockList: []});\n case at.SNIPPETS_RESET:\n return INITIAL_STATE.Snippets;\n default:\n return prevState;\n }\n}\n\nfunction Pocket(prevState = INITIAL_STATE.Pocket, action) {\n switch (action.type) {\n case at.POCKET_WAITING_FOR_SPOC:\n return {...prevState, waitingForSpoc: action.data};\n case at.POCKET_LOGGED_IN:\n return {...prevState, isUserLoggedIn: !!action.data};\n case at.POCKET_CTA:\n return {\n ...prevState,\n pocketCta: {\n ctaButton: action.data.cta_button,\n ctaText: action.data.cta_text,\n ctaUrl: action.data.cta_url,\n useCta: action.data.use_cta,\n },\n };\n default:\n return prevState;\n }\n}\n\nthis.INITIAL_STATE = INITIAL_STATE;\nthis.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;\nthis.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;\n\nthis.reducers = {TopSites, App, ASRouter, Snippets, Prefs, Dialog, Sections, Pocket};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n","import React from \"react\";\n\nexport class ModalOverlay extends React.PureComponent {\n componentWillMount() {\n this.setState({active: true});\n document.body.classList.add(\"modal-open\");\n }\n\n componentWillUnmount() {\n document.body.classList.remove(\"modal-open\");\n this.setState({active: false});\n }\n\n render() {\n const {active} = this.state;\n const {title, button_label} = this.props;\n return (\n \n
\n
\n
{title} \n {this.props.children}\n
\n {button_label} \n
\n
\n
\n );\n }\n}\n","import {ModalOverlay} from \"../../components/ModalOverlay/ModalOverlay\";\nimport React from \"react\";\n\nclass OnboardingCard extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n }\n\n onClick() {\n const {props} = this;\n const ping = {\n event: \"CLICK_BUTTON\",\n message_id: props.id,\n id: props.UISurface,\n };\n props.sendUserActionTelemetry(ping);\n props.onAction(props.content.button_action);\n }\n\n render() {\n const {content} = this.props;\n return (\n \n
\n
\n
\n {content.title} \n {content.text}
\n \n
\n {content.button_label} \n \n
\n
\n );\n }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n render() {\n const {props} = this;\n const {button_label, header} = props.extraTemplateStrings;\n return (\n \n \n {props.bundle.map(message => (\n \n ))}\n
\n \n );\n }\n}\n","export const cardContextTypes = {\n history: {\n intlID: \"type_label_visited\",\n icon: \"history-item\",\n },\n bookmark: {\n intlID: \"type_label_bookmarked\",\n icon: \"bookmark-added\",\n },\n trending: {\n intlID: \"type_label_recommended\",\n icon: \"trending\",\n },\n now: {\n intlID: \"type_label_now\",\n icon: \"now\",\n },\n pocket: {\n intlID: \"type_label_pocket\",\n icon: \"pocket\",\n },\n download: {\n intlID: \"type_label_downloaded\",\n icon: \"download\",\n },\n};\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {cardContextTypes} from \"./types\";\nimport {connect} from \"react-redux\";\nimport {GetPlatformString} from \"content-src/lib/link-menu-options\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {ScreenshotUtils} from \"content-src/lib/screenshot-utils\";\n\n// Keep track of pending image loads to only request once\nconst gImageLoading = new Map();\n\n/**\n * Card component.\n * Cards are found within a Section component and contain information about a link such\n * as preview image, page title, page description, and some context about if the page\n * was visited, bookmarked, trending etc...\n * Each Section can make an unordered list of Cards which will create one instane of\n * this class. Each card will then get a context menu which reflects the actions that\n * can be done on this Card.\n */\nexport class _Card extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n activeCard: null,\n imageLoaded: false,\n showContextMenu: false,\n cardImage: null,\n };\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n this.onLinkClick = this.onLinkClick.bind(this);\n }\n\n /**\n * Helper to conditionally load an image and update state when it loads.\n */\n async maybeLoadImage() {\n // No need to load if it's already loaded or no image\n const {cardImage} = this.state;\n if (!cardImage) {\n return;\n }\n\n const imageUrl = cardImage.url;\n if (!this.state.imageLoaded) {\n // Initialize a promise to share a load across multiple card updates\n if (!gImageLoading.has(imageUrl)) {\n const loaderPromise = new Promise((resolve, reject) => {\n const loader = new Image();\n loader.addEventListener(\"load\", resolve);\n loader.addEventListener(\"error\", reject);\n loader.src = imageUrl;\n });\n\n // Save and remove the promise only while it's pending\n gImageLoading.set(imageUrl, loaderPromise);\n loaderPromise.catch(ex => ex).then(() => gImageLoading.delete(imageUrl)).catch();\n }\n\n // Wait for the image whether just started loading or reused promise\n await gImageLoading.get(imageUrl);\n\n // Only update state if we're still waiting to load the original image\n if (ScreenshotUtils.isRemoteImageLocal(this.state.cardImage, this.props.link.image) &&\n !this.state.imageLoaded) {\n this.setState({imageLoaded: true});\n }\n }\n }\n\n /**\n * Helper to obtain the next state based on nextProps and prevState.\n *\n * NOTE: Rename this method to getDerivedStateFromProps when we update React\n * to >= 16.3. We will need to update tests as well. We cannot rename this\n * method to getDerivedStateFromProps now because there is a mismatch in\n * the React version that we are using for both testing and production.\n * (i.e. react-test-render => \"16.3.2\", react => \"16.2.0\").\n *\n * See https://github.com/airbnb/enzyme/blob/master/packages/enzyme-adapter-react-16/package.json#L43.\n */\n static getNextStateFromProps(nextProps, prevState) {\n const {image} = nextProps.link;\n const imageInState = ScreenshotUtils.isRemoteImageLocal(prevState.cardImage, image);\n let nextState = null;\n\n // Image is updating.\n if (!imageInState && nextProps.link) {\n nextState = {imageLoaded: false};\n }\n\n if (imageInState) {\n return nextState;\n }\n\n // Since image was updated, attempt to revoke old image blob URL, if it exists.\n ScreenshotUtils.maybeRevokeBlobObjectURL(prevState.cardImage);\n\n nextState = nextState || {};\n nextState.cardImage = ScreenshotUtils.createLocalImageObject(image);\n\n return nextState;\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.setState({\n activeCard: this.props.index,\n showContextMenu: true,\n });\n }\n\n /**\n * Report to telemetry additional information about the item.\n */\n _getTelemetryInfo() {\n // Filter out \"history\" type for being the default\n if (this.props.link.type !== \"history\") {\n return {value: {card_type: this.props.link.type}};\n }\n\n return null;\n }\n\n onLinkClick(event) {\n event.preventDefault();\n if (this.props.link.type === \"download\") {\n this.props.dispatch(ac.OnlyToMain({\n type: at.SHOW_DOWNLOAD_FILE,\n data: this.props.link,\n }));\n } else {\n const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n this.props.dispatch(ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}}),\n }));\n }\n if (this.props.isWebExtension) {\n this.props.dispatch(ac.WebExtEvent(at.WEBEXT_CLICK, {\n source: this.props.eventSource,\n url: this.props.link.url,\n action_position: this.props.index,\n }));\n } else {\n this.props.dispatch(ac.UserEvent(Object.assign({\n event: \"CLICK\",\n source: this.props.eventSource,\n action_position: this.props.index,\n }, this._getTelemetryInfo())));\n\n if (this.props.shouldSendImpressionStats) {\n this.props.dispatch(ac.ImpressionStats({\n source: this.props.eventSource,\n click: 0,\n tiles: [{id: this.props.link.guid, pos: this.props.index}],\n }));\n }\n }\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n componentDidMount() {\n this.maybeLoadImage();\n }\n\n componentDidUpdate() {\n this.maybeLoadImage();\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillMount() {\n const nextState = _Card.getNextStateFromProps(this.props, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillReceiveProps(nextProps) {\n const nextState = _Card.getNextStateFromProps(nextProps, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n ScreenshotUtils.maybeRevokeBlobObjectURL(this.state.cardImage);\n }\n\n render() {\n const {index, className, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats} = this.props;\n const {props} = this;\n const isContextMenuOpen = this.state.showContextMenu && this.state.activeCard === index;\n // Display \"now\" as \"trending\" until we have new strings #3402\n const {icon, intlID} = cardContextTypes[link.type === \"now\" ? \"trending\" : link.type] || {};\n const hasImage = this.state.cardImage || link.hasImage;\n const imageStyle = {backgroundImage: this.state.cardImage ? `url(${this.state.cardImage.url})` : \"none\"};\n const outerClassName = [\n \"card-outer\",\n className,\n isContextMenuOpen && \"active\",\n props.placeholder && \"placeholder\",\n ].filter(v => v).join(\" \");\n\n return (\n \n \n
\n
\n {link.type === \"download\" &&
}\n {link.hostname &&\n
\n {link.hostname.slice(0, 100)}{link.type === \"download\" && ` \\u2014 ${link.description}`}\n
\n }\n
\n
{link.title} \n
{link.description}
\n
\n
\n {icon && !link.context &&
}\n {link.icon && link.context &&
}\n {intlID && !link.context &&
}\n {link.context &&
{link.context}
}\n
\n
\n
\n \n {!props.placeholder && \n {`Open context menu for ${link.title}`} \n }\n {isContextMenuOpen &&\n \n }\n );\n }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(injectIntl(_Card));\nexport const PlaceholderCard = props => ;\n","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class TopSiteFormInput extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {validationError: this.props.validationError};\n this.onChange = this.onChange.bind(this);\n this.onMount = this.onMount.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.shouldFocus && !this.props.shouldFocus) {\n this.input.focus();\n }\n if (nextProps.validationError && !this.props.validationError) {\n this.setState({validationError: true});\n }\n // If the component is in an error state but the value was cleared by the parent\n if (this.state.validationError && !nextProps.value) {\n this.setState({validationError: false});\n }\n }\n\n onChange(ev) {\n if (this.state.validationError) {\n this.setState({validationError: false});\n }\n this.props.onChange(ev);\n }\n\n onMount(input) {\n this.input = input;\n }\n\n render() {\n const showClearButton = this.props.value && this.props.onClear;\n const {typeUrl} = this.props;\n const {validationError} = this.state;\n\n return ( \n \n {this.props.loading ?\n
:\n showClearButton &&
}\n
\n {validationError &&\n
}\n
\n );\n }\n}\n\nTopSiteFormInput.defaultProps = {\n showClearButton: false,\n value: \"\",\n validationError: false,\n};\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {TopSiteFormInput} from \"./TopSiteFormInput\";\nimport {TopSiteLink} from \"./TopSite\";\n\nexport class TopSiteForm extends React.PureComponent {\n constructor(props) {\n super(props);\n const {site} = props;\n this.state = {\n label: site ? (site.label || site.hostname) : \"\",\n url: site ? site.url : \"\",\n validationError: false,\n customScreenshotUrl: site ? site.customScreenshotURL : \"\",\n showCustomScreenshotForm: site ? site.customScreenshotURL : false,\n };\n this.onClearScreenshotInput = this.onClearScreenshotInput.bind(this);\n this.onLabelChange = this.onLabelChange.bind(this);\n this.onUrlChange = this.onUrlChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onClearUrlClick = this.onClearUrlClick.bind(this);\n this.onDoneButtonClick = this.onDoneButtonClick.bind(this);\n this.onCustomScreenshotUrlChange = this.onCustomScreenshotUrlChange.bind(this);\n this.onPreviewButtonClick = this.onPreviewButtonClick.bind(this);\n this.onEnableScreenshotUrlForm = this.onEnableScreenshotUrlForm.bind(this);\n this.validateUrl = this.validateUrl.bind(this);\n }\n\n onLabelChange(event) {\n this.setState({\"label\": event.target.value});\n }\n\n onUrlChange(event) {\n this.setState({\n url: event.target.value,\n validationError: false,\n });\n }\n\n onClearUrlClick() {\n this.setState({\n url: \"\",\n validationError: false,\n });\n }\n\n onEnableScreenshotUrlForm() {\n this.setState({showCustomScreenshotForm: true});\n }\n\n _updateCustomScreenshotInput(customScreenshotUrl) {\n this.setState({\n customScreenshotUrl,\n validationError: false,\n });\n this.props.dispatch({type: at.PREVIEW_REQUEST_CANCEL});\n }\n\n onCustomScreenshotUrlChange(event) {\n this._updateCustomScreenshotInput(event.target.value);\n }\n\n onClearScreenshotInput() {\n this._updateCustomScreenshotInput(\"\");\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onDoneButtonClick(ev) {\n ev.preventDefault();\n\n if (this.validateForm()) {\n const site = {url: this.cleanUrl(this.state.url)};\n const {index} = this.props;\n if (this.state.label !== \"\") {\n site.label = this.state.label;\n }\n\n if (this.state.customScreenshotUrl) {\n site.customScreenshotURL = this.cleanUrl(this.state.customScreenshotUrl);\n } else if (this.props.site && this.props.site.customScreenshotURL) {\n // Used to flag that previously cached screenshot should be removed\n site.customScreenshotURL = null;\n }\n this.props.dispatch(ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {site, index},\n }));\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"TOP_SITES_EDIT\",\n action_position: index,\n }));\n\n this.props.onClose();\n }\n }\n\n onPreviewButtonClick(event) {\n event.preventDefault();\n if (this.validateForm()) {\n this.props.dispatch(ac.AlsoToMain({\n type: at.PREVIEW_REQUEST,\n data: {url: this.cleanUrl(this.state.customScreenshotUrl)},\n }));\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"PREVIEW_REQUEST\",\n }));\n }\n }\n\n cleanUrl(url) {\n // If we are missing a protocol, prepend http://\n if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\")) {\n return `http://${url}`;\n }\n return url;\n }\n\n _tryParseUrl(url) {\n try {\n return new URL(url);\n } catch (e) {\n return null;\n }\n }\n\n validateUrl(url) {\n const validProtocols = [\"http:\", \"https:\"];\n const urlObj = this._tryParseUrl(url) || this._tryParseUrl(this.cleanUrl(url));\n\n return urlObj && validProtocols.includes(urlObj.protocol);\n }\n\n validateCustomScreenshotUrl() {\n const {customScreenshotUrl} = this.state;\n return !customScreenshotUrl || this.validateUrl(customScreenshotUrl);\n }\n\n validateForm() {\n const validate = this.validateUrl(this.state.url) && this.validateCustomScreenshotUrl();\n\n if (!validate) {\n this.setState({validationError: true});\n }\n\n return validate;\n }\n\n _renderCustomScreenshotInput() {\n const {customScreenshotUrl} = this.state;\n const requestFailed = this.props.previewResponse === \"\";\n const validationError = (this.state.validationError && !this.validateCustomScreenshotUrl()) || requestFailed;\n // Set focus on error if the url field is valid or when the input is first rendered and is empty\n const shouldFocus = (validationError && this.validateUrl(this.state.url)) || !customScreenshotUrl;\n const isLoading = this.props.previewResponse === null &&\n customScreenshotUrl && this.props.previewUrl === this.cleanUrl(customScreenshotUrl);\n\n if (!this.state.showCustomScreenshotForm) {\n return (\n \n );\n }\n return (\n \n
);\n }\n\n render() {\n const {customScreenshotUrl} = this.state;\n const requestFailed = this.props.previewResponse === \"\";\n // For UI purposes, editing without an existing link is \"add\"\n const showAsAdd = !this.props.site;\n const previous = (this.props.site && this.props.site.customScreenshotURL) || \"\";\n const changed = customScreenshotUrl && this.cleanUrl(customScreenshotUrl) !== previous;\n // Preview mode if changes were made to the custom screenshot URL and no preview was received yet\n // or the request failed\n const previewMode = changed && !this.props.previewResponse;\n const previewLink = Object.assign({}, this.props.site);\n if (this.props.previewResponse) {\n previewLink.screenshot = this.props.previewResponse;\n previewLink.customScreenshotURL = this.props.previewUrl;\n }\n return (\n \n );\n }\n}\n\nTopSiteForm.defaultProps = {\n site: null,\n index: -1,\n};\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/browser/components/newtab/lib/ASRouter.jsm b/browser/components/newtab/lib/ASRouter.jsm
index d6514389030f..101bf61f59e1 100644
--- a/browser/components/newtab/lib/ASRouter.jsm
+++ b/browser/components/newtab/lib/ASRouter.jsm
@@ -497,7 +497,13 @@ class _ASRouter {
_updateAdminState(target) {
const channel = target || this.messageChannel;
- channel.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "ADMIN_SET_STATE", data: this.state});
+ channel.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {
+ type: "ADMIN_SET_STATE",
+ data: {
+ ...this.state,
+ providerPrefs: ASRouterPreferences.providers,
+ },
+ });
}
_handleTargetingError(type, error, message) {
@@ -996,6 +1002,15 @@ class _ASRouter {
case "EXPIRE_QUERY_CACHE":
QueryCache.expireAll();
break;
+ case "ENABLE_PROVIDER":
+ ASRouterPreferences.enableOrDisableProvider(action.data, true);
+ break;
+ case "DISABLE_PROVIDER":
+ ASRouterPreferences.enableOrDisableProvider(action.data, false);
+ break;
+ case "RESET_PROVIDER_PREF":
+ ASRouterPreferences.resetProviderPref();
+ break;
}
}
}
diff --git a/browser/components/newtab/lib/ASRouterPreferences.jsm b/browser/components/newtab/lib/ASRouterPreferences.jsm
index 09bc2b55819d..28e78ba6b8e4 100644
--- a/browser/components/newtab/lib/ASRouterPreferences.jsm
+++ b/browser/components/newtab/lib/ASRouterPreferences.jsm
@@ -18,6 +18,7 @@ const DEFAULT_STATE = {
const USER_PREFERENCES = {
snippets: "browser.newtabpage.activity-stream.feeds.snippets",
+ cfr: "browser.newtabpage.activity-stream.asrouter.userprefs.cfr",
};
const TEST_PROVIDER = {
@@ -33,16 +34,19 @@ class _ASRouterPreferences {
this._callbacks = new Set();
}
+ _getProviderConfig() {
+ try {
+ return JSON.parse(Services.prefs.getStringPref(this._providerPref, ""));
+ } catch (e) {
+ Cu.reportError(`Could not parse ASRouter preference. Try resetting ${this._providerPref} in about:config.`);
+ }
+ return null;
+ }
+
get providers() {
if (!this._initialized || this._providers === null) {
- let providers;
- try {
- const parsed = JSON.parse(Services.prefs.getStringPref(this._providerPref, ""));
- providers = parsed.map(provider => Object.freeze(provider));
- } catch (e) {
- Cu.reportError("Problem parsing JSON message provider pref for ASRouter");
- providers = [];
- }
+ const config = this._getProviderConfig() || [];
+ const providers = config.map(provider => Object.freeze(provider));
if (this.devtoolsEnabled) {
providers.unshift(TEST_PROVIDER);
}
@@ -52,6 +56,33 @@ class _ASRouterPreferences {
return this._providers;
}
+ enableOrDisableProvider(id, value) {
+ const providers = this._getProviderConfig();
+ if (!providers) {
+ Cu.reportError(`Cannot enable/disable providers if ${this._providerPref} is unparseable.`);
+ return;
+ }
+ if (!providers.find(p => p.id === id)) {
+ Cu.reportError(`Cannot set enabled state for '${id}' because it does not exist in ${this._providerPref}`);
+ return;
+ }
+
+ const newConfig = providers.map(provider => {
+ if (provider.id === id) {
+ return {...provider, enabled: value};
+ }
+ return provider;
+ });
+ Services.prefs.setStringPref(this._providerPref, JSON.stringify(newConfig));
+ }
+
+ resetProviderPref() {
+ Services.prefs.clearUserPref(this._providerPref);
+ for (const id of Object.keys(USER_PREFERENCES)) {
+ Services.prefs.clearUserPref(USER_PREFERENCES[id]);
+ }
+ }
+
get devtoolsEnabled() {
if (!this._initialized || this._devtoolsEnabled === null) {
this._devtoolsEnabled = Services.prefs.getBoolPref(this._devtoolsPref, false);
diff --git a/browser/components/newtab/lib/ASRouterTargeting.jsm b/browser/components/newtab/lib/ASRouterTargeting.jsm
index 0c6e47f7fb21..fdc04c76a414 100644
--- a/browser/components/newtab/lib/ASRouterTargeting.jsm
+++ b/browser/components/newtab/lib/ASRouterTargeting.jsm
@@ -15,6 +15,8 @@ ChromeUtils.defineModuleGetter(this, "TelemetryEnvironment",
"resource://gre/modules/TelemetryEnvironment.jsm");
ChromeUtils.defineModuleGetter(this, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
+ChromeUtils.defineModuleGetter(this, "NewTabUtils",
+ "resource://gre/modules/NewTabUtils.jsm");
const FXA_USERNAME_PREF = "services.sync.username";
const SEARCH_REGION_PREF = "browser.search.region";
@@ -246,6 +248,13 @@ const TargetingGetters = {
}
)));
},
+ get pinnedSites() {
+ return NewTabUtils.pinnedLinks.links.map(site => ({
+ url: site.url,
+ host: (new URL(site.url)).hostname,
+ searchTopSite: site.searchTopSite,
+ }));
+ },
get providerCohorts() {
return ASRouterPreferences.providers.reduce((prev, current) => {
prev[current.id] = current.cohort || "";
diff --git a/browser/components/newtab/lib/ActivityStream.jsm b/browser/components/newtab/lib/ActivityStream.jsm
index ebd23eb55e29..e23560049c47 100644
--- a/browser/components/newtab/lib/ActivityStream.jsm
+++ b/browser/components/newtab/lib/ActivityStream.jsm
@@ -198,6 +198,10 @@ const PREFS_CONFIG = new Map([
title: "Are the asrouter devtools enabled?",
value: false,
}],
+ ["asrouter.userprefs.cfr", {
+ title: "Does the user allow CFR recommendations?",
+ value: true,
+ }],
["asrouter.messageProviders", {
title: "Configuration for ASRouter message providers",
diff --git a/browser/components/newtab/lib/SnippetsTestMessageProvider.jsm b/browser/components/newtab/lib/SnippetsTestMessageProvider.jsm
index 08e51ccbdad8..24d00e03d220 100644
--- a/browser/components/newtab/lib/SnippetsTestMessageProvider.jsm
+++ b/browser/components/newtab/lib/SnippetsTestMessageProvider.jsm
@@ -16,6 +16,19 @@ const MESSAGES = () => ([
"block_button_text": "Block",
},
},
+ {
+ "id": "SIMPLE_TEST_TALL",
+ "template": "simple_snippet",
+ "content": {
+ "icon": TEST_ICON,
+ "text": "Sync it, link it, take it with you . All this and more with a Firefox Account.",
+ "links": {"syncLink": {"url": "https://www.mozilla.org/en-US/firefox/accounts"}},
+ "button_label": "Get one now!",
+ "button_url": "https://www.mozilla.org/en-US/firefox/accounts",
+ "block_button_text": "Block",
+ "tall": true,
+ },
+ },
{
"id": "SIMPLE_TEST_BUTTON_URL_1",
"template": "simple_snippet",
@@ -84,11 +97,6 @@ const MESSAGES = () => ([
"scene2_button_label": "Continue",
"scene2_dismiss_button_text": "Dismiss",
"form_action": "https://basket.mozilla.org/subscribe.json",
-
- // TODO: This should not be required
- "success_text": "Check your inbox for the confirmation!",
- "error_text": "Error!",
- "hidden_inputs": {},
},
},
{
@@ -121,10 +129,59 @@ const MESSAGES = () => ([
success_title: "Your download link was sent.",
success_text: "Check your device for the email message!",
links: {"privacyLink": {"url": "https://www.mozilla.org/privacy/websites/?sample_rate=0.001&snippet_name=7894"}},
-
- // TODO: Not actually defined in the send to device schema
- form_action: "https://basket.mozilla.org/subscribe.json",
- hidden_inputs: {},
+ },
+ },
+ {
+ "id": "EOY_TEST_1",
+ "template": "eoy_snippet",
+ "content": {
+ "highlight_color": "#f05",
+ "selected_button": "donation_amount_first",
+ "icon": TEST_ICON,
+ "button_label": "Donate",
+ "monthly_checkbox_label_text": "Make my donation monthly",
+ "currency_code": "usd",
+ "donation_amount_first": 50,
+ "donation_amount_second": 25,
+ "donation_amount_third": 10,
+ "donation_amount_fourth": 5,
+ "donation_form_url": "https://donate.mozilla.org",
+ "text": "Big corporations want to restrict how we access the web. Fake news is making it harder for us to find the truth. Online bullies are silencing inspired voices. The not-for-profit Mozilla Foundation fights for a healthy internet with programs like our Tech Policy Fellowships and Internet Health Report; will you donate today ?",
+ },
+ },
+ {
+ "id": "EOY_BOLD_TEST_1",
+ "template": "eoy_snippet",
+ "content": {
+ "icon": TEST_ICON,
+ "selected_button": "donation_amount_second",
+ "button_label": "Donate",
+ "monthly_checkbox_label_text": "Make my donation monthly",
+ "currency_code": "usd",
+ "donation_amount_first": 50,
+ "donation_amount_second": 25,
+ "donation_amount_third": 10,
+ "donation_amount_fourth": 5,
+ "donation_form_url": "https://donate.mozilla.org",
+ "text": "Big corporations want to restrict how we access the web. Fake news is making it harder for us to find the truth. Online bullies are silencing inspired voices. The not-for-profit Mozilla Foundation fights for a healthy internet with programs like our Tech Policy Fellowships and Internet Health Report; will you donate today ?",
+ "test": "bold",
+ },
+ },
+ {
+ "id": "EOY_TAKEOVER_TEST_1",
+ "template": "eoy_snippet",
+ "content": {
+ "icon": TEST_ICON,
+ "button_label": "Donate",
+ "monthly_checkbox_label_text": "Make my donation monthly",
+ "currency_code": "usd",
+ "donation_amount_first": 50,
+ "donation_amount_second": 25,
+ "donation_amount_third": 10,
+ "donation_amount_fourth": 5,
+ "donation_form_url": "https://donate.mozilla.org",
+ "text": "Big corporations want to restrict how we access the web. Fake news is making it harder for us to find the truth. Online bullies are silencing inspired voices. The not-for-profit Mozilla Foundation fights for a healthy internet with programs like our Tech Policy Fellowships and Internet Health Report; will you donate today ?",
+ "test": "takeover",
},
},
]);
diff --git a/browser/components/newtab/lib/TelemetryFeed.jsm b/browser/components/newtab/lib/TelemetryFeed.jsm
index 4b90c0ccc28c..8206e5e656e9 100644
--- a/browser/components/newtab/lib/TelemetryFeed.jsm
+++ b/browser/components/newtab/lib/TelemetryFeed.jsm
@@ -492,6 +492,7 @@ this.TelemetryFeed = class TelemetryFeed {
async sendPageTakeoverData() {
if (this.telemetryEnabled) {
const value = {};
+ let page;
// Check whether or not about:home and about:newtab are set to a custom URL.
// If so, classify them.
@@ -499,21 +500,25 @@ this.TelemetryFeed = class TelemetryFeed {
aboutNewTabService.overridden &&
!aboutNewTabService.newTabURL.startsWith("moz-extension://")) {
value.newtab_url_category = await this._classifySite(aboutNewTabService.newTabURL);
+ page = "about:newtab";
}
const homePageURL = HomePage.get();
if (!["about:home", "about:blank"].includes(homePageURL) &&
!homePageURL.startsWith("moz-extension://")) {
value.home_url_category = await this._classifySite(homePageURL);
+ page = page ? "both" : "about:home";
}
- if (value.newtab_url_category || value.home_url_category) {
+ if (page) {
const event = Object.assign(
this.createPing(),
{
action: "activity_stream_user_event",
event: "PAGE_TAKEOVER_DATA",
value,
+ page,
+ session_id: "n/a",
},
);
this.sendEvent(event);
diff --git a/browser/components/newtab/locales-src/bg/strings.properties b/browser/components/newtab/locales-src/bg/strings.properties
index fea1f8866071..9f7a56ac3ca1 100644
--- a/browser/components/newtab/locales-src/bg/strings.properties
+++ b/browser/components/newtab/locales-src/bg/strings.properties
@@ -143,9 +143,9 @@ pocket_read_more=Популярни теми:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Повече публикации
-
pocket_more_reccommendations=Повече препоръчани
pocket_learn_more=Научете повече
+pocket_how_it_works=Как работи
pocket_cta_button=Вземете Pocket
pocket_cta_text=Запазете статиите, които харесвате в Pocket и заредете ума си с увлекателни четива.
@@ -196,7 +196,6 @@ firstrun_form_header=Въведете своята ел. поща,
firstrun_form_sub_header=за да продължите към Firefox Sync
firstrun_email_input_placeholder=адрес на електронна поща
-
firstrun_invalid_input=Необходим е валиден адрес на ел. поща
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
diff --git a/browser/components/newtab/locales-src/it/strings.properties b/browser/components/newtab/locales-src/it/strings.properties
index a02c154f609e..7ef665132100 100644
--- a/browser/components/newtab/locales-src/it/strings.properties
+++ b/browser/components/newtab/locales-src/it/strings.properties
@@ -1,33 +1,18 @@
-newtab_page_title=Nuova scheda
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+newtab_page_title=Nuova scheda
header_top_sites=Siti principali
header_highlights=In evidenza
-# LOCALIZATION NOTE(header_recommended_by): This is followed by the name
-# of the corresponding content provider.
header_recommended_by=Consigliati da {provider}
-
-# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
-# the context menu button is focused/active. Title is the label or hostname of
-# the site.
context_menu_button_sr=Apri menu contestuale per {title}
-
-# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
-# the section edit context menu button is focused/active.
section_context_menu_button_sr=Apri il menu contestuale per la sezione
-
-# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
-# context on how the element is related to the user, e.g. type indicates that
-# the page is bookmarked, or is currently open on another device
type_label_visited=Visitato
type_label_bookmarked=Nei segnalibri
type_label_recommended=Di tendenza
type_label_pocket=Salvato in Pocket
type_label_downloaded=Scaricata
-
-# LOCALIZATION NOTE (menu_action_*): These strings are displayed in a context
-# menu and are meant as a call to action for a given page.
-# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
-# bookmarks"
menu_action_bookmark=Aggiungi ai segnalibri
menu_action_remove_bookmark=Elimina segnalibro
menu_action_open_new_window=Apri in una nuova finestra
@@ -37,63 +22,26 @@ menu_action_delete=Elimina dalla cronologia
menu_action_pin=Appunta
menu_action_unpin=Rilascia
confirm_history_delete_p1=Eliminare tutte le occorrenze di questa pagina dalla cronologia?
-# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
-# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
-# page from history.
confirm_history_delete_notice_p2=Questa operazione non può essere annullata.
menu_action_save_to_pocket=Salva in Pocket
menu_action_delete_pocket=Elimina da Pocket
menu_action_archive_pocket=Archivia in Pocket
-
-# LOCALIZATION NOTE (menu_action_show_file_*): These are platform specific strings
-# found in the context menu of an item that has been downloaded. The intention behind
-# "this action" is that it will show where the downloaded file exists on the file system
-# for each operating system.
menu_action_show_file_mac_os=Mostra nel Finder
menu_action_show_file_windows=Apri cartella di destinazione
menu_action_show_file_linux=Apri cartella di destinazione
menu_action_show_file_default=Mostra file
menu_action_open_file=Apri file
-
-# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
-# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
-# link that belongs to this downloaded item"
menu_action_copy_download_link=Copia indirizzo di origine
menu_action_go_to_download_page=Vai alla pagina di download
menu_action_remove_download=Elimina dalla cronologia
-
-# LOCALIZATION NOTE (search_button): This is screenreader only text for the
-# search button.
search_button=Cerca
-
-# LOCALIZATION NOTE (search_header): Displayed at the top of the panel
-# showing search suggestions. {search_engine_name} is replaced with the name of
-# the current default search engine. e.g. 'Google Search'
search_header=Ricerca {search_engine_name}
-
-# LOCALIZATION NOTE (search_web_placeholder): This is shown in the searchbox when
-# the user hasn't typed anything yet.
search_web_placeholder=Cerca sul Web
-
-# LOCALIZATION NOTE (section_disclaimer_topstories): This is shown below
-# the topstories section title to provide additional information about
-# how the stories are selected.
section_disclaimer_topstories=Le storie più interessanti del Web, selezionate in base alle tue letture. Direttamente da Pocket, ora parte del gruppo Mozilla.
section_disclaimer_topstories_linktext=Scopri come funziona.
-# LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of
-# the button used to acknowledge, and hide this disclaimer in the future.
section_disclaimer_topstories_buttontext=Ho capito.
-
-# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
-# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
-# in English, while "Home" should be localized matching the about:preferences
-# sidebar mozilla-central string for the panel that has preferences related to
-# what is shown for the homepage, new windows, and new tabs.
prefs_home_header=Pagina iniziale di Firefox
prefs_home_description=Scegli i contenuti da visualizzare nella pagina iniziale di Firefox.
-# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
-# plural forms used in a drop down of multiple row options (1 row, 2 rows).
-# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
prefs_section_rows_option={num} riga;{num} righe
prefs_search_header=Ricerca sul Web
prefs_topsites_description=I siti più visitati
@@ -109,18 +57,9 @@ settings_pane_button_label=Personalizza la pagina Nuova scheda
settings_pane_topsites_header=Siti principali
settings_pane_highlights_header=In evidenza
settings_pane_highlights_options_bookmarks=Segnalibri
-# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
-# traditionally on about:home. Alternative translation options: "Small Note" or
-# something that expresses the idea of "a small message, shortened from
-# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=Snippet
-
-# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
-# dialog.
edit_topsites_button_text=Modifica
edit_topsites_edit_button=Modifica questo sito
-
-# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=Nuovi sito principale
topsites_form_edit_header=Modifica sito principale
topsites_form_title_label=Titolo
@@ -129,49 +68,26 @@ topsites_form_url_label=URL
topsites_form_image_url_label=Indirizzo immagine personalizzata
topsites_form_url_placeholder=Digitare o incollare un URL
topsites_form_use_image_link=Utilizza un’immagine personalizzata…
-# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
topsites_form_preview_button=Anteprima
topsites_form_add_button=Aggiungi
topsites_form_save_button=Salva
topsites_form_cancel_button=Annulla
topsites_form_url_validation=È necessario fornire un URL valido
topsites_form_image_validation=Errore durante il caricamento dell’immagine. Prova con un altro indirizzo.
-
-# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
-# trending stories section and precedes a list of links to popular topics.
pocket_read_more=Argomenti popolari:
-# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
-# end of the list of popular topic links.
pocket_read_even_more=Visualizza altre storie
pocket_more_reccommendations = Altri suggerimenti
pocket_learn_more = Ulteriori informazioni
pocket_how_it_works = Come funziona
pocket_cta_button = Ottieni Pocket
pocket_cta_text = Salva le storie che ami in Pocket e nutri la tua mente con letture appassionanti.
-
highlights_empty_state=Inizia a navigare e, in questa sezione, verranno visualizzati articoli, video e altre pagine visitate di recente o aggiunte ai segnalibri.
-# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
-# in the space that would have shown a few stories, this is shown instead.
-# {provider} is replaced by the name of the content provider for this section.
topstories_empty_state=Non c’è altro. Controlla più tardi per altre storie da {provider}. Non vuoi aspettare? Seleziona un argomento tra quelli più popolari per scoprire altre notizie interessanti dal Web.
-
-# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
-# import their browser profile from another browser they might be using.
manual_migration_explanation2=Prova Firefox con i segnalibri, la cronologia e le password di un altro browser.
-# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
-# process of importing another browser’s profile into Firefox.
manual_migration_cancel_button=No grazie
-# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
-# of importing another browser’s profile profile into Firefox.
manual_migration_import_button=Importa adesso
-
-# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
-# action link are shown in each section of UI that fails to render
error_fallback_default_info=Oops, qualcosa è andato storto durante il tentativo di caricare questo contenuto.
error_fallback_default_refresh_suggestion=Aggiornare la pagina per riprovare.
-
-# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
-# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=Rimuovi sezione
section_menu_action_collapse_section=Comprimi sezione
section_menu_action_expand_section=Espandi sezione
@@ -182,27 +98,16 @@ section_menu_action_add_search_engine=Aggiungi motore di ricerca
section_menu_action_move_up=Sposta su
section_menu_action_move_down=Sposta giù
section_menu_action_privacy_notice=Informativa sulla privacy
-
-# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
-# firstrun of the browser, they give an introduction to Firefox and Sync.
firstrun_title=Porta Firefox con te
firstrun_content=Ritrova segnalibri, cronologia, password e altre impostazioni su tutti i tuoi dispositivi.
firstrun_learn_more_link=Scopri di più sull’account Firefox
-
-# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
-# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
-# firstrun_form_header is displayed more boldly as the call to action.
firstrun_form_header=Inserisci email
firstrun_form_sub_header=per utilizzare Firefox Sync.
-
firstrun_email_input_placeholder=Email
firstrun_invalid_input=Inserire un indirizzo email valido
-
-# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
-# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
firstrun_extra_legal_links=Proseguendo, accetto le {terms} e l’{privacy}.
firstrun_terms_of_service=condizioni di utilizzo del servizio
firstrun_privacy_notice=informativa sulla privacy
-
firstrun_continue_to_login=Continua
firstrun_skip_login=Ignora questo passaggio
+context_menu_title=Apri menu
diff --git a/browser/components/newtab/locales-src/lv/strings.properties b/browser/components/newtab/locales-src/lv/strings.properties
index 78c05b338fca..05b6ea131cd6 100644
--- a/browser/components/newtab/locales-src/lv/strings.properties
+++ b/browser/components/newtab/locales-src/lv/strings.properties
@@ -143,9 +143,9 @@ pocket_read_more=Populārās tēmas:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Parādīt vairāk lapas
-
pocket_more_reccommendations=Vairāk ieteikumu
pocket_learn_more=Uzzināt vairāk
+pocket_how_it_works=Kā tas strādā
pocket_cta_button=Izmēģiniet Pocket
pocket_cta_text=Saglabājiet interesantus stāstus Pocket un barojiet savu prātu ar interesantu lasāmvielu.
@@ -196,7 +196,6 @@ firstrun_form_header=Ievadiet savu epastu
firstrun_form_sub_header=lai turpinātu Firefox Sync.
firstrun_email_input_placeholder=Epasts
-
firstrun_invalid_input=Nepieciešams derīgs epasts
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
diff --git a/browser/components/newtab/locales-src/nl/strings.properties b/browser/components/newtab/locales-src/nl/strings.properties
index b2d5f4728ab1..2c2925c1e601 100644
--- a/browser/components/newtab/locales-src/nl/strings.properties
+++ b/browser/components/newtab/locales-src/nl/strings.properties
@@ -206,3 +206,6 @@ firstrun_privacy_notice=Privacyverklaring
firstrun_continue_to_login=Doorgaan
firstrun_skip_login=Deze stap overslaan
+
+# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
+context_menu_title=Menu openen
diff --git a/browser/components/newtab/locales-src/rm/strings.properties b/browser/components/newtab/locales-src/rm/strings.properties
index 432e38c51db6..98214dd02369 100644
--- a/browser/components/newtab/locales-src/rm/strings.properties
+++ b/browser/components/newtab/locales-src/rm/strings.properties
@@ -143,9 +143,9 @@ pocket_read_more=Temas populars:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Mussar dapli artitgels
-
pocket_more_reccommendations=Dapli propostas
pocket_learn_more=Ulteriuras infurmaziuns
+pocket_how_it_works=Co ch'i funcziuna
pocket_cta_button=Obtegnair Pocket
pocket_cta_text=Memorisescha ils artitgels che ta plaschan en Pocket e procura per inspiraziun cuntinuanta cun lectura fascinanta.
@@ -196,7 +196,6 @@ firstrun_form_header=Endatescha tia adressa dad e-mail
firstrun_form_sub_header=per cuntinuar cun Firefox Sync.
firstrun_email_input_placeholder=E-mail
-
firstrun_invalid_input=Adressa dad e-mail valida è obligatorica
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
diff --git a/browser/components/newtab/locales-src/ur/strings.properties b/browser/components/newtab/locales-src/ur/strings.properties
index 69cd7faeb48f..e93eddd6f5ce 100644
--- a/browser/components/newtab/locales-src/ur/strings.properties
+++ b/browser/components/newtab/locales-src/ur/strings.properties
@@ -26,7 +26,7 @@ type_label_downloaded=ڈاؤن لوڈ شدہ
# menu and are meant as a call to action for a given page.
# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
# bookmarks"
-menu_action_bookmark=نشانی
+menu_action_bookmark=بک مارک
menu_action_remove_bookmark=نشانى ہٹائيں
menu_action_open_new_window=نئے دریچے میں کھولیں
menu_action_open_private_window=نئی نجی دریچے میں کھولیں
@@ -100,7 +100,7 @@ prefs_snippets_description=Mozilla اورFirefox کی جانب سے تازہ ک
settings_pane_button_label=اپنے نئے ٹیب کہ صفحہ کی تخصیص کریں
settings_pane_topsites_header=بہترین سائٹیں
settings_pane_highlights_header=شہ سرخياں
-settings_pane_highlights_options_bookmarks=نشانیاں
+settings_pane_highlights_options_bookmarks=بک مارک
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
@@ -133,7 +133,6 @@ pocket_read_more=مشہور مضامین:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=مزید کہانیاں دیکھیں
-
pocket_more_reccommendations=اور زیادہ سفارشات
pocket_learn_more=مزید سیکھیں
pocket_how_it_works=یہ کس طرح کام کرتا ہے
@@ -158,6 +157,9 @@ manual_migration_import_button=ابھی درآمد کری
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=صیغہ ہٹائیں
+section_menu_action_collapse_section=صیغہ تفصیل سے دیکھیں
+section_menu_action_expand_section=صیغہ کو توسیع کریں
+section_menu_action_manage_section=صیغہ کابندرست کریں
section_menu_action_manage_webext=توسیع کابندرست کریں
section_menu_action_add_topsite=بہترین سائٹ شامل کریں
section_menu_action_add_search_engine=تلاش انجن کا اضافہ کریں
@@ -174,7 +176,6 @@ section_menu_action_privacy_notice=رازداری کا نوٹس
firstrun_form_header=اپنی ای میل داخل کریں
firstrun_email_input_placeholder=ای میل
-
firstrun_invalid_input=جائز ای میل کی ظرورت ہے
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
diff --git a/browser/components/newtab/mochitest.sh b/browser/components/newtab/mochitest.sh
index 0ab57e3756f1..d687f2ea0897 100644
--- a/browser/components/newtab/mochitest.sh
+++ b/browser/components/newtab/mochitest.sh
@@ -14,9 +14,10 @@ cd /activity-stream && npm install . && npm run buildmc
# Build latest m-c with Activity Stream changes
cd /mozilla-central && ./mach build \
&& ./mach lint -l codespell browser/components/newtab \
+ && ./mach test browser/components/newtab/test/browser --headless \
+ && ./mach test browser/components/newtab/test/xpcshell \
&& ./mach test --log-tbpl test_run_log \
browser_parsable_css \
- browser/components/newtab \
browser/components/preferences/in-content/tests/browser_hometab_restore_defaults.js \
browser/components/preferences/in-content/tests/browser_newtab_menu.js \
browser/components/enterprisepolicies/tests/browser/browser_policy_set_homepage.js \
diff --git a/browser/components/newtab/prerendered/locales/bg/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/bg/activity-stream-strings.js
index f93b9d45b982..d833fae51b2e 100644
--- a/browser/components/newtab/prerendered/locales/bg/activity-stream-strings.js
+++ b/browser/components/newtab/prerendered/locales/bg/activity-stream-strings.js
@@ -75,7 +75,7 @@ window.gActivityStreamStrings = {
"pocket_read_more": "Популярни теми:",
"pocket_read_even_more": "Повече публикации",
"pocket_more_reccommendations": "Повече препоръчани",
- "pocket_how_it_works": "How it works",
+ "pocket_how_it_works": "Как работи",
"pocket_cta_button": "Вземете Pocket",
"pocket_cta_text": "Запазете статиите, които харесвате в Pocket и заредете ума си с увлекателни четива.",
"highlights_empty_state": "Разглеждайте и тук ще ви покажем някои от най-добрите статии, видео и други страници, които сте посетили или отметнали наскоро.",
diff --git a/browser/components/newtab/prerendered/locales/it/activity-stream-prerendered-noscripts.html b/browser/components/newtab/prerendered/locales/it/activity-stream-prerendered-noscripts.html
index 9ab6a1595927..acfd0198575b 100644
--- a/browser/components/newtab/prerendered/locales/it/activity-stream-prerendered-noscripts.html
+++ b/browser/components/newtab/prerendered/locales/it/activity-stream-prerendered-noscripts.html
@@ -9,7 +9,7 @@
-
+
diff --git a/browser/components/newtab/prerendered/locales/it/activity-stream-prerendered.html b/browser/components/newtab/prerendered/locales/it/activity-stream-prerendered.html
index cf1f76369979..06093162ab80 100644
--- a/browser/components/newtab/prerendered/locales/it/activity-stream-prerendered.html
+++ b/browser/components/newtab/prerendered/locales/it/activity-stream-prerendered.html
@@ -9,7 +9,7 @@
-
+
diff --git a/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js
index d94bf7346254..a6962c120b3a 100644
--- a/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js
+++ b/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js
@@ -107,6 +107,6 @@ window.gActivityStreamStrings = {
"firstrun_privacy_notice": "informativa sulla privacy",
"firstrun_continue_to_login": "Continua",
"firstrun_skip_login": "Ignora questo passaggio",
- "context_menu_title": "Open menu",
+ "context_menu_title": "Apri menu",
"pocket_learn_more": "Ulteriori informazioni"
};
diff --git a/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js
index 53383aacfbac..107820e67f55 100644
--- a/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js
+++ b/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js
@@ -75,7 +75,7 @@ window.gActivityStreamStrings = {
"pocket_read_more": "Populārās tēmas:",
"pocket_read_even_more": "Parādīt vairāk lapas",
"pocket_more_reccommendations": "Vairāk ieteikumu",
- "pocket_how_it_works": "How it works",
+ "pocket_how_it_works": "Kā tas strādā",
"pocket_cta_button": "Izmēģiniet Pocket",
"pocket_cta_text": "Saglabājiet interesantus stāstus Pocket un barojiet savu prātu ar interesantu lasāmvielu.",
"highlights_empty_state": "Sāciet pārlūkošanu un mēs šeit parādīsim lieliskus rakstus, video un citas apmeklētās lapas.",
diff --git a/browser/components/newtab/prerendered/locales/nl/activity-stream-prerendered-noscripts.html b/browser/components/newtab/prerendered/locales/nl/activity-stream-prerendered-noscripts.html
index 1dbcdfeefe74..3b5b4fb32d92 100644
--- a/browser/components/newtab/prerendered/locales/nl/activity-stream-prerendered-noscripts.html
+++ b/browser/components/newtab/prerendered/locales/nl/activity-stream-prerendered-noscripts.html
@@ -9,7 +9,7 @@
-
+
diff --git a/browser/components/newtab/prerendered/locales/nl/activity-stream-prerendered.html b/browser/components/newtab/prerendered/locales/nl/activity-stream-prerendered.html
index d9a6ce027e80..68b9d45d6bb7 100644
--- a/browser/components/newtab/prerendered/locales/nl/activity-stream-prerendered.html
+++ b/browser/components/newtab/prerendered/locales/nl/activity-stream-prerendered.html
@@ -9,7 +9,7 @@
-
+
diff --git a/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js
index 5e7c485e36ab..32b3aed53b79 100644
--- a/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js
+++ b/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js
@@ -107,6 +107,6 @@ window.gActivityStreamStrings = {
"firstrun_privacy_notice": "Privacyverklaring",
"firstrun_continue_to_login": "Doorgaan",
"firstrun_skip_login": "Deze stap overslaan",
- "context_menu_title": "Open menu",
+ "context_menu_title": "Menu openen",
"pocket_learn_more": "Meer info"
};
diff --git a/browser/components/newtab/prerendered/locales/rm/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/rm/activity-stream-strings.js
index 85111654c3c0..5737749990bc 100644
--- a/browser/components/newtab/prerendered/locales/rm/activity-stream-strings.js
+++ b/browser/components/newtab/prerendered/locales/rm/activity-stream-strings.js
@@ -75,7 +75,7 @@ window.gActivityStreamStrings = {
"pocket_read_more": "Temas populars:",
"pocket_read_even_more": "Mussar dapli artitgels",
"pocket_more_reccommendations": "Dapli propostas",
- "pocket_how_it_works": "How it works",
+ "pocket_how_it_works": "Co ch'i funcziuna",
"pocket_cta_button": "Obtegnair Pocket",
"pocket_cta_text": "Memorisescha ils artitgels che ta plaschan en Pocket e procura per inspiraziun cuntinuanta cun lectura fascinanta.",
"highlights_empty_state": "Cumenza a navigar e nus ta mussain qua artitgels, videos ed autras paginas che ti has visità dacurt u che ti has agiuntà dacurt sco segnapagina.",
diff --git a/browser/components/newtab/prerendered/locales/ur/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ur/activity-stream-strings.js
index 4ef461058dee..8b79ad266b59 100644
--- a/browser/components/newtab/prerendered/locales/ur/activity-stream-strings.js
+++ b/browser/components/newtab/prerendered/locales/ur/activity-stream-strings.js
@@ -11,7 +11,7 @@ window.gActivityStreamStrings = {
"type_label_recommended": "رجحان سازی",
"type_label_pocket": "Pocket میں محفوظ شدہ",
"type_label_downloaded": "ڈاؤن لوڈ شدہ",
- "menu_action_bookmark": "نشانی",
+ "menu_action_bookmark": "بک مارک",
"menu_action_remove_bookmark": "نشانى ہٹائيں",
"menu_action_open_new_window": "نئے دریچے میں کھولیں",
"menu_action_open_private_window": "نئی نجی دریچے میں کھولیں",
@@ -54,7 +54,7 @@ window.gActivityStreamStrings = {
"settings_pane_button_label": "اپنے نئے ٹیب کہ صفحہ کی تخصیص کریں",
"settings_pane_topsites_header": "بہترین سائٹیں",
"settings_pane_highlights_header": "شہ سرخياں",
- "settings_pane_highlights_options_bookmarks": "نشانیاں",
+ "settings_pane_highlights_options_bookmarks": "بک مارک",
"settings_pane_snippets_header": "سنپیٹ",
"edit_topsites_button_text": "تدوین",
"edit_topsites_edit_button": "اس سائٹ کی تدوین کریں",
@@ -86,9 +86,9 @@ window.gActivityStreamStrings = {
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "صیغہ ہٹائیں",
- "section_menu_action_collapse_section": "Collapse Section",
- "section_menu_action_expand_section": "Expand Section",
- "section_menu_action_manage_section": "Manage Section",
+ "section_menu_action_collapse_section": "صیغہ تفصیل سے دیکھیں",
+ "section_menu_action_expand_section": "صیغہ کو توسیع کریں",
+ "section_menu_action_manage_section": "صیغہ کابندرست کریں",
"section_menu_action_manage_webext": "توسیع کابندرست کریں",
"section_menu_action_add_topsite": "بہترین سائٹ شامل کریں",
"section_menu_action_add_search_engine": "تلاش انجن کا اضافہ کریں",
diff --git a/browser/components/newtab/test/browser/browser_asrouter_targeting.js b/browser/components/newtab/test/browser/browser_asrouter_targeting.js
index bdf78ffd0e9d..3749ea653a11 100644
--- a/browser/components/newtab/test/browser/browser_asrouter_targeting.js
+++ b/browser/components/newtab/test/browser/browser_asrouter_targeting.js
@@ -340,6 +340,36 @@ add_task(async function checkFrecentSites() {
await clearHistoryAndBookmarks();
});
+add_task(async function check_pinned_sites() {
+ const originalPin = JSON.stringify(NewTabUtils.pinnedLinks.links);
+ const sitesToPin = [
+ {url: "https://foo.com"},
+ {url: "https://floogle.com", searchTopSite: true},
+ ];
+ sitesToPin.forEach((site => NewTabUtils.pinnedLinks.pin(site, NewTabUtils.pinnedLinks.links.length)));
+
+ let message;
+
+ message = {id: "foo", targeting: "'https://foo.com' in pinnedSites|mapToProperty('url')"};
+ is(await ASRouterTargeting.findMatchingMessage({messages: [message]}), message,
+ "should select correct item by url in pinnedSites");
+
+ message = {id: "foo", targeting: "'foo.com' in pinnedSites|mapToProperty('host')"};
+ is(await ASRouterTargeting.findMatchingMessage({messages: [message]}), message,
+ "should select correct item by host in pinnedSites");
+
+ message = {id: "foo", targeting: "'floogle.com' in pinnedSites[.searchTopSite == true]|mapToProperty('host')"};
+ is(await ASRouterTargeting.findMatchingMessage({messages: [message]}), message,
+ "should select correct item by host and searchTopSite in pinnedSites");
+
+ // Cleanup
+ sitesToPin.forEach(site => NewTabUtils.pinnedLinks.unpin(site));
+
+ await clearHistoryAndBookmarks();
+ is(JSON.stringify(NewTabUtils.pinnedLinks.links), originalPin,
+ "should restore pinned sites to its original state");
+});
+
add_task(async function check_firefox_version() {
const message = {id: "foo", targeting: "firefoxVersion > 0"};
is(await ASRouterTargeting.findMatchingMessage({messages: [message]}), message,
diff --git a/browser/components/newtab/test/schemas/pings.js b/browser/components/newtab/test/schemas/pings.js
index 6624fd3df392..c7971ff8c6e6 100644
--- a/browser/components/newtab/test/schemas/pings.js
+++ b/browser/components/newtab/test/schemas/pings.js
@@ -7,7 +7,7 @@ export const baseKeys = {
addon_version: Joi.string().required(),
locale: Joi.string().required(),
session_id: Joi.string(),
- page: Joi.valid(["about:home", "about:newtab", "about:welcome", "unknown"]),
+ page: Joi.valid(["about:home", "about:newtab", "about:welcome", "both", "unknown"]),
user_prefs: Joi.number().integer().required(),
};
@@ -24,12 +24,16 @@ export const eventsTelemetryExtraKeys = Joi.object().keys({
export const UserEventPing = Joi.object().keys(Object.assign({}, baseKeys, {
session_id: baseKeys.session_id.required(),
page: baseKeys.page.required(),
- source: Joi.string().required(),
+ source: Joi.string(),
event: Joi.string().required(),
action: Joi.valid("activity_stream_user_event").required(),
metadata_source: Joi.string(),
highlight_type: Joi.valid(["bookmarks", "recommendation", "history"]),
recommender_type: Joi.string(),
+ value: Joi.object().keys({
+ newtab_url_category: Joi.string(),
+ home_url_category: Joi.string(),
+ }),
}));
export const UTUserEventPing = Joi.array().items(
diff --git a/browser/components/newtab/test/unit/asrouter/ASRouter.test.js b/browser/components/newtab/test/unit/asrouter/ASRouter.test.js
index 59167bcaaf3a..e1c38fb33287 100644
--- a/browser/components/newtab/test/unit/asrouter/ASRouter.test.js
+++ b/browser/components/newtab/test/unit/asrouter/ASRouter.test.js
@@ -208,7 +208,11 @@ describe("ASRouter", () => {
sandbox.stub(ASRouterPreferences, "devtoolsEnabled").get(() => true);
await Router.setState({foo: 123});
- assert.calledWith(channel.sendAsyncMessage, "ASRouter:parent-to-child", {type: "ADMIN_SET_STATE", data: Router.state});
+ assert.calledOnce(channel.sendAsyncMessage);
+ assert.deepEqual(channel.sendAsyncMessage.firstCall.args[1], {
+ type: "ADMIN_SET_STATE",
+ data: Object.assign({}, Router.state, {providerPrefs: ASRouterPreferences.providers}),
+ });
});
it("should not send a message on a state change asrouter.devtoolsEnabled pref is on", async () => {
sandbox.stub(ASRouterPreferences, "devtoolsEnabled").get(() => false);
@@ -393,452 +397,491 @@ describe("ASRouter", () => {
});
});
- describe("#onMessage: SNIPPETS_REQUEST", () => {
- it("should set state.lastMessageId to a message id", async () => {
- await Router.onMessage(fakeAsyncMessage({type: "SNIPPETS_REQUEST"}));
+ describe("onMessage", () => {
+ describe("#onMessage: SNIPPETS_REQUEST", () => {
+ it("should set state.lastMessageId to a message id", async () => {
+ await Router.onMessage(fakeAsyncMessage({type: "SNIPPETS_REQUEST"}));
- assert.include(ALL_MESSAGE_IDS, Router.state.lastMessageId);
- });
- it("should send a message back to the to the target", async () => {
- // force the only message to be a regular message so getRandomItemFromArray picks it
- await Router.setState({messages: [{id: "foo", template: "simple_template", content: {title: "Foo", body: "Foo123"}}]});
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
- await Router.onMessage(msg);
- const [currentMessage] = Router.state.messages.filter(message => message.id === Router.state.lastMessageId);
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: currentMessage});
- });
- it("should send a message back to the to the target if there is a bundle, too", async () => {
- // force the only message to be a bundled message so getRandomItemFromArray picks it
- sandbox.stub(Router, "_findProvider").returns(null);
- await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 1, content: {title: "Foo1", body: "Foo123-1"}}]});
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
- await Router.onMessage(msg);
- const [currentMessage] = Router.state.messages.filter(message => message.id === Router.state.lastMessageId);
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME);
- assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].type, "SET_BUNDLED_MESSAGES");
- assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].data.bundle[0].content, currentMessage.content);
- });
- it("should properly order the message's bundle if specified", async () => {
- // force the only messages to be a bundled messages so getRandomItemFromArray picks one of them
- sandbox.stub(Router, "_findProvider").returns(null);
- const firstMessage = {id: "foo2", template: "simple_template", bundled: 2, order: 1, content: {title: "Foo2", body: "Foo123-2"}};
- const secondMessage = {id: "foo1", template: "simple_template", bundled: 2, order: 2, content: {title: "Foo1", body: "Foo123-1"}};
- await Router.setState({messages: [secondMessage, firstMessage]});
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
- await Router.onMessage(msg);
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME);
- assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].type, "SET_BUNDLED_MESSAGES");
- assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].data.bundle[0].content, firstMessage.content);
- assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].data.bundle[1].content, secondMessage.content);
- });
- it("should return a null bundle if we do not have enough messages to fill the bundle", async () => {
- // force the only message to be a bundled message that needs 2 messages in the bundle
- await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 2, content: {title: "Foo1", body: "Foo123-1"}}]});
- const bundle = await Router._getBundledMessages(Router.state.messages[0]);
- assert.equal(bundle, null);
- });
- it("should send down extra attributes in the bundle if they exist", async () => {
- sandbox.stub(Router, "_findProvider").returns({getExtraAttributes() { return Promise.resolve({header: "header"}); }});
- await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 1, content: {title: "Foo1", body: "Foo123-1"}}]});
- const result = await Router._getBundledMessages(Router.state.messages[0]);
- assert.equal(result.extraTemplateStrings.header, "header");
- });
- it("should send a CLEAR_ALL message if no bundle available", async () => {
- // force the only message to be a bundled message that needs 2 messages in the bundle
- await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 2, content: {title: "Foo1", body: "Foo123-1"}}]});
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
- await Router.onMessage(msg);
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
- });
- it("should send a CLEAR_ALL message if no messages are available", async () => {
- await Router.setState({messages: []});
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
- await Router.onMessage(msg);
+ assert.include(ALL_MESSAGE_IDS, Router.state.lastMessageId);
+ });
+ it("should send a message back to the to the target", async () => {
+ // force the only message to be a regular message so getRandomItemFromArray picks it
+ await Router.setState({messages: [{id: "foo", template: "simple_template", content: {title: "Foo", body: "Foo123"}}]});
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
+ await Router.onMessage(msg);
+ const [currentMessage] = Router.state.messages.filter(message => message.id === Router.state.lastMessageId);
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: currentMessage});
+ });
+ it("should send a message back to the to the target if there is a bundle, too", async () => {
+ // force the only message to be a bundled message so getRandomItemFromArray picks it
+ sandbox.stub(Router, "_findProvider").returns(null);
+ await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 1, content: {title: "Foo1", body: "Foo123-1"}}]});
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
+ await Router.onMessage(msg);
+ const [currentMessage] = Router.state.messages.filter(message => message.id === Router.state.lastMessageId);
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME);
+ assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].type, "SET_BUNDLED_MESSAGES");
+ assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].data.bundle[0].content, currentMessage.content);
+ });
+ it("should properly order the message's bundle if specified", async () => {
+ // force the only messages to be a bundled messages so getRandomItemFromArray picks one of them
+ sandbox.stub(Router, "_findProvider").returns(null);
+ const firstMessage = {id: "foo2", template: "simple_template", bundled: 2, order: 1, content: {title: "Foo2", body: "Foo123-2"}};
+ const secondMessage = {id: "foo1", template: "simple_template", bundled: 2, order: 2, content: {title: "Foo1", body: "Foo123-1"}};
+ await Router.setState({messages: [secondMessage, firstMessage]});
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
+ await Router.onMessage(msg);
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME);
+ assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].type, "SET_BUNDLED_MESSAGES");
+ assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].data.bundle[0].content, firstMessage.content);
+ assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].data.bundle[1].content, secondMessage.content);
+ });
+ it("should return a null bundle if we do not have enough messages to fill the bundle", async () => {
+ // force the only message to be a bundled message that needs 2 messages in the bundle
+ await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 2, content: {title: "Foo1", body: "Foo123-1"}}]});
+ const bundle = await Router._getBundledMessages(Router.state.messages[0]);
+ assert.equal(bundle, null);
+ });
+ it("should send down extra attributes in the bundle if they exist", async () => {
+ sandbox.stub(Router, "_findProvider").returns({getExtraAttributes() { return Promise.resolve({header: "header"}); }});
+ await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 1, content: {title: "Foo1", body: "Foo123-1"}}]});
+ const result = await Router._getBundledMessages(Router.state.messages[0]);
+ assert.equal(result.extraTemplateStrings.header, "header");
+ });
+ it("should send a CLEAR_ALL message if no bundle available", async () => {
+ // force the only message to be a bundled message that needs 2 messages in the bundle
+ await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 2, content: {title: "Foo1", body: "Foo123-1"}}]});
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
+ await Router.onMessage(msg);
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
+ });
+ it("should send a CLEAR_ALL message if no messages are available", async () => {
+ await Router.setState({messages: []});
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
+ await Router.onMessage(msg);
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
- });
- it("should make a request to the provided endpoint on SNIPPETS_REQUEST", async () => {
- const url = "https://snippets-admin.mozilla.org/foo";
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST", data: {endpoint: {url}}});
- await Router.onMessage(msg);
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
+ });
+ it("should make a request to the provided endpoint on SNIPPETS_REQUEST", async () => {
+ const url = "https://snippets-admin.mozilla.org/foo";
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST", data: {endpoint: {url}}});
+ await Router.onMessage(msg);
- assert.calledWith(global.fetch, url);
- assert.lengthOf(Router.state.providers.filter(p => p.url === url), 0);
- });
- it("should make a request to the provided endpoint on ADMIN_CONNECT_STATE and remove the endpoint", async () => {
- const url = "https://snippets-admin.mozilla.org/foo";
- const msg = fakeAsyncMessage({type: "ADMIN_CONNECT_STATE", data: {endpoint: {url}}});
- await Router.onMessage(msg);
+ assert.calledWith(global.fetch, url);
+ assert.lengthOf(Router.state.providers.filter(p => p.url === url), 0);
+ });
+ it("should make a request to the provided endpoint on ADMIN_CONNECT_STATE and remove the endpoint", async () => {
+ const url = "https://snippets-admin.mozilla.org/foo";
+ const msg = fakeAsyncMessage({type: "ADMIN_CONNECT_STATE", data: {endpoint: {url}}});
+ await Router.onMessage(msg);
- assert.calledWith(global.fetch, url);
- assert.lengthOf(Router.state.providers.filter(p => p.url === url), 0);
- });
- it("should dispatch SNIPPETS_PREVIEW_MODE when adding a preview endpoint", async () => {
- const url = "https://snippets-admin.mozilla.org/foo";
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST", data: {endpoint: {url}}});
- await Router.onMessage(msg);
+ assert.calledWith(global.fetch, url);
+ assert.lengthOf(Router.state.providers.filter(p => p.url === url), 0);
+ });
+ it("should dispatch SNIPPETS_PREVIEW_MODE when adding a preview endpoint", async () => {
+ const url = "https://snippets-admin.mozilla.org/foo";
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST", data: {endpoint: {url}}});
+ await Router.onMessage(msg);
- assert.calledWithExactly(Router.dispatchToAS, ac.OnlyToOneContent({type: "SNIPPETS_PREVIEW_MODE"}, msg.target.portID));
- });
- it("should not add a url that is not from a whitelisted host", async () => {
- const url = "https://mozilla.org";
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST", data: {endpoint: {url}}});
- await Router.onMessage(msg);
+ assert.calledWithExactly(Router.dispatchToAS, ac.OnlyToOneContent({type: "SNIPPETS_PREVIEW_MODE"}, msg.target.portID));
+ });
+ it("should not add a url that is not from a whitelisted host", async () => {
+ const url = "https://mozilla.org";
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST", data: {endpoint: {url}}});
+ await Router.onMessage(msg);
- assert.lengthOf(Router.state.providers.filter(p => p.url === url), 0);
- });
- it("should reject bad urls", async () => {
- const url = "foo";
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST", data: {endpoint: {url}}});
- await Router.onMessage(msg);
+ assert.lengthOf(Router.state.providers.filter(p => p.url === url), 0);
+ });
+ it("should reject bad urls", async () => {
+ const url = "foo";
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST", data: {endpoint: {url}}});
+ await Router.onMessage(msg);
- assert.lengthOf(Router.state.providers.filter(p => p.url === url), 0);
- });
- });
-
- describe("#onMessage: BLOCK_MESSAGE_BY_ID", () => {
- it("should add the id to the messageBlockList and broadcast a CLEAR_MESSAGE message with the id", async () => {
- await Router.setState({lastMessageId: "foo"});
- const msg = fakeAsyncMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo"}});
- await Router.onMessage(msg);
-
- assert.isTrue(Router.state.messageBlockList.includes("foo"));
- assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_MESSAGE", data: {id: "foo"}});
- });
- it("should not broadcast CLEAR_MESSAGE if preventDismiss is true", async () => {
- const msg = fakeAsyncMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo", preventDismiss: true}});
- await Router.onMessage(msg);
-
- assert.notCalled(channel.sendAsyncMessage);
- });
- });
-
- describe("#onMessage: DISMISS_MESSAGE_BY_ID", () => {
- it("should reply with CLEAR_MESSAGE with the correct id", async () => {
- const msg = fakeAsyncMessage({type: "DISMISS_MESSAGE_BY_ID", data: {id: "foo"}});
-
- await Router.onMessage(msg);
-
- assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_MESSAGE", data: {id: "foo"}});
- });
- });
-
- describe("#onMessage: BLOCK_PROVIDER_BY_ID", () => {
- it("should add the provider id to the providerBlockList and broadcast a CLEAR_PROVIDER with the provider id", async () => {
- const msg = fakeAsyncMessage({type: "BLOCK_PROVIDER_BY_ID", data: {id: "bar"}});
- await Router.onMessage(msg);
-
- assert.isTrue(Router.state.providerBlockList.includes("bar"));
- assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_PROVIDER", data: {id: "bar"}});
- });
- });
-
- describe("#onMessage: BLOCK_BUNDLE", () => {
- it("should add all the ids in the bundle to the messageBlockList and send a CLEAR_BUNDLE message", async () => {
- const bundleIds = [FAKE_BUNDLE[0].id, FAKE_BUNDLE[1].id];
- await Router.setState({lastMessageId: "foo"});
- const msg = fakeAsyncMessage({type: "BLOCK_BUNDLE", data: {bundle: FAKE_BUNDLE}});
- await Router.onMessage(msg);
-
- assert.isTrue(Router.state.messageBlockList.includes(FAKE_BUNDLE[0].id));
- assert.isTrue(Router.state.messageBlockList.includes(FAKE_BUNDLE[1].id));
- assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_BUNDLE"});
- assert.calledWithExactly(Router._storage.set, "messageBlockList", bundleIds);
- });
- });
-
- describe("#onMessage: UNBLOCK_MESSAGE_BY_ID", () => {
- it("should remove the id from the messageBlockList", async () => {
- await Router.onMessage(fakeAsyncMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
- assert.isTrue(Router.state.messageBlockList.includes("foo"));
- await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
-
- assert.isFalse(Router.state.messageBlockList.includes("foo"));
- });
- it("should save the messageBlockList", async () => {
- await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
-
- assert.calledWithExactly(Router._storage.set, "messageBlockList", []);
- });
- });
-
- describe("#onMessage: UNBLOCK_PROVIDER_BY_ID", () => {
- it("should remove the id from the providerBlockList", async () => {
- await Router.onMessage(fakeAsyncMessage({type: "BLOCK_PROVIDER_BY_ID", data: {id: "foo"}}));
- assert.isTrue(Router.state.providerBlockList.includes("foo"));
- await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_PROVIDER_BY_ID", data: {id: "foo"}}));
-
- assert.isFalse(Router.state.providerBlockList.includes("foo"));
- });
- it("should save the providerBlockList", async () => {
- await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_PROVIDER_BY_ID", data: {id: "foo"}}));
-
- assert.calledWithExactly(Router._storage.set, "providerBlockList", []);
- });
- });
-
- describe("#onMessage: UNBLOCK_BUNDLE", () => {
- it("should remove all the ids in the bundle from the messageBlockList", async () => {
- await Router.onMessage(fakeAsyncMessage({type: "BLOCK_BUNDLE", data: {bundle: FAKE_BUNDLE}}));
- assert.isTrue(Router.state.messageBlockList.includes(FAKE_BUNDLE[0].id));
- assert.isTrue(Router.state.messageBlockList.includes(FAKE_BUNDLE[1].id));
- await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_BUNDLE", data: {bundle: FAKE_BUNDLE}}));
-
- assert.isFalse(Router.state.messageBlockList.includes(FAKE_BUNDLE[0].id));
- assert.isFalse(Router.state.messageBlockList.includes(FAKE_BUNDLE[1].id));
- });
- it("should save the messageBlockList", async () => {
- await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_BUNDLE", data: {bundle: FAKE_BUNDLE}}));
-
- assert.calledWithExactly(Router._storage.set, "messageBlockList", []);
- });
- });
-
- describe("#onMessage: ADMIN_CONNECT_STATE", () => {
- it("should send a message containing the whole state", async () => {
- const msg = fakeAsyncMessage({type: "ADMIN_CONNECT_STATE"});
- await Router.onMessage(msg);
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "ADMIN_SET_STATE", data: Router.state});
- });
- });
-
- describe("#onMessage: SNIPPETS_REQUEST", () => {
- it("should call sendNextMessage on SNIPPETS_REQUEST", async () => {
- sandbox.stub(Router, "sendNextMessage").resolves();
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
-
- await Router.onMessage(msg);
-
- assert.calledOnce(Router.sendNextMessage);
- assert.calledWithExactly(Router.sendNextMessage, sinon.match.instanceOf(FakeRemotePageManager), {});
- });
- it("should return the preview message if that's available and remove it from Router.state", async () => {
- const expectedObj = {provider: "preview"};
- Router.setState({messages: [expectedObj]});
-
- await Router.sendNextMessage(channel);
-
- assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: expectedObj});
- assert.isUndefined(Router.state.messages.find(m => m.provider === "preview"));
- });
- it("should call _getBundledMessages if we request a message that needs to be bundled", async () => {
- sandbox.stub(Router, "_getBundledMessages").resolves();
- // forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
- const [, testMessage] = Router.state.messages;
- const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
- await Router.onMessage(msg);
-
- assert.calledOnce(Router._getBundledMessages);
- });
- it("should properly pick another message of the same template if it is bundled; force = true", async () => {
- // forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
- const [, testMessage1, testMessage2] = Router.state.messages;
- const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage1.id}});
- await Router.onMessage(msg);
-
- // Expected object should have some properties of the original message it picked (testMessage1)
- // plus the bundled content of the others that it picked of the same template (testMessage2)
- const expectedObj = {
- template: testMessage1.template,
- provider: testMessage1.provider,
- bundle: [{content: testMessage1.content, id: testMessage1.id, order: 1}, {content: testMessage2.content, id: testMessage2.id}],
- };
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_BUNDLED_MESSAGES", data: expectedObj});
- });
- it("should properly pick another message of the same template if it is bundled; force = false", async () => {
- // forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
- const [, testMessage1, testMessage2] = Router.state.messages;
- const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage1.id}});
- await Router.setMessageById(testMessage1.id, msg.target, false);
-
- // Expected object should have some properties of the original message it picked (testMessage1)
- // plus the bundled content of the others that it picked of the same template (testMessage2)
- const expectedObj = {
- template: testMessage1.template,
- provider: testMessage1.provider,
- bundle: [{content: testMessage1.content, id: testMessage1.id, order: 1}, {content: testMessage2.content, id: testMessage2.id, order: 2}],
- };
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_BUNDLED_MESSAGES", data: expectedObj});
- });
- it("should get the bundle and send the message if the message has a bundle", async () => {
- sandbox.stub(Router, "sendNextMessage").resolves();
- const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
- msg.bundled = 2; // force this message to want to be bundled
- await Router.onMessage(msg);
- assert.calledOnce(Router.sendNextMessage);
- });
- });
-
- describe("#onMessage: TRIGGER", () => {
- it("should pass the trigger to ASRouterTargeting on TRIGGER message", async () => {
- sandbox.stub(Router, "_findMessage").resolves();
- const msg = fakeAsyncMessage({type: "TRIGGER", data: {trigger: {id: "firstRun"}}});
- await Router.onMessage(msg);
-
- assert.calledOnce(Router._findMessage);
- assert.deepEqual(Router._findMessage.firstCall.args[1], {id: "firstRun"});
- });
- it("consider the trigger when picking a message", async () => {
- const messages = [
- {id: "foo1", template: "simple_template", bundled: 1, trigger: {id: "foo"}, content: {title: "Foo1", body: "Foo123-1"}},
- ];
-
- const {data} = fakeAsyncMessage({type: "TRIGGER", data: {trigger: {id: "foo"}}});
- const message = await Router._findMessage(messages, data.data.trigger);
- assert.equal(message, messages[0]);
- });
- it("should pick a message with the right targeting and trigger", async () => {
- let messages = [
- {id: "foo1", template: "simple_template", bundled: 2, trigger: {id: "foo"}, content: {title: "Foo1", body: "Foo123-1"}},
- {id: "foo2", template: "simple_template", bundled: 2, trigger: {id: "bar"}, content: {title: "Foo2", body: "Foo123-2"}},
- {id: "foo3", template: "simple_template", bundled: 2, trigger: {id: "foo"}, content: {title: "Foo3", body: "Foo123-3"}},
- ];
- sandbox.stub(Router, "_findProvider").returns(null);
- await Router.setState({messages});
- const {target} = fakeAsyncMessage({type: "TRIGGER", data: {trigger: {id: "foo"}}});
- let {bundle} = await Router._getBundledMessages(messages[0], target, {id: "foo"});
- assert.equal(bundle.length, 2);
- // it should have picked foo1 and foo3 only
- assert.isTrue(bundle.every(elem => elem.id === "foo1" || elem.id === "foo3"));
- });
- it("should have previousSessionEnd in the message context", () => {
- assert.propertyVal(Router._getMessagesContext(), "previousSessionEnd", 100);
- });
- });
-
- describe("#onMessage: OVERRIDE_MESSAGE", () => {
- it("should broadcast a SET_MESSAGE message to all clients with a particular id", async () => {
- const [testMessage] = Router.state.messages;
- const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
- await Router.onMessage(msg);
-
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: testMessage});
+ assert.lengthOf(Router.state.providers.filter(p => p.url === url), 0);
+ });
});
- it("should call CFRPageActions.forceRecommendation if the template is cfr_action and force is true", async () => {
- sandbox.stub(CFRPageActions, "forceRecommendation");
- const testMessage = {id: "foo", template: "cfr_doorhanger"};
- await Router.setState({messages: [testMessage]});
- const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
- await Router.onMessage(msg);
+ describe("#onMessage: BLOCK_MESSAGE_BY_ID", () => {
+ it("should add the id to the messageBlockList and broadcast a CLEAR_MESSAGE message with the id", async () => {
+ await Router.setState({lastMessageId: "foo"});
+ const msg = fakeAsyncMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo"}});
+ await Router.onMessage(msg);
- assert.notCalled(msg.target.sendAsyncMessage);
- assert.calledOnce(CFRPageActions.forceRecommendation);
+ assert.isTrue(Router.state.messageBlockList.includes("foo"));
+ assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_MESSAGE", data: {id: "foo"}});
+ });
+ it("should not broadcast CLEAR_MESSAGE if preventDismiss is true", async () => {
+ const msg = fakeAsyncMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo", preventDismiss: true}});
+ await Router.onMessage(msg);
+
+ assert.notCalled(channel.sendAsyncMessage);
+ });
});
- it("should call CFRPageActions.addRecommendation if the template is cfr_action and force is false", async () => {
- sandbox.stub(CFRPageActions, "addRecommendation");
- const testMessage = {id: "foo", template: "cfr_doorhanger"};
- await Router.setState({messages: [testMessage]});
- await Router._sendMessageToTarget(testMessage, {}, {}, false);
+ describe("#onMessage: DISMISS_MESSAGE_BY_ID", () => {
+ it("should reply with CLEAR_MESSAGE with the correct id", async () => {
+ const msg = fakeAsyncMessage({type: "DISMISS_MESSAGE_BY_ID", data: {id: "foo"}});
- assert.calledOnce(CFRPageActions.addRecommendation);
+ await Router.onMessage(msg);
+
+ assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_MESSAGE", data: {id: "foo"}});
+ });
});
- it("should broadcast CLEAR_ALL if provided id did not resolve to a message", async () => {
- const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: -1}});
- await Router.onMessage(msg);
+ describe("#onMessage: BLOCK_PROVIDER_BY_ID", () => {
+ it("should add the provider id to the providerBlockList and broadcast a CLEAR_PROVIDER with the provider id", async () => {
+ const msg = fakeAsyncMessage({type: "BLOCK_PROVIDER_BY_ID", data: {id: "bar"}});
+ await Router.onMessage(msg);
- assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
+ assert.isTrue(Router.state.providerBlockList.includes("bar"));
+ assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_PROVIDER", data: {id: "bar"}});
+ });
});
- });
- describe("#onMessage: Onboarding actions", () => {
- it("should call OpenBrowserWindow with a private window on OPEN_PRIVATE_BROWSER_WINDOW", async () => {
- let [testMessage] = Router.state.messages;
- const msg = fakeExecuteUserAction({type: "OPEN_PRIVATE_BROWSER_WINDOW", data: testMessage});
- await Router.onMessage(msg);
+ describe("#onMessage: BLOCK_BUNDLE", () => {
+ it("should add all the ids in the bundle to the messageBlockList and send a CLEAR_BUNDLE message", async () => {
+ const bundleIds = [FAKE_BUNDLE[0].id, FAKE_BUNDLE[1].id];
+ await Router.setState({lastMessageId: "foo"});
+ const msg = fakeAsyncMessage({type: "BLOCK_BUNDLE", data: {bundle: FAKE_BUNDLE}});
+ await Router.onMessage(msg);
- assert.calledWith(msg.target.browser.ownerGlobal.OpenBrowserWindow, {private: true});
+ assert.isTrue(Router.state.messageBlockList.includes(FAKE_BUNDLE[0].id));
+ assert.isTrue(Router.state.messageBlockList.includes(FAKE_BUNDLE[1].id));
+ assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_BUNDLE"});
+ assert.calledWithExactly(Router._storage.set, "messageBlockList", bundleIds);
+ });
});
- it("should call openLinkIn with the correct params on OPEN_URL", async () => {
- let [testMessage] = Router.state.messages;
- testMessage.button_action = {type: "OPEN_URL", data: {args: "some/url.com"}};
- const msg = fakeExecuteUserAction(testMessage.button_action);
- await Router.onMessage(msg);
- assert.calledOnce(msg.target.browser.ownerGlobal.openLinkIn);
- assert.calledWith(msg.target.browser.ownerGlobal.openLinkIn,
- "some/url.com", "tabshifted", {"private": false, "triggeringPrincipal": undefined});
+ describe("#onMessage: UNBLOCK_MESSAGE_BY_ID", () => {
+ it("should remove the id from the messageBlockList", async () => {
+ await Router.onMessage(fakeAsyncMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
+ assert.isTrue(Router.state.messageBlockList.includes("foo"));
+ await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
+
+ assert.isFalse(Router.state.messageBlockList.includes("foo"));
+ });
+ it("should save the messageBlockList", async () => {
+ await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
+
+ assert.calledWithExactly(Router._storage.set, "messageBlockList", []);
+ });
});
- it("should call openLinkIn with the correct params on OPEN_ABOUT_PAGE", async () => {
- let [testMessage] = Router.state.messages;
- testMessage.button_action = {type: "OPEN_ABOUT_PAGE", data: {args: "something"}};
- const msg = fakeExecuteUserAction(testMessage.button_action);
- await Router.onMessage(msg);
- assert.calledOnce(msg.target.browser.ownerGlobal.openTrustedLinkIn);
- assert.calledWith(msg.target.browser.ownerGlobal.openTrustedLinkIn, "about:something", "tab");
+ describe("#onMessage: UNBLOCK_PROVIDER_BY_ID", () => {
+ it("should remove the id from the providerBlockList", async () => {
+ await Router.onMessage(fakeAsyncMessage({type: "BLOCK_PROVIDER_BY_ID", data: {id: "foo"}}));
+ assert.isTrue(Router.state.providerBlockList.includes("foo"));
+ await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_PROVIDER_BY_ID", data: {id: "foo"}}));
+
+ assert.isFalse(Router.state.providerBlockList.includes("foo"));
+ });
+ it("should save the providerBlockList", async () => {
+ await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_PROVIDER_BY_ID", data: {id: "foo"}}));
+
+ assert.calledWithExactly(Router._storage.set, "providerBlockList", []);
+ });
});
- });
- describe("#onMessage: SHOW_FIREFOX_ACCOUNTS", () => {
- let globals;
- beforeEach(() => {
- globals = new GlobalOverrider();
- globals.set("FxAccounts", {config: {promiseSignUpURI: sandbox.stub().resolves("some/url")}});
+ describe("#onMessage: UNBLOCK_BUNDLE", () => {
+ it("should remove all the ids in the bundle from the messageBlockList", async () => {
+ await Router.onMessage(fakeAsyncMessage({type: "BLOCK_BUNDLE", data: {bundle: FAKE_BUNDLE}}));
+ assert.isTrue(Router.state.messageBlockList.includes(FAKE_BUNDLE[0].id));
+ assert.isTrue(Router.state.messageBlockList.includes(FAKE_BUNDLE[1].id));
+ await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_BUNDLE", data: {bundle: FAKE_BUNDLE}}));
+
+ assert.isFalse(Router.state.messageBlockList.includes(FAKE_BUNDLE[0].id));
+ assert.isFalse(Router.state.messageBlockList.includes(FAKE_BUNDLE[1].id));
+ });
+ it("should save the messageBlockList", async () => {
+ await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_BUNDLE", data: {bundle: FAKE_BUNDLE}}));
+
+ assert.calledWithExactly(Router._storage.set, "messageBlockList", []);
+ });
});
- it("should call openLinkIn with the correct params on OPEN_URL", async () => {
- let [testMessage] = Router.state.messages;
- testMessage.button_action = {type: "SHOW_FIREFOX_ACCOUNTS"};
- const msg = fakeExecuteUserAction(testMessage.button_action);
- await Router.onMessage(msg);
- assert.calledOnce(msg.target.browser.ownerGlobal.openLinkIn);
- assert.calledWith(msg.target.browser.ownerGlobal.openLinkIn,
- "some/url", "tabshifted", {"private": false, "triggeringPrincipal": undefined});
+ describe("#onMessage: ADMIN_CONNECT_STATE", () => {
+ it("should send a message containing the whole state", async () => {
+ const msg = fakeAsyncMessage({type: "ADMIN_CONNECT_STATE"});
+ await Router.onMessage(msg);
+ assert.calledOnce(msg.target.sendAsyncMessage);
+ assert.deepEqual(msg.target.sendAsyncMessage.firstCall.args[1], {
+ type: "ADMIN_SET_STATE",
+ data: Object.assign({}, Router.state, {providerPrefs: ASRouterPreferences.providers}),
+ });
+ });
});
- });
- describe("#onMessage: INSTALL_ADDON_FROM_URL", () => {
- it("should call installAddonFromURL with correct arguments", async () => {
- sandbox.stub(MessageLoaderUtils, "installAddonFromURL").resolves(null);
- const msg = fakeExecuteUserAction({type: "INSTALL_ADDON_FROM_URL", data: {url: "foo.com"}});
+ describe("#onMessage: SNIPPETS_REQUEST", () => {
+ it("should call sendNextMessage on SNIPPETS_REQUEST", async () => {
+ sandbox.stub(Router, "sendNextMessage").resolves();
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
- await Router.onMessage(msg);
+ await Router.onMessage(msg);
- assert.calledOnce(MessageLoaderUtils.installAddonFromURL);
- assert.calledWithExactly(MessageLoaderUtils.installAddonFromURL, msg.target.browser, "foo.com");
+ assert.calledOnce(Router.sendNextMessage);
+ assert.calledWithExactly(Router.sendNextMessage, sinon.match.instanceOf(FakeRemotePageManager), {});
+ });
+ it("should return the preview message if that's available and remove it from Router.state", async () => {
+ const expectedObj = {provider: "preview"};
+ Router.setState({messages: [expectedObj]});
+
+ await Router.sendNextMessage(channel);
+
+ assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: expectedObj});
+ assert.isUndefined(Router.state.messages.find(m => m.provider === "preview"));
+ });
+ it("should call _getBundledMessages if we request a message that needs to be bundled", async () => {
+ sandbox.stub(Router, "_getBundledMessages").resolves();
+ // forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
+ const [, testMessage] = Router.state.messages;
+ const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
+ await Router.onMessage(msg);
+
+ assert.calledOnce(Router._getBundledMessages);
+ });
+ it("should properly pick another message of the same template if it is bundled; force = true", async () => {
+ // forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
+ const [, testMessage1, testMessage2] = Router.state.messages;
+ const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage1.id}});
+ await Router.onMessage(msg);
+
+ // Expected object should have some properties of the original message it picked (testMessage1)
+ // plus the bundled content of the others that it picked of the same template (testMessage2)
+ const expectedObj = {
+ template: testMessage1.template,
+ provider: testMessage1.provider,
+ bundle: [{content: testMessage1.content, id: testMessage1.id, order: 1}, {content: testMessage2.content, id: testMessage2.id}],
+ };
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_BUNDLED_MESSAGES", data: expectedObj});
+ });
+ it("should properly pick another message of the same template if it is bundled; force = false", async () => {
+ // forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
+ const [, testMessage1, testMessage2] = Router.state.messages;
+ const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage1.id}});
+ await Router.setMessageById(testMessage1.id, msg.target, false);
+
+ // Expected object should have some properties of the original message it picked (testMessage1)
+ // plus the bundled content of the others that it picked of the same template (testMessage2)
+ const expectedObj = {
+ template: testMessage1.template,
+ provider: testMessage1.provider,
+ bundle: [{content: testMessage1.content, id: testMessage1.id, order: 1}, {content: testMessage2.content, id: testMessage2.id, order: 2}],
+ };
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_BUNDLED_MESSAGES", data: expectedObj});
+ });
+ it("should get the bundle and send the message if the message has a bundle", async () => {
+ sandbox.stub(Router, "sendNextMessage").resolves();
+ const msg = fakeAsyncMessage({type: "SNIPPETS_REQUEST"});
+ msg.bundled = 2; // force this message to want to be bundled
+ await Router.onMessage(msg);
+ assert.calledOnce(Router.sendNextMessage);
+ });
});
- });
- describe("#dispatch(action, target)", () => {
- it("should an action and target to onMessage", async () => {
- // use the IMPRESSION action to make sure actions are actually getting processed
- sandbox.stub(Router, "addImpression");
- sandbox.spy(Router, "onMessage");
- const target = {};
- const action = {type: "IMPRESSION"};
+ describe("#onMessage: TRIGGER", () => {
+ it("should pass the trigger to ASRouterTargeting on TRIGGER message", async () => {
+ sandbox.stub(Router, "_findMessage").resolves();
+ const msg = fakeAsyncMessage({type: "TRIGGER", data: {trigger: {id: "firstRun"}}});
+ await Router.onMessage(msg);
- Router.dispatch(action, target);
+ assert.calledOnce(Router._findMessage);
+ assert.deepEqual(Router._findMessage.firstCall.args[1], {id: "firstRun"});
+ });
+ it("consider the trigger when picking a message", async () => {
+ const messages = [
+ {id: "foo1", template: "simple_template", bundled: 1, trigger: {id: "foo"}, content: {title: "Foo1", body: "Foo123-1"}},
+ ];
- assert.calledWith(Router.onMessage, {data: action, target});
- assert.calledOnce(Router.addImpression);
+ const {data} = fakeAsyncMessage({type: "TRIGGER", data: {trigger: {id: "foo"}}});
+ const message = await Router._findMessage(messages, data.data.trigger);
+ assert.equal(message, messages[0]);
+ });
+ it("should pick a message with the right targeting and trigger", async () => {
+ let messages = [
+ {id: "foo1", template: "simple_template", bundled: 2, trigger: {id: "foo"}, content: {title: "Foo1", body: "Foo123-1"}},
+ {id: "foo2", template: "simple_template", bundled: 2, trigger: {id: "bar"}, content: {title: "Foo2", body: "Foo123-2"}},
+ {id: "foo3", template: "simple_template", bundled: 2, trigger: {id: "foo"}, content: {title: "Foo3", body: "Foo123-3"}},
+ ];
+ sandbox.stub(Router, "_findProvider").returns(null);
+ await Router.setState({messages});
+ const {target} = fakeAsyncMessage({type: "TRIGGER", data: {trigger: {id: "foo"}}});
+ let {bundle} = await Router._getBundledMessages(messages[0], target, {id: "foo"});
+ assert.equal(bundle.length, 2);
+ // it should have picked foo1 and foo3 only
+ assert.isTrue(bundle.every(elem => elem.id === "foo1" || elem.id === "foo3"));
+ });
+ it("should have previousSessionEnd in the message context", () => {
+ assert.propertyVal(Router._getMessagesContext(), "previousSessionEnd", 100);
+ });
});
- });
- describe("#onMessage: DOORHANGER_TELEMETRY", () => {
- it("should dispatch an AS_ROUTER_TELEMETRY_USER_EVENT on DOORHANGER_TELEMETRY message", async () => {
- const msg = fakeAsyncMessage({type: "DOORHANGER_TELEMETRY", data: {message_id: "foo"}});
- dispatchStub.reset();
+ describe("#onMessage: OVERRIDE_MESSAGE", () => {
+ it("should broadcast a SET_MESSAGE message to all clients with a particular id", async () => {
+ const [testMessage] = Router.state.messages;
+ const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
+ await Router.onMessage(msg);
- await Router.onMessage(msg);
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: testMessage});
+ });
- assert.calledOnce(dispatchStub);
- const [action] = dispatchStub.firstCall.args;
- assert.equal(action.type, "AS_ROUTER_TELEMETRY_USER_EVENT");
- assert.equal(action.data.message_id, "foo");
+ it("should call CFRPageActions.forceRecommendation if the template is cfr_action and force is true", async () => {
+ sandbox.stub(CFRPageActions, "forceRecommendation");
+ const testMessage = {id: "foo", template: "cfr_doorhanger"};
+ await Router.setState({messages: [testMessage]});
+ const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
+ await Router.onMessage(msg);
+
+ assert.notCalled(msg.target.sendAsyncMessage);
+ assert.calledOnce(CFRPageActions.forceRecommendation);
+ });
+
+ it("should call CFRPageActions.addRecommendation if the template is cfr_action and force is false", async () => {
+ sandbox.stub(CFRPageActions, "addRecommendation");
+ const testMessage = {id: "foo", template: "cfr_doorhanger"};
+ await Router.setState({messages: [testMessage]});
+ await Router._sendMessageToTarget(testMessage, {}, {}, false);
+
+ assert.calledOnce(CFRPageActions.addRecommendation);
+ });
+
+ it("should broadcast CLEAR_ALL if provided id did not resolve to a message", async () => {
+ const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: -1}});
+ await Router.onMessage(msg);
+
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
+ });
});
- });
- describe("#onMessage: EXPIRE_QUERY_CACHE", () => {
- it("should clear all QueryCache getters", async () => {
- const msg = fakeAsyncMessage({type: "EXPIRE_QUERY_CACHE"});
- sandbox.stub(QueryCache, "expireAll");
+ describe("#onMessage: Onboarding actions", () => {
+ it("should call OpenBrowserWindow with a private window on OPEN_PRIVATE_BROWSER_WINDOW", async () => {
+ let [testMessage] = Router.state.messages;
+ const msg = fakeExecuteUserAction({type: "OPEN_PRIVATE_BROWSER_WINDOW", data: testMessage});
+ await Router.onMessage(msg);
- await Router.onMessage(msg);
+ assert.calledWith(msg.target.browser.ownerGlobal.OpenBrowserWindow, {private: true});
+ });
+ it("should call openLinkIn with the correct params on OPEN_URL", async () => {
+ let [testMessage] = Router.state.messages;
+ testMessage.button_action = {type: "OPEN_URL", data: {args: "some/url.com"}};
+ const msg = fakeExecuteUserAction(testMessage.button_action);
+ await Router.onMessage(msg);
- assert.calledOnce(QueryCache.expireAll);
+ assert.calledOnce(msg.target.browser.ownerGlobal.openLinkIn);
+ assert.calledWith(msg.target.browser.ownerGlobal.openLinkIn,
+ "some/url.com", "tabshifted", {"private": false, "triggeringPrincipal": undefined});
+ });
+ it("should call openLinkIn with the correct params on OPEN_ABOUT_PAGE", async () => {
+ let [testMessage] = Router.state.messages;
+ testMessage.button_action = {type: "OPEN_ABOUT_PAGE", data: {args: "something"}};
+ const msg = fakeExecuteUserAction(testMessage.button_action);
+ await Router.onMessage(msg);
+
+ assert.calledOnce(msg.target.browser.ownerGlobal.openTrustedLinkIn);
+ assert.calledWith(msg.target.browser.ownerGlobal.openTrustedLinkIn, "about:something", "tab");
+ });
+ });
+
+ describe("#onMessage: SHOW_FIREFOX_ACCOUNTS", () => {
+ let globals;
+ beforeEach(() => {
+ globals = new GlobalOverrider();
+ globals.set("FxAccounts", {config: {promiseSignUpURI: sandbox.stub().resolves("some/url")}});
+ });
+ it("should call openLinkIn with the correct params on OPEN_URL", async () => {
+ let [testMessage] = Router.state.messages;
+ testMessage.button_action = {type: "SHOW_FIREFOX_ACCOUNTS"};
+ const msg = fakeExecuteUserAction(testMessage.button_action);
+ await Router.onMessage(msg);
+
+ assert.calledOnce(msg.target.browser.ownerGlobal.openLinkIn);
+ assert.calledWith(msg.target.browser.ownerGlobal.openLinkIn,
+ "some/url", "tabshifted", {"private": false, "triggeringPrincipal": undefined});
+ });
+ });
+
+ describe("#onMessage: INSTALL_ADDON_FROM_URL", () => {
+ it("should call installAddonFromURL with correct arguments", async () => {
+ sandbox.stub(MessageLoaderUtils, "installAddonFromURL").resolves(null);
+ const msg = fakeExecuteUserAction({type: "INSTALL_ADDON_FROM_URL", data: {url: "foo.com"}});
+
+ await Router.onMessage(msg);
+
+ assert.calledOnce(MessageLoaderUtils.installAddonFromURL);
+ assert.calledWithExactly(MessageLoaderUtils.installAddonFromURL, msg.target.browser, "foo.com");
+ });
+ });
+
+ describe("#dispatch(action, target)", () => {
+ it("should an action and target to onMessage", async () => {
+ // use the IMPRESSION action to make sure actions are actually getting processed
+ sandbox.stub(Router, "addImpression");
+ sandbox.spy(Router, "onMessage");
+ const target = {};
+ const action = {type: "IMPRESSION"};
+
+ Router.dispatch(action, target);
+
+ assert.calledWith(Router.onMessage, {data: action, target});
+ assert.calledOnce(Router.addImpression);
+ });
+ });
+
+ describe("#onMessage: DOORHANGER_TELEMETRY", () => {
+ it("should dispatch an AS_ROUTER_TELEMETRY_USER_EVENT on DOORHANGER_TELEMETRY message", async () => {
+ const msg = fakeAsyncMessage({type: "DOORHANGER_TELEMETRY", data: {message_id: "foo"}});
+ dispatchStub.reset();
+
+ await Router.onMessage(msg);
+
+ assert.calledOnce(dispatchStub);
+ const [action] = dispatchStub.firstCall.args;
+ assert.equal(action.type, "AS_ROUTER_TELEMETRY_USER_EVENT");
+ assert.equal(action.data.message_id, "foo");
+ });
+ });
+
+ describe("#onMessage: EXPIRE_QUERY_CACHE", () => {
+ it("should clear all QueryCache getters", async () => {
+ const msg = fakeAsyncMessage({type: "EXPIRE_QUERY_CACHE"});
+ sandbox.stub(QueryCache, "expireAll");
+
+ await Router.onMessage(msg);
+
+ assert.calledOnce(QueryCache.expireAll);
+ });
+ });
+
+ describe("#onMessage: ENABLE_PROVIDER", () => {
+ it("should enable the provider via ASRouterPreferences", async () => {
+ const msg = fakeAsyncMessage({type: "ENABLE_PROVIDER", data: "foo"});
+ sandbox.stub(ASRouterPreferences, "enableOrDisableProvider");
+
+ await Router.onMessage(msg);
+
+ assert.calledWith(ASRouterPreferences.enableOrDisableProvider, "foo", true);
+ });
+ });
+
+ describe("#onMessage: DISABLE_PROVIDER", () => {
+ it("should disable the provider via ASRouterPreferences", async () => {
+ const msg = fakeAsyncMessage({type: "DISABLE_PROVIDER", data: "foo"});
+ sandbox.stub(ASRouterPreferences, "enableOrDisableProvider");
+
+ await Router.onMessage(msg);
+
+ assert.calledWith(ASRouterPreferences.enableOrDisableProvider, "foo", false);
+ });
+ });
+
+ describe("#onMessage: RESET_PROVIDER_PREF", () => {
+ it("should reset provider pref via ASRouterPreferences", async () => {
+ const msg = fakeAsyncMessage({type: "RESET_PROVIDER_PREF", data: "foo"});
+ sandbox.stub(ASRouterPreferences, "resetProviderPref");
+
+ await Router.onMessage(msg);
+
+ assert.calledOnce(ASRouterPreferences.resetProviderPref);
+ });
});
});
diff --git a/browser/components/newtab/test/unit/asrouter/ASRouterPreferences.test.js b/browser/components/newtab/test/unit/asrouter/ASRouterPreferences.test.js
index ab5ef2f404fe..17ce7c664771 100644
--- a/browser/components/newtab/test/unit/asrouter/ASRouterPreferences.test.js
+++ b/browser/components/newtab/test/unit/asrouter/ASRouterPreferences.test.js
@@ -9,8 +9,9 @@ const SNIPPETS_USER_PREF = "browser.newtabpage.activity-stream.feeds.snippets";
* 1. asrouter.messageProvider
* 2. asrouter.devtoolsEnabled
* 3. browser.newtabpage.activity-stream.feeds.snippets (user preference - snippets)
+ * 4. browser.newtabpage.activity-stream.asrouter.userprefs.cfr (user preference - cfr)
*/
-const NUMBER_OF_PREFS_TO_OBSERVE = 3;
+const NUMBER_OF_PREFS_TO_OBSERVE = 4;
describe("ASRouterPreferences", () => {
let ASRouterPreferences;
@@ -163,6 +164,45 @@ describe("ASRouterPreferences", () => {
assert.isTrue(ASRouterPreferences.getUserPreference("snippets"));
});
});
+ describe("#enableOrDisableProvider", () => {
+ it("should enable an existing provider if second param is true", () => {
+ const setStub = sandbox.stub(global.Services.prefs, "setStringPref");
+ stringPrefStub.withArgs(PROVIDER_PREF).returns(JSON.stringify([{id: "foo", enabled: false}, {id: "bar", enabled: false}]));
+ assert.isFalse(ASRouterPreferences.providers[0].enabled);
+
+ ASRouterPreferences.enableOrDisableProvider("foo", true);
+
+ assert.calledWith(setStub, PROVIDER_PREF, JSON.stringify([{id: "foo", enabled: true}, {id: "bar", enabled: false}]));
+ });
+ it("should disable an existing provider if second param is false", () => {
+ const setStub = sandbox.stub(global.Services.prefs, "setStringPref");
+ stringPrefStub.withArgs(PROVIDER_PREF).returns(JSON.stringify([{id: "foo", enabled: true}, {id: "bar", enabled: true}]));
+ assert.isTrue(ASRouterPreferences.providers[0].enabled);
+
+ ASRouterPreferences.enableOrDisableProvider("foo", false);
+
+ assert.calledWith(setStub, PROVIDER_PREF, JSON.stringify([{id: "foo", enabled: false}, {id: "bar", enabled: true}]));
+ });
+ it("should not throw if the id does not exist", () => {
+ assert.doesNotThrow(() => {
+ ASRouterPreferences.enableOrDisableProvider("does_not_exist", true);
+ });
+ });
+ it("should not throw if pref is not parseable", () => {
+ stringPrefStub.withArgs(PROVIDER_PREF).returns("not valid");
+ assert.doesNotThrow(() => {
+ ASRouterPreferences.enableOrDisableProvider("foo", true);
+ });
+ });
+ });
+ describe("#resetProviderPref", () => {
+ it("should reset the pref and user prefs", () => {
+ const resetStub = sandbox.stub(global.Services.prefs, "clearUserPref");
+ ASRouterPreferences.resetProviderPref();
+ assert.calledWith(resetStub, PROVIDER_PREF);
+ assert.calledWith(resetStub, SNIPPETS_USER_PREF);
+ });
+ });
describe("observer, listeners", () => {
it("should invalidate .providers when the pref is changed", () => {
const testProviders = [{id: "newstuff"}];
diff --git a/browser/components/newtab/test/unit/asrouter/RichText.test.jsx b/browser/components/newtab/test/unit/asrouter/RichText.test.jsx
index a5919db0d410..6e27fd04357e 100644
--- a/browser/components/newtab/test/unit/asrouter/RichText.test.jsx
+++ b/browser/components/newtab/test/unit/asrouter/RichText.test.jsx
@@ -1,4 +1,7 @@
-import {convertLinks} from "content-src/asrouter/components/RichText/RichText";
+import {convertLinks, RichText} from "content-src/asrouter/components/RichText/RichText";
+import {Localized} from "fluent-react";
+import {mount} from "enzyme";
+import React from "react";
describe("convertLinks", () => {
let sandbox;
@@ -40,4 +43,10 @@ describe("convertLinks", () => {
assert.propertyVal(result.cta.props, "data-args", cta.args);
assert.propertyVal(result.cta.props, "onClick", stub);
});
+ it("should allow for custom elements & styles", () => {
+ const wrapper = mount( }} text="foo " localization_id="text" />);
+
+ const localized = wrapper.find(Localized);
+ assert.propertyVal(localized.props().em.props.style, "color", "#f05");
+ });
});
diff --git a/browser/components/newtab/test/unit/asrouter/SnippetsTestMessageProvider.test.js b/browser/components/newtab/test/unit/asrouter/SnippetsTestMessageProvider.test.js
index eda6d59cd33b..a79f041f062c 100644
--- a/browser/components/newtab/test/unit/asrouter/SnippetsTestMessageProvider.test.js
+++ b/browser/components/newtab/test/unit/asrouter/SnippetsTestMessageProvider.test.js
@@ -1,3 +1,4 @@
+import EOYSnippetSchema from "../../../content-src/asrouter/templates/EOYSnippet/EOYSnippet.schema.json";
import SimpleSnippetSchema from "../../../content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.schema.json";
import {SnippetsTestMessageProvider} from "../../../lib/SnippetsTestMessageProvider.jsm";
import SubmitFormSnippetSchema from "../../../content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json";
@@ -7,6 +8,7 @@ const schemas = {
"newsletter_snippet": SubmitFormSnippetSchema,
"fxa_signup_snippet": SubmitFormSnippetSchema,
"send_to_device_snippet": SubmitFormSnippetSchema,
+ "eoy_snippet": EOYSnippetSchema,
};
describe("SnippetsTestMessageProvider", () => {
diff --git a/browser/components/newtab/test/unit/asrouter/compatibility-reference/fx57-compat.test.js b/browser/components/newtab/test/unit/asrouter/compatibility-reference/fx57-compat.test.js
new file mode 100644
index 000000000000..a334622611a2
--- /dev/null
+++ b/browser/components/newtab/test/unit/asrouter/compatibility-reference/fx57-compat.test.js
@@ -0,0 +1,26 @@
+import EOYSnippetSchema from "content-src/asrouter/templates/EOYSnippet/EOYSnippet.schema.json";
+import {expectedValues} from "./snippets-fx57";
+import SimpleSnippetSchema from "content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.schema.json";
+import SubmitFormSchema from "content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json";
+
+export const SnippetsSchemas = {
+ eoy_snippet: EOYSnippetSchema,
+ simple_snippet: SimpleSnippetSchema,
+ newsletter_snippet: SubmitFormSchema,
+ fxa_signup_snippet: SubmitFormSchema,
+ send_to_device_snippet: SubmitFormSchema,
+};
+
+describe("Firefox 57 compatibility test", () => {
+ Object.keys(expectedValues).forEach(template => {
+ describe(template, () => {
+ const schema = SnippetsSchemas[template];
+ it(`should have a schema for ${template}`, () => {
+ assert.ok(schema);
+ });
+ it(`should validate with the schema for ${template}`, () => {
+ assert.jsonSchema(expectedValues[template], schema);
+ });
+ });
+ });
+});
diff --git a/browser/components/newtab/test/unit/asrouter/compatibility-reference/snippets-fx57.js b/browser/components/newtab/test/unit/asrouter/compatibility-reference/snippets-fx57.js
new file mode 100644
index 000000000000..9dc1cd219bd7
--- /dev/null
+++ b/browser/components/newtab/test/unit/asrouter/compatibility-reference/snippets-fx57.js
@@ -0,0 +1,125 @@
+/**
+ * IMPORTANT NOTE!!!
+ *
+ * Please DO NOT introduce breaking changes file without contacting snippets endpoint engineers
+ * and changing the schema version to reflect a breaking change.
+ *
+ */
+
+const DATA_URI_IMAGE = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
+
+export const expectedValues = {
+
+ // Simple Snippet (https://github.com/mozmeao/snippets/blob/master/activity-stream/simple-snippet.html)
+ simple_snippet: {
+ icon: DATA_URI_IMAGE,
+ button_label: "Click me",
+ button_url: "https://mozilla.org",
+ button_background_color: "#FF0000",
+ button_color: "#FFFFFF",
+ text: "Hello world",
+ title: "Hi!",
+ title_icon: DATA_URI_IMAGE,
+ tall: true,
+ },
+
+ // FXA Snippet (https://github.com/mozmeao/snippets/blob/master/activity-stream/fxa.html)
+ fxa_signup_snippet: {
+ scene1_icon: DATA_URI_IMAGE,
+ scene1_button_label: "Click me",
+ scene1_button_background_color: "#FF0000",
+ scene1_button_color: "#FFFFFF",
+ scene1_text: "Hello world ",
+ scene1_title: "Hi!",
+ scene1_title_icon: DATA_URI_IMAGE,
+
+ scene2_text: "Second scene",
+ scene2_title: "Second scene title",
+ scene2_email_placeholder_text: "Email here",
+ scene2_button_label: "Sign Me Up",
+ scene2_dismiss_button_text: "Dismiss",
+
+ utm_campaign: "snippets123",
+ utm_term: "123term",
+ },
+
+ // Send To Device Snippet (https://github.com/mozmeao/snippets/blob/master/activity-stream/send-to-device.html)
+ send_to_device_snippet: {
+ include_sms: true,
+ locale: "de",
+ country: "DE",
+ message_id_sms: "foo",
+ message_id_email: "foo",
+ scene1_button_background_color: "#FF0000",
+ scene1_button_color: "#FFFFFF",
+ scene1_button_label: "Click me",
+ scene1_icon: DATA_URI_IMAGE,
+ scene1_text: "Hello world",
+ scene1_title: "Hi!",
+ scene1_title_icon: DATA_URI_IMAGE,
+
+ scene2_button_label: "Sign Me Up",
+ scene2_disclaimer_html: "Hello world ",
+ scene2_dismiss_button_text: "Dismiss",
+ scene2_icon: DATA_URI_IMAGE,
+ scene2_input_placeholder: "Email here",
+
+ scene2_text: "Second scene",
+ scene2_title: "Second scene title",
+
+ error_text: "error",
+ success_text: "all good",
+ success_title: "Ok!",
+ },
+
+ // Newsletter Snippet (https://github.com/mozmeao/snippets/blob/master/activity-stream/newsletter-subscribe.html)
+ newsletter_snippet: {
+ scene1_icon: DATA_URI_IMAGE,
+ scene1_button_label: "Click me",
+ scene1_button_background_color: "#FF0000",
+ scene1_button_color: "#FFFFFF",
+ scene1_text: "Hello world",
+ scene1_title: "Hi!",
+ scene1_title_icon: DATA_URI_IMAGE,
+
+ scene2_text: "Second scene",
+ scene2_title: "Second scene title",
+ scene2_newsletter: "foo",
+ scene2_email_placeholder_text: "Email here",
+ scene2_button_label: "Sign Me Up",
+ scene2_privacy_html: "Hello world ",
+ scene2_dismiss_button_text: "Dismiss",
+
+ locale: "de",
+
+ error_text: "error",
+ success_text: "all good",
+ },
+
+ // EOY Snippet (https://github.com/mozmeao/snippets/blob/master/activity-stream/mofo-eoy-2017.html)
+ eoy_snippet: {
+ block_button_text: "Block",
+
+ donation_form_url: "https://donate.mozilla.org/",
+ text: "Big corporations want to restrict how we access the web. Fake news is making it harder for us to find the truth. Online bullies are silencing inspired voices. The not-for-profit Mozilla Foundation fights for a healthy internet with programs like our Tech Policy Fellowships and Internet Health Report; will you donate today?",
+ icon: DATA_URI_IMAGE,
+ button_label: "Donate",
+ monthly_checkbox_label_text: "Make my donation monthly",
+ button_background_color: "#0060DF",
+ button_color: "#FFFFFF",
+ background_color: "#FFFFFF",
+ text_color: "#000000",
+ highlight_color: "#FFE900",
+
+ locale: "en-US",
+ currency_code: "usd",
+
+ donation_amount_first: 50,
+ donation_amount_second: 25,
+ donation_amount_third: 10,
+ donation_amount_fourth: 3,
+ selected_button: "donation_amount_second",
+
+ test: "bold",
+ },
+};
diff --git a/browser/components/newtab/test/unit/asrouter/templates/EOYSnippet.test.jsx b/browser/components/newtab/test/unit/asrouter/templates/EOYSnippet.test.jsx
new file mode 100644
index 000000000000..16a4652caf86
--- /dev/null
+++ b/browser/components/newtab/test/unit/asrouter/templates/EOYSnippet.test.jsx
@@ -0,0 +1,117 @@
+import {EOYSnippet} from "content-src/asrouter/templates/EOYSnippet/EOYSnippet";
+import {GlobalOverrider} from "test/unit/utils";
+import {mount} from "enzyme";
+import React from "react";
+import schema from "content-src/asrouter/templates/EOYSnippet/EOYSnippet.schema.json";
+
+const DEFAULT_CONTENT = {
+ text: "foo",
+ donation_amount_first: 50,
+ donation_amount_second: 25,
+ donation_amount_third: 10,
+ donation_amount_fourth: 5,
+ donation_form_url: "https://submit.form",
+ button_label: "Donate",
+ currency_code: "usd",
+};
+
+describe("EOYSnippet", () => {
+ let sandbox;
+ let wrapper;
+
+ /**
+ * mountAndCheckProps - Mounts a EOYSnippet with DEFAULT_CONTENT extended with any props
+ * passed in the content param and validates props against the schema.
+ * @param {obj} content Object containing custom message content (e.g. {text, icon, title})
+ * @returns enzyme wrapper for EOYSnippet
+ */
+ function mountAndCheckProps(content = {}, provider = "test-provider") {
+ const props = {
+ content: Object.assign({}, DEFAULT_CONTENT, content),
+ provider,
+ onAction: sandbox.stub(),
+ onBlock: sandbox.stub(),
+ };
+ assert.jsonSchema(props.content, schema);
+ return mount( );
+ }
+
+ beforeEach(() => {
+ sandbox = sinon.sandbox.create();
+ wrapper = mountAndCheckProps();
+ });
+
+ afterEach(() => {
+ sandbox.restore();
+ });
+
+ it("should render 4 donation options", () => {
+ assert.lengthOf(wrapper.find("input[type='radio']"), 4);
+ });
+
+ it("should select the second donation option", () => {
+ wrapper = mountAndCheckProps({selected_button: "donation_amount_second"});
+
+ assert.propertyVal(wrapper.find("input[type='radio']").get(1).props, "defaultChecked", true);
+ });
+
+ it("should set frequency value to monthly", () => {
+ const form = wrapper.find("form").instance();
+ assert.equal(form.querySelector("[name='frequency']").value, "single");
+
+ form.querySelector("#monthly-checkbox").checked = true;
+ wrapper.find("form").simulate("submit");
+
+ assert.equal(form.querySelector("[name='frequency']").value, "monthly");
+ });
+
+ it("should block after submitting the form", () => {
+ const onBlockStub = sandbox.stub();
+ wrapper.setProps({onBlock: onBlockStub});
+
+ wrapper.find("form").simulate("submit");
+
+ assert.calledOnce(onBlockStub);
+ });
+
+ it("should not block if do_not_autoblock is true", () => {
+ const onBlockStub = sandbox.stub();
+ wrapper = mountAndCheckProps({do_not_autoblock: true});
+ wrapper.setProps({onBlock: onBlockStub});
+
+ wrapper.find("form").simulate("submit");
+
+ assert.notCalled(onBlockStub);
+ });
+
+ describe("locale", () => {
+ let stub;
+ let globals;
+ beforeEach(() => {
+ globals = new GlobalOverrider();
+ stub = sandbox.stub().returns({format: () => {}});
+
+ globals = new GlobalOverrider();
+ globals.set({"Intl": {NumberFormat: stub}});
+ });
+ afterEach(() => {
+ globals.restore();
+ });
+
+ it("should use content.locale for Intl", () => {
+ // triggers component rendering and calls the function we're testing
+ wrapper.setProps({content: {locale: "locale-foo"}});
+
+ assert.calledOnce(stub);
+ assert.calledWithExactly(stub, "locale-foo", sinon.match.object);
+ });
+
+ it("should use navigator.language as locale fallback", () => {
+ // triggers component rendering and calls the function we're testing
+ wrapper.setProps({content: {locale: null}});
+
+ assert.calledOnce(stub);
+ assert.calledWithExactly(stub, navigator.language, sinon.match.object);
+ });
+ });
+});
diff --git a/browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx b/browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx
index 6f01c91dc7c2..ce8d698fc12b 100644
--- a/browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx
+++ b/browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx
@@ -173,6 +173,21 @@ describe("SubmitFormSnippet", () => {
assert.equal(wrapper.state().signupSubmitted, true);
assert.notCalled(onBlockStub);
});
+ it("should not block if do_not_autoblock is true", async () => {
+ sandbox.stub(window, "fetch").resolves(fetchOk);
+ wrapper = mountAndCheckProps({
+ scene1_text: "bar",
+ scene2_email_placeholder_text: "Email",
+ scene2_text: "signup",
+ do_not_autoblock: true,
+ });
+ wrapper.setState({expanded: true});
+ await wrapper.instance().handleSubmit({preventDefault: sandbox.stub()});
+
+ assert.equal(wrapper.state().signupSuccess, true);
+ assert.equal(wrapper.state().signupSubmitted, true);
+ assert.notCalled(onBlockStub);
+ });
it("should send user telemetry if submission failed", async () => {
sandbox.stub(window, "fetch").resolves(fetchFail);
wrapper.setState({expanded: true});
diff --git a/browser/components/newtab/test/unit/lib/TelemetryFeed.test.js b/browser/components/newtab/test/unit/lib/TelemetryFeed.test.js
index 6df4f8663bce..1578ca4ede65 100644
--- a/browser/components/newtab/test/unit/lib/TelemetryFeed.test.js
+++ b/browser/components/newtab/test/unit/lib/TelemetryFeed.test.js
@@ -992,6 +992,7 @@ describe("TelemetryFeed", () => {
home_url_category: "other",
newtab_url_category: "other",
});
+ assert.validate(sendEvent.firstCall.args[0], UserEventPing);
});
it("should not send an event if neither about:{home,newtab} are set to custom URL", async () => {
instance._prefs.set(TELEMETRY_PREF, true);
diff --git a/browser/components/newtab/test/unit/unit-entry.js b/browser/components/newtab/test/unit/unit-entry.js
index 7cd235685ec6..c831bf7f65d1 100644
--- a/browser/components/newtab/test/unit/unit-entry.js
+++ b/browser/components/newtab/test/unit/unit-entry.js
@@ -140,6 +140,7 @@ const TEST_GLOBAL = {
getPrefType() {},
clearUserPref() {},
getStringPref() {},
+ setStringPref() {},
getIntPref() {},
getBoolPref() {},
setBoolPref() {},