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 * Convert a value to a canonical form. 40 * 41 * @param string $value 42 * 43 * @return string 44 */ 45 public function canonical(string $value): string 46 { 47 return strtoupper(parent::canonical($value)); 48 } 49 50 /** 51 * A list of controlled values for this element 52 * 53 * @return array<int|string,string> 54 */ 55 public function values(): array 56 { 57 $values = [ 58 '' => '', 59 'ADOP' => Registry::elementFactory()->make('INDI:ADOP')->label(), 60 'BAPM' => Registry::elementFactory()->make('INDI:BAPM')->label(), 61 'BARM' => Registry::elementFactory()->make('INDI:BARM')->label(), 62 'BASM' => Registry::elementFactory()->make('INDI:BASM')->label(), 63 'BIRT' => Registry::elementFactory()->make('INDI:BIRT')->label(), 64 'BLES' => Registry::elementFactory()->make('INDI:BLES')->label(), 65 'BURI' => Registry::elementFactory()->make('INDI:BURI')->label(), 66 'CENS' => Registry::elementFactory()->make('INDI:CENS')->label(), 67 'CHR' => Registry::elementFactory()->make('INDI:CHR')->label(), 68 'CHRA' => Registry::elementFactory()->make('INDI:CHRA')->label(), 69 'CONF' => Registry::elementFactory()->make('INDI:CONF')->label(), 70 'CREM' => Registry::elementFactory()->make('INDI:CREM')->label(), 71 'DEAT' => Registry::elementFactory()->make('INDI:DEAT')->label(), 72 'EMIG' => Registry::elementFactory()->make('INDI:EMIG')->label(), 73 'FCOM' => Registry::elementFactory()->make('INDI:FCOM')->label(), 74 'GRAD' => Registry::elementFactory()->make('INDI:GRAD')->label(), 75 'IMMI' => Registry::elementFactory()->make('INDI:IMMI')->label(), 76 'NATU' => Registry::elementFactory()->make('INDI:NATU')->label(), 77 'ORDN' => Registry::elementFactory()->make('INDI:ORDN')->label(), 78 'PROB' => Registry::elementFactory()->make('INDI:PROB')->label(), 79 'RETI' => Registry::elementFactory()->make('INDI:RETI')->label(), 80 'WILL' => Registry::elementFactory()->make('INDI:WILL')->label(), 81 ]; 82 83 uasort($values, I18N::comparator()); 84 85 return $values; 86 } 87} 88