1<?php 2 3/** 4 * webtrees: online genealogy 5 * Copyright (C) 2023 webtrees development team 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <https://www.gnu.org/licenses/>. 16 */ 17 18declare(strict_types=1); 19 20namespace Fisharebest\Webtrees\Elements; 21 22use Fisharebest\Webtrees\I18N; 23use Fisharebest\Webtrees\Registry; 24 25use function strtoupper; 26 27/** 28 * An event which never happened. 29 */ 30class IndividualNonEvent extends AbstractElement 31{ 32 protected const SUBTAGS = [ 33 'DATE' => '0:1', 34 'NOTE' => '0:1', 35 'SOUR' => '0:1', 36 ]; 37 38 39 /** 40 * Convert a value to a canonical form. 41 * 42 * @param string $value 43 * 44 * @return string 45 */ 46 public function canonical(string $value): string 47 { 48 return strtoupper(parent::canonical($value)); 49 } 50 51 /** 52 * A list of controlled values for this element 53 * 54 * @return array<int|string,string> 55 */ 56 public function values(): array 57 { 58 $values = [ 59 '' => '', 60 'ADOP' => Registry::elementFactory()->make('INDI:ADOP')->label(), 61 'BAPM' => Registry::elementFactory()->make('INDI:BAPM')->label(), 62 'BARM' => Registry::elementFactory()->make('INDI:BARM')->label(), 63 'BASM' => Registry::elementFactory()->make('INDI:BASM')->label(), 64 'BIRT' => Registry::elementFactory()->make('INDI:BIRT')->label(), 65 'BLES' => Registry::elementFactory()->make('INDI:BLES')->label(), 66 'BURI' => Registry::elementFactory()->make('INDI:BURI')->label(), 67 'CENS' => Registry::elementFactory()->make('INDI:CENS')->label(), 68 'CHR' => Registry::elementFactory()->make('INDI:CHR')->label(), 69 'CHRA' => Registry::elementFactory()->make('INDI:CHRA')->label(), 70 'CONF' => Registry::elementFactory()->make('INDI:CONF')->label(), 71 'CREM' => Registry::elementFactory()->make('INDI:CREM')->label(), 72 'DEAT' => Registry::elementFactory()->make('INDI:DEAT')->label(), 73 'EMIG' => Registry::elementFactory()->make('INDI:EMIG')->label(), 74 'FCOM' => Registry::elementFactory()->make('INDI:FCOM')->label(), 75 'GRAD' => Registry::elementFactory()->make('INDI:GRAD')->label(), 76 'IMMI' => Registry::elementFactory()->make('INDI:IMMI')->label(), 77 'NATU' => Registry::elementFactory()->make('INDI:NATU')->label(), 78 'ORDN' => Registry::elementFactory()->make('INDI:ORDN')->label(), 79 'PROB' => Registry::elementFactory()->make('INDI:PROB')->label(), 80 'RETI' => Registry::elementFactory()->make('INDI:RETI')->label(), 81 'WILL' => Registry::elementFactory()->make('INDI:WILL')->label(), 82 ]; 83 84 uasort($values, I18N::comparator()); 85 86 return $values; 87 } 88} 89