<?php // vDTvxyYdWeYfv
/**
 * @link http://craftcms.com/
 * @copyright Copyright (c) Pixel & Tonic, Inc.
 * @license http://craftcms.com/license
 */

namespace craft\behaviors;

use yii\base\Behavior;

/**
 * Content behavior
 *
 * This class provides attributes for all the unique custom field handles.
 */
class ContentBehavior extends Behavior
{
    // Static
    // =========================================================================

    /**
     * @var string[] List of supported field handles.
     */
    public static $fieldHandles = [
        'contentPage' => true,
        'text' => true,
        'tag' => true,
        'size' => true,
        'color' => true,
        'list' => true,
        'button' => true,
        'width' => true,
        'cite' => true,
        'image' => true,
        'imageLink' => true,
        'caption' => true,
        'position' => true,
        'captionType' => true,
        'images' => true,
        'layout' => true,
        'data' => true,
        'access' => true,
        'autoplay' => true,
        'navArrows' => true,
        'navDots' => true,
        'transitionType' => true,
        'transitionTime' => true,
        'aspect' => true,
        'maxItems' => true,
        'video' => true,
        'form' => true,
        'confirm' => true,
        'viewPath' => true,
        'heading' => true,
        'summary' => true,
        'style' => true,
        'panels' => true,
        'label' => true,
        'richText' => true,
        'isOpen' => true,
        'trigger' => true,
        'triggerText' => true,
        'triggerImage' => true,
        'modalImage' => true,
        'modalHeading' => true,
        'modalRichText' => true,
        'modalButton' => true,
        'cards' => true,
        'code' => true,
        'forgotPassword' => true,
        'categories' => true,
        'limit' => true,
        'sort' => true,
        'hideSearch' => true,
        'hideFilters' => true,
        'questions' => true,
        'question' => true,
        'isTrue' => true,
        'answers' => true,
        'answer' => true,
        'isCorrect' => true,
        'quiz' => true,
        'customFields' => true,
        'postCategories' => true,
        'location' => true,
        'directions' => true,
        'event' => true,
        'email' => true,
        'firstName' => true,
        'lastName' => true,
        'phone' => true,
        'user' => true,
        'page' => true,
        'externalPage' => true,
        'accessibilityText' => true,
        'pageHeader' => true,
        'subheading' => true,
        'pageWidth' => true,
        'audio' => true,
        'document' => true,
        'tableau' => true,
        'blog' => true,
        'icon' => true,
        'seoData' => true,
        'poster' => true,
        'card' => true,
        'modal' => true,
        'modalContent' => true,
        'login' => true,
        'quoteSymbol' => true,
        'keywords' => true,
        'blogCategories' => true,
        'square' => true,
        'horizontal' => true,
        'wide' => true,
        'mediaCategories' => true,
        'locationName' => true,
        'letterbox' => true,
        'redirectPage' => true,
        'correctSummary' => true,
        'incorrectSummary' => true,
        'station' => true,
        'city' => true,
        'state' => true,
        'zipCode' => true,
        'licenseType' => true,
        'jointLicense' => true,
        'pbsDuesName' => true,
        'jobTitle' => true,
        'vizHeight' => true,
        'previewImage' => true,
        'pageNavigationType' => true,
        'hideHeading' => true,
        'panelSubheading' => true,
        'contentAside' => true,
        'widget' => true,
        'other' => true,
        'buttonAlign' => true,
        'triggerPosition' => true,
        'correctTitle' => true,
        'incorrectTitle' => true,
        'additionalContent' => true,
        'showSummary' => true,
        'failed' => true,
        'subscribePage' => true,
        'hideSidebar' => true,
        'passwordResetMail' => true,
        'vizWidth' => true,
        'vizTabs' => true,
        'vizToolbar' => true,
        'tableauAuthorizMessage' => true,
        'headerScripts' => true,
        'footerScripts' => true,
        'requiresAuth' => true,
        'requireAuth' => true,
        'basicContent' => true,
        'basicPage' => true,
        'basicSource' => true,
        'basicSummary' => true,
        'showControls' => true,
        'firstLastName' => true,
        'fiscalYear' => true,
        'documentStatus' => true,
        'confirmSubmission' => true,
        'stationCallLetters' => true,
        'licenseeOrganization' => true,
        'operatingOrganization' => true,
        'streetAddress' => true,
        'transmitterInformation' => true,
        'transmitterChanges' => true,
        'broadcastChannels' => true,
        'primaryPbsChannel' => true,
        'additionalServices' => true,
        'proRepName' => true,
        'proRepAddress' => true,
        'proRepEmail' => true,
        'proRepPhone' => true,
        'proRepTitle' => true,
        'layRep1Address' => true,
        'layRep1Email' => true,
        'layRep1Name' => true,
        'layRep1Phone' => true,
        'layRep1Title' => true,
        'layRep2Address' => true,
        'layRep2Email' => true,
        'layRep2Name' => true,
        'layRep2Phone' => true,
        'layRep2Title' => true,
        'posters' => true,
        'groupType' => true,
    ];

