summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/rules/types.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/rules/types.js165
1 files changed, 165 insertions, 0 deletions
diff --git a/devtools/client/inspector/rules/types.js b/devtools/client/inspector/rules/types.js
new file mode 100644
index 0000000000..62c0db7fd4
--- /dev/null
+++ b/devtools/client/inspector/rules/types.js
@@ -0,0 +1,165 @@
+/* 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/. */
+
+"use strict";
+
+const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.js");
+
+/**
+ * A CSS class.
+ */
+exports.classes = {
+ // The CSS class name.
+ name: PropTypes.string,
+
+ // Whether or not the CSS class is applied.
+ isApplied: PropTypes.bool,
+};
+
+/**
+ * A CSS declaration.
+ */
+const declaration = (exports.declaration = {
+ // Array of the computed properties for a CSS declaration.
+ computedProperties: PropTypes.arrayOf(
+ PropTypes.shape({
+ // Whether or not the computed property is overridden.
+ isOverridden: PropTypes.bool,
+ // The computed property name.
+ name: PropTypes.string,
+ // The computed priority (either "important" or an empty string).
+ priority: PropTypes.string,
+ // The computed property value.
+ value: PropTypes.string,
+ })
+ ),
+
+ // An unique CSS declaration id.
+ id: PropTypes.string,
+
+ // Whether or not the declaration is valid. (Does it make sense for this value
+ // to be assigned to this property name?)
+ isDeclarationValid: PropTypes.bool,
+
+ // Whether or not the declaration is enabled.
+ isEnabled: PropTypes.bool,
+
+ // Whether or not the declaration is invisible. In an inherited rule, only the
+ // inherited declarations are shown and the rest are considered invisible.
+ isInvisible: PropTypes.bool,
+
+ // Whether or not the declaration's property name is known.
+ isKnownProperty: PropTypes.bool,
+
+ // Whether or not the property name is valid.
+ isNameValid: PropTypes.bool,
+
+ // Whether or not the the declaration is overridden.
+ isOverridden: PropTypes.bool,
+
+ // Whether or not the declaration is changed by the user.
+ isPropertyChanged: PropTypes.bool,
+
+ // The declaration's property name.
+ name: PropTypes.string,
+
+ // The declaration's priority (either "important" or an empty string).
+ priority: PropTypes.string,
+
+ // The declaration's property value.
+ value: PropTypes.string,
+});
+
+/**
+ * The pseudo classes redux structure.
+ */
+exports.pseudoClasses = {
+ // An object containing the :active pseudo class toggle state.
+ ":active": PropTypes.shape({
+ // Whether or not the :active pseudo class is checked.
+ isChecked: PropTypes.bool,
+ // Whether or not the :active pseudo class is disabled.
+ isDisabled: PropTypes.bool,
+ }),
+
+ // An object containing the :focus pseudo class toggle state.
+ ":focus": PropTypes.shape({
+ // Whether or not the :focus pseudo class is checked
+ isChecked: PropTypes.bool,
+ // Whether or not the :focus pseudo class is disabled.
+ isDisabled: PropTypes.bool,
+ }),
+
+ // An object containing the :focus-within pseudo class toggle state.
+ ":focus-within": PropTypes.shape({
+ // Whether or not the :focus-within pseudo class is checked
+ isChecked: PropTypes.bool,
+ // Whether or not the :focus-within pseudo class is disabled.
+ isDisabled: PropTypes.bool,
+ }),
+
+ // An object containing the :hover pseudo class toggle state.
+ ":hover": PropTypes.shape({
+ // Whether or not the :hover pseudo class is checked.
+ isChecked: PropTypes.bool,
+ // Whether or not the :hover pseudo class is disabled.
+ isDisabled: PropTypes.bool,
+ }),
+};
+
+/**
+ * A CSS selector.
+ */
+const selector = (exports.selector = {
+ // Function that returns a Promise containing an unique CSS selector.
+ getUniqueSelector: PropTypes.func,
+ // Array of the selectors that match the selected element.
+ matchedSelectors: PropTypes.arrayOf(PropTypes.string),
+ // The CSS rule's selector text content.
+ selectorText: PropTypes.string,
+ // Array of the CSS rule's selectors.
+ selectors: PropTypes.arrayOf(PropTypes.string),
+});
+
+/**
+ * A CSS Rule.
+ */
+exports.rule = {
+ // Array of CSS declarations.
+ declarations: PropTypes.arrayOf(PropTypes.shape(declaration)),
+
+ // An unique CSS rule id.
+ id: PropTypes.string,
+
+ // An object containing information about the CSS rule's inheritance.
+ inheritance: PropTypes.shape({
+ // The NodeFront of the element this rule was inherited from.
+ inherited: PropTypes.object,
+ // A header label for where the element this rule was inherited from.
+ inheritedSource: PropTypes.string,
+ }),
+
+ // Whether or not the rule does not match the current selected element.
+ isUnmatched: PropTypes.bool,
+
+ // Whether or not the rule is an user agent style.
+ isUserAgentStyle: PropTypes.bool,
+
+ // An object containing information about the CSS keyframes rules.
+ keyframesRule: PropTypes.shape({
+ // The actor ID of the keyframes rule.
+ id: PropTypes.string,
+ // The keyframes rule name.
+ keyframesName: PropTypes.string,
+ }),
+
+ // The pseudo-element keyword used in the rule.
+ pseudoElement: PropTypes.string,
+
+ // An object containing information about the CSS rule's selector.
+ selector: PropTypes.shape(selector),
+
+ // The CSS rule type.
+ type: PropTypes.number,
+};