Blame view

天文台pc/tianwentai-ui/node_modules/date-fns/locale/_lib/buildLocalizeFn.js 1.81 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  "use strict";
  exports.buildLocalizeFn = buildLocalizeFn; /* eslint-disable no-unused-vars */
  
  /**
   * The localize function argument callback which allows to convert raw value to
   * the actual type.
   *
   * @param value - The value to convert
   *
   * @returns The converted value
   */
  
  /**
   * The map of localized values for each width.
   */
  
  /**
   * The index type of the locale unit value. It types conversion of units of
   * values that don't start at 0 (i.e. quarters).
   */
  
  /**
   * Converts the unit value to the tuple of values.
   */
  
  /**
   * The tuple of localized era values. The first element represents BC,
   * the second element represents AD.
   */
  
  /**
   * The tuple of localized quarter values. The first element represents Q1.
   */
  
  /**
   * The tuple of localized day values. The first element represents Sunday.
   */
  
  /**
   * The tuple of localized month values. The first element represents January.
   */
  
  function buildLocalizeFn(args) {
    return (value, options) => {
      const context = options?.context ? String(options.context) : "standalone";
  
      let valuesArray;
      if (context === "formatting" && args.formattingValues) {
        const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
        const width = options?.width ? String(options.width) : defaultWidth;
  
        valuesArray =
          args.formattingValues[width] || args.formattingValues[defaultWidth];
      } else {
        const defaultWidth = args.defaultWidth;
        const width = options?.width ? String(options.width) : args.defaultWidth;
  
        valuesArray = args.values[width] || args.values[defaultWidth];
      }
      const index = args.argumentCallback ? args.argumentCallback(value) : value;
  
      // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
      return valuesArray[index];
    };
  }