    // Properties
    // =========================================================================

    /**
     * @var \craft\elements\db\MatrixBlockQuery Value for field with the handle “contentPage”.
     */
    public $contentPage;

    /**
     * @var string|null|mixed Value for field with the handle “text”.
     */
    public $text;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “tag”.
     */
    public $tag;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “size”.
     */
    public $size;

    /**
     * @var mixed|\craft\fields\data\SingleOptionFieldData Value for field with the handle “color”.
     */
    public $color;

    /**
     * @var mixed Value for field with the handle “list”.
     */
    public $list;

    /**
     * @var mixed Value for field with the handle “button”.
     */
    public $button;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “width”.
     */
    public $width;

    /**
     * @var mixed Value for field with the handle “cite”.
     */
    public $cite;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “image”.
     */
    public $image;

    /**
     * @var mixed Value for field with the handle “imageLink”.
     */
    public $imageLink;

    /**
     * @var mixed|string|null Value for field with the handle “caption”.
     */
    public $caption;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “position”.
     */
    public $position;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “captionType”.
     */
    public $captionType;

    /**
     * @var mixed Value for field with the handle “images”.
     */
    public $images;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “layout”.
     */
    public $layout;

    /**
     * @var mixed Value for field with the handle “data”.
     */
    public $data;

    /**
     * @var \craft\elements\db\CategoryQuery Value for field with the handle “access”.
     */
    public $access;

    /**
     * @var bool Value for field with the handle “autoplay”.
     */
    public $autoplay;

    /**
     * @var bool Value for field with the handle “navArrows”.
     */
    public $navArrows;

    /**
     * @var bool Value for field with the handle “navDots”.
     */
    public $navDots;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “transitionType”.
     */
    public $transitionType;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “transitionTime”.
     */
    public $transitionTime;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “aspect”.
     */
    public $aspect;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “maxItems”.
     */
    public $maxItems;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “video”.
     */
    public $video;

    /**
     * @var mixed Value for field with the handle “form”.
     */
    public $form;

    /**
     * @var mixed Value for field with the handle “confirm”.
     */
    public $confirm;

    /**
     * @var string|null Value for field with the handle “viewPath”.
     */
    public $viewPath;

    /**
     * @var string|null|mixed Value for field with the handle “heading”.
     */
    public $heading;

    /**
     * @var mixed|string|null Value for field with the handle “summary”.
     */
    public $summary;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “style”.
     */
    public $style;

    /**
     * @var mixed Value for field with the handle “panels”.
     */
    public $panels;

    /**
     * @var string|null Value for field with the handle “label”.
     */
    public $label;

    /**
     * @var mixed Value for field with the handle “richText”.
     */
    public $richText;

    /**
     * @var bool Value for field with the handle “isOpen”.
     */
    public $isOpen;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “trigger”.
     */
    public $trigger;

    /**
     * @var string|null Value for field with the handle “triggerText”.
     */
    public $triggerText;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “triggerImage”.
     */
    public $triggerImage;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “modalImage”.
     */
    public $modalImage;

    /**
     * @var string|null Value for field with the handle “modalHeading”.
     */
    public $modalHeading;

    /**
     * @var mixed Value for field with the handle “modalRichText”.
     */
    public $modalRichText;

    /**
     * @var mixed Value for field with the handle “modalButton”.
     */
    public $modalButton;

    /**
     * @var mixed Value for field with the handle “cards”.
     */
    public $cards;

    /**
     * @var string|null|mixed Value for field with the handle “code”.
     */
    public $code;

    /**
     * @var bool Value for field with the handle “forgotPassword”.
     */
    public $forgotPassword;

    /**
     * @var \craft\elements\db\CategoryQuery Value for field with the handle “categories”.
     */
    public $categories;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “limit”.
     */
    public $limit;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “sort”.
     */
    public $sort;

    /**
     * @var bool Value for field with the handle “hideSearch”.
     */
    public $hideSearch;

    /**
     * @var bool Value for field with the handle “hideFilters”.
     */
    public $hideFilters;

    /**
     * @var \craft\elements\db\MatrixBlockQuery Value for field with the handle “questions”.
     */
    public $questions;

    /**
     * @var mixed Value for field with the handle “question”.
     */
    public $question;

    /**
     * @var bool Value for field with the handle “isTrue”.
     */
    public $isTrue;

    /**
     * @var mixed Value for field with the handle “answers”.
     */
    public $answers;

    /**
     * @var mixed Value for field with the handle “answer”.
     */
    public $answer;

    /**
     * @var bool Value for field with the handle “isCorrect”.
     */
    public $isCorrect;

    /**
     * @var \craft\elements\db\EntryQuery Value for field with the handle “quiz”.
     */
    public $quiz;

    /**
     * @var \craft\fields\data\MultiOptionsFieldData Value for field with the handle “customFields”.
     */
    public $customFields;

    /**
     * @var \craft\elements\db\CategoryQuery Value for field with the handle “postCategories”.
     */
    public $postCategories;

    /**
     * @var mixed Value for field with the handle “location”.
     */
    public $location;

    /**
     * @var string|null Value for field with the handle “directions”.
     */
    public $directions;

    /**
     * @var \Solspace\Calendar\Elements\Db\EventQuery|mixed Value for field with the handle “event”.
     */
    public $event;

    /**
     * @var string|null Value for field with the handle “email”.
     */
    public $email;

    /**
     * @var string|null Value for field with the handle “firstName”.
     */
    public $firstName;

    /**
     * @var string|null Value for field with the handle “lastName”.
     */
    public $lastName;

    /**
     * @var string|null Value for field with the handle “phone”.
     */
    public $phone;

    /**
     * @var \craft\elements\db\UserQuery Value for field with the handle “user”.
     */
    public $user;

    /**
     * @var \craft\elements\db\EntryQuery Value for field with the handle “page”.
     */
    public $page;

    /**
     * @var mixed Value for field with the handle “externalPage”.
     */
    public $externalPage;

    /**
     * @var string|null Value for field with the handle “accessibilityText”.
     */
    public $accessibilityText;

    /**
     * @var mixed Value for field with the handle “pageHeader”.
     */
    public $pageHeader;

    /**
     * @var mixed Value for field with the handle “subheading”.
     */
    public $subheading;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “pageWidth”.
     */
    public $pageWidth;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “audio”.
     */
    public $audio;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “document”.
     */
    public $document;

    /**
     * @var mixed Value for field with the handle “tableau”.
     */
    public $tableau;

    /**
     * @var mixed Value for field with the handle “blog”.
     */
    public $blog;

    /**
     * @var mixed Value for field with the handle “icon”.
     */
    public $icon;

    /**
     * @var mixed Value for field with the handle “seoData”.
     */
    public $seoData;

    /**
     * @var mixed Value for field with the handle “poster”.
     */
    public $poster;

    /**
     * @var mixed Value for field with the handle “card”.
     */
    public $card;

    /**
     * @var mixed Value for field with the handle “modal”.
     */
    public $modal;

    /**
     * @var mixed Value for field with the handle “modalContent”.
     */
    public $modalContent;

    /**
     * @var mixed Value for field with the handle “login”.
     */
    public $login;

    /**
     * @var bool Value for field with the handle “quoteSymbol”.
     */
    public $quoteSymbol;

    /**
     * @var string|null Value for field with the handle “keywords”.
     */
    public $keywords;

    /**
     * @var \craft\elements\db\CategoryQuery Value for field with the handle “blogCategories”.
     */
    public $blogCategories;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “square”.
     */
    public $square;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “horizontal”.
     */
    public $horizontal;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “wide”.
     */
    public $wide;

    /**
     * @var \craft\elements\db\CategoryQuery Value for field with the handle “mediaCategories”.
     */
    public $mediaCategories;

    /**
     * @var string|null Value for field with the handle “locationName”.
     */
    public $locationName;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “letterbox”.
     */
    public $letterbox;

    /**
     * @var \craft\elements\db\EntryQuery Value for field with the handle “redirectPage”.
     */
    public $redirectPage;

    /**
     * @var string|null Value for field with the handle “correctSummary”.
     */
    public $correctSummary;

    /**
     * @var string|null Value for field with the handle “incorrectSummary”.
     */
    public $incorrectSummary;

    /**
     * @var \craft\elements\db\EntryQuery Value for field with the handle “station”.
     */
    public $station;

    /**
     * @var string|null Value for field with the handle “city”.
     */
    public $city;

    /**
     * @var string|null Value for field with the handle “state”.
     */
    public $state;

    /**
     * @var string|null Value for field with the handle “zipCode”.
     */
    public $zipCode;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “licenseType”.
     */
    public $licenseType;

    /**
     * @var bool Value for field with the handle “jointLicense”.
     */
    public $jointLicense;

    /**
     * @var string|null Value for field with the handle “pbsDuesName”.
     */
    public $pbsDuesName;

    /**
     * @var string|null Value for field with the handle “jobTitle”.
     */
    public $jobTitle;

    /**
     * @var int|float|null Value for field with the handle “vizHeight”.
     */
    public $vizHeight;

    /**
     * @var \craft\elements\db\AssetQuery Value for field with the handle “previewImage”.
     */
    public $previewImage;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “pageNavigationType”.
     */
    public $pageNavigationType;

    /**
     * @var bool Value for field with the handle “hideHeading”.
     */
    public $hideHeading;

    /**
     * @var string|null Value for field with the handle “panelSubheading”.
     */
    public $panelSubheading;

    /**
     * @var \craft\elements\db\MatrixBlockQuery Value for field with the handle “contentAside”.
     */
    public $contentAside;

    /**
     * @var \craft\elements\db\EntryQuery Value for field with the handle “widget”.
     */
    public $widget;

    /**
     * @var string|null Value for field with the handle “other”.
     */
    public $other;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “buttonAlign”.
     */
    public $buttonAlign;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “triggerPosition”.
     */
    public $triggerPosition;

    /**
     * @var string|null Value for field with the handle “correctTitle”.
     */
    public $correctTitle;

    /**
     * @var string|null Value for field with the handle “incorrectTitle”.
     */
    public $incorrectTitle;

    /**
     * @var \craft\elements\db\MatrixBlockQuery Value for field with the handle “additionalContent”.
     */
    public $additionalContent;

    /**
     * @var bool Value for field with the handle “showSummary”.
     */
    public $showSummary;

    /**
     * @var mixed Value for field with the handle “failed”.
     */
    public $failed;

    /**
     * @var \craft\elements\db\EntryQuery Value for field with the handle “subscribePage”.
     */
    public $subscribePage;

    /**
     * @var bool Value for field with the handle “hideSidebar”.
     */
    public $hideSidebar;

    /**
     * @var bool Value for field with the handle “passwordResetMail”.
     */
    public $passwordResetMail;

    /**
     * @var int|float|null Value for field with the handle “vizWidth”.
     */
    public $vizWidth;

    /**
     * @var bool Value for field with the handle “vizTabs”.
     */
    public $vizTabs;

    /**
     * @var bool Value for field with the handle “vizToolbar”.
     */
    public $vizToolbar;

    /**
     * @var mixed Value for field with the handle “tableauAuthorizMessage”.
     */
    public $tableauAuthorizMessage;

    /**
     * @var string|null Value for field with the handle “headerScripts”.
     */
    public $headerScripts;

    /**
     * @var string|null Value for field with the handle “footerScripts”.
     */
    public $footerScripts;

    /**
     * @var bool Value for field with the handle “requiresAuth”.
     */
    public $requiresAuth;

    /**
     * @var bool Value for field with the handle “requireAuth”.
     */
    public $requireAuth;

    /**
     * @var \craft\elements\db\MatrixBlockQuery Value for field with the handle “basicContent”.
     */
    public $basicContent;

    /**
     * @var mixed Value for field with the handle “basicPage”.
     */
    public $basicPage;

    /**
     * @var mixed Value for field with the handle “basicSource”.
     */
    public $basicSource;

    /**
     * @var string|null Value for field with the handle “basicSummary”.
     */
    public $basicSummary;

    /**
     * @var bool Value for field with the handle “showControls”.
     */
    public $showControls;

    /**
     * @var string|null Value for field with the handle “firstLastName”.
     */
    public $firstLastName;

    /**
     * @var int|float|null Value for field with the handle “fiscalYear”.
     */
    public $fiscalYear;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “documentStatus”.
     */
    public $documentStatus;

    /**
     * @var bool Value for field with the handle “confirmSubmission”.
     */
    public $confirmSubmission;

    /**
     * @var string|null Value for field with the handle “stationCallLetters”.
     */
    public $stationCallLetters;

    /**
     * @var string|null Value for field with the handle “licenseeOrganization”.
     */
    public $licenseeOrganization;

    /**
     * @var string|null Value for field with the handle “operatingOrganization”.
     */
    public $operatingOrganization;

    /**
     * @var string|null Value for field with the handle “streetAddress”.
     */
    public $streetAddress;

    /**
     * @var string|null Value for field with the handle “transmitterInformation”.
     */
    public $transmitterInformation;

    /**
     * @var string|null Value for field with the handle “transmitterChanges”.
     */
    public $transmitterChanges;

    /**
     * @var string|null Value for field with the handle “broadcastChannels”.
     */
    public $broadcastChannels;

    /**
     * @var string|null Value for field with the handle “primaryPbsChannel”.
     */
    public $primaryPbsChannel;

    /**
     * @var string|null Value for field with the handle “additionalServices”.
     */
    public $additionalServices;

    /**
     * @var string|null Value for field with the handle “proRepName”.
     */
    public $proRepName;

    /**
     * @var string|null Value for field with the handle “proRepAddress”.
     */
    public $proRepAddress;

    /**
     * @var string|null Value for field with the handle “proRepEmail”.
     */
    public $proRepEmail;

    /**
     * @var string|null Value for field with the handle “proRepPhone”.
     */
    public $proRepPhone;

    /**
     * @var string|null Value for field with the handle “proRepTitle”.
     */
    public $proRepTitle;

    /**
     * @var string|null Value for field with the handle “layRep1Address”.
     */
    public $layRep1Address;

    /**
     * @var string|null Value for field with the handle “layRep1Email”.
     */
    public $layRep1Email;

    /**
     * @var string|null Value for field with the handle “layRep1Name”.
     */
    public $layRep1Name;

    /**
     * @var string|null Value for field with the handle “layRep1Phone”.
     */
    public $layRep1Phone;

    /**
     * @var string|null Value for field with the handle “layRep1Title”.
     */
    public $layRep1Title;

    /**
     * @var string|null Value for field with the handle “layRep2Address”.
     */
    public $layRep2Address;

    /**
     * @var string|null Value for field with the handle “layRep2Email”.
     */
    public $layRep2Email;

    /**
     * @var string|null Value for field with the handle “layRep2Name”.
     */
    public $layRep2Name;

    /**
     * @var string|null Value for field with the handle “layRep2Phone”.
     */
    public $layRep2Phone;

    /**
     * @var string|null Value for field with the handle “layRep2Title”.
     */
    public $layRep2Title;

    /**
     * @var mixed Value for field with the handle “posters”.
     */
    public $posters;

    /**
     * @var \craft\fields\data\SingleOptionFieldData Value for field with the handle “groupType”.
     */
    public $groupType;

    /**
     * @var array Additional custom field values we don’t know about yet.
     */
    private $_customFieldValues = [];

    // Magic Property Methods
    // =========================================================================

    /**
     * @inheritdoc
     */
    public function __isset($name)
    {
        if (isset(self::$fieldHandles[$name])) {
            return true;
        }
        return parent::__isset($name);
    }

    /**
     * @inheritdoc
     */
    public function __get($name)
    {
        if (isset(self::$fieldHandles[$name])) {
            return $this->_customFieldValues[$name] ?? null;
        }
        return parent::__get($name);
    }

    /**
     * @inheritdoc
     */
    public function __set($name, $value)
    {
        if (isset(self::$fieldHandles[$name])) {
            $this->_customFieldValues[$name] = $value;
            return;
        }
        parent::__set($name, $value);
    }

    /**
     * @inheritdoc
     */
    public function canGetProperty($name, $checkVars = true)
    {
        if ($checkVars && isset(self::$fieldHandles[$name])) {
            return true;
        }
        return parent::canGetProperty($name, $checkVars);
    }

    /**
     * @inheritdoc
     */
    public function canSetProperty($name, $checkVars = true)
    {
        if ($checkVars && isset(self::$fieldHandles[$name])) {
            return true;
        }
        return parent::canSetProperty($name, $checkVars);
    }
}
