@procore/data-table 14.46.5 → 14.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import React80, { useEffect, useState, forwardRef, useContext, useRef, useImperativeHandle, useLayoutEffect, useCallback, useMemo, memo, Component as Component$1, createElement } from 'react';
2
2
  import { uniqBy, prop, startsWith, mergeDeepRight, intersection, equals, omit, mergeDeepLeft, isNil, isEmpty, groupBy } from 'ramda';
3
- import { useI18nContext, Select, Input, UNSAFE_useOverlayTriggerContext, Card, Flex, Box, SegmentedController, Calendar, useDateTime, OverlayTrigger, isEventSource, DateInput, UNSAFE_isValidYearRange, DateSelect, PillSelect, TextArea, UNSAFE_useMenuImperativeControlNavigation, UNSAFE_Menu, UNSAFE_menuItemsWrapperAttribute, Spinner as Spinner$1, FlexList, Typography, Tooltip, Button, Required, MultiSelect, colors, Form, spacing, Switch, Panel, SelectButton, StyledSelectButton, typographyWeights, StyledSelectButtonLabel, StyledButton, StyledSelectArrow, Popover, UNSAFE_StyledSuperSelectTrigger, UNSAFE_StyledSuperSelectLabel, UNSAFE_StyledSuperSelectArrow, UNSAFE_StyledFilterTokenLabel, DateTimeProvider, UNSAFE_mergeRefs, useField, Label as Label$1, ContactItem as ContactItem$1, Checkbox, RadioButton, Link, AvatarStack, Pill, UNSAFE_SuperSelect, ToggleButton, Avatar, UNSAFE_useSuperSelectContext, UNSAFE_FilterToken, Typeahead, useI18n, I18nContext, Pagination as Pagination$1, H3, useVisibility, DropdownFlyout, EmptyState as EmptyState$1, StyledDropdownFlyoutLabel, StyledDropdownFlyoutExpandIcon } from '@procore/core-react';
3
+ import { useI18nContext, Select, Input, UNSAFE_useOverlayTriggerContext, Card, Flex, Box, SegmentedController, Calendar, useDateTime, OverlayTrigger, isEventSource, DateInput, UNSAFE_isValidYearRange, DateSelect, PillSelect, TextArea, UNSAFE_useMenuImperativeControlNavigation, UNSAFE_Menu, UNSAFE_menuItemsWrapperAttribute, Spinner as Spinner$1, FlexList, Typography, Tooltip, Button, Required, MultiSelect, colors, Form, spacing, Switch, Panel, SelectButton, StyledSelectButton, typographyWeights, StyledSelectButtonLabel, StyledButton, StyledSelectArrow, Popover, UNSAFE_StyledSuperSelectTrigger, UNSAFE_StyledSuperSelectLabel, UNSAFE_StyledSuperSelectArrow, UNSAFE_StyledFilterTokenLabel, DateTimeProvider, UNSAFE_mergeRefs, useField, Label, ContactItem as ContactItem$1, Checkbox, RadioButton, Link, AvatarStack, Pill, UNSAFE_SuperSelect, ToggleButton, Avatar, UNSAFE_useSuperSelectContext, UNSAFE_FilterToken, Typeahead, useI18n, I18nContext, Pagination as Pagination$1, useVisibility, DropdownFlyout, EmptyState as EmptyState$1, StyledDropdownFlyoutLabel, StyledDropdownFlyoutExpandIcon } from '@procore/core-react';
4
4
  import classnames from 'classnames/bind';
5
5
  import debounce5 from 'lodash.debounce';
6
6
  import { Error as Error$1, Grip, Building, ExternalLink, Clear, Calendar as Calendar$1, Pencil, CaretsIn, CaretsOut, ArrowDown, ArrowUp, CaretsInVertical, CaretsOutVerticalWithLine, CaretsOutVertical, CaretDown, CaretRight } from '@procore/core-icons';
@@ -54207,8 +54207,23 @@ function useFilterOptions() {
54207
54207
  }
54208
54208
  var NumberFilterRenderer = React80.memo(
54209
54209
  function(props) {
54210
- const ariaLabelledBy = props["aria-labelledby"];
54210
+ const fieldLabel = props["aria-label"];
54211
54211
  const I18n = useI18nContext();
54212
+ const minValueAriaLabel = I18n.t("labels.min_value_aria_label", {
54213
+ defaultValue: "%{field} minimum value",
54214
+ field: fieldLabel ?? "",
54215
+ scope
54216
+ }).trim();
54217
+ const maxValueAriaLabel = I18n.t("labels.max_value_aria_label", {
54218
+ defaultValue: "%{field} maximum value",
54219
+ field: fieldLabel ?? "",
54220
+ scope
54221
+ }).trim();
54222
+ const valueAriaLabel = I18n.t("labels.value_aria_label", {
54223
+ defaultValue: "%{field} value",
54224
+ field: fieldLabel ?? "",
54225
+ scope
54226
+ }).trim();
54212
54227
  const defaultFilterOptions = useFilterOptions();
54213
54228
  const lowerLimitInputRef = React80.useRef(null);
54214
54229
  const [localValue, setLocalValue] = React80.useState(
@@ -54297,7 +54312,7 @@ var NumberFilterRenderer = React80.memo(
54297
54312
  {
54298
54313
  block: true,
54299
54314
  label: localLabel,
54300
- "aria-labelledby": ariaLabelledBy,
54315
+ "aria-label": fieldLabel,
54301
54316
  onClear,
54302
54317
  onSelect,
54303
54318
  placeholder: I18n.t("labels.placeholder", {
@@ -54329,6 +54344,7 @@ var NumberFilterRenderer = React80.memo(
54329
54344
  {
54330
54345
  ref: lowerLimitInputRef,
54331
54346
  type: "number",
54347
+ "aria-label": hasUpperLimitValue ? minValueAriaLabel : valueAriaLabel,
54332
54348
  placeholder: I18n.t("labels.input_placeholder", {
54333
54349
  defaultValue: "Enter Value",
54334
54350
  scope
@@ -54345,6 +54361,7 @@ var NumberFilterRenderer = React80.memo(
54345
54361
  Input,
54346
54362
  {
54347
54363
  type: "number",
54364
+ "aria-label": maxValueAriaLabel,
54348
54365
  value: localValue == null ? void 0 : localValue.filterTo,
54349
54366
  onChange: onUpdateUpperLimit
54350
54367
  }
@@ -54530,6 +54547,7 @@ var ServerSideFilter = ({
54530
54547
  );
54531
54548
  return null;
54532
54549
  }
54550
+ const filterLabel = typeof filterHeading === "string" ? filterHeading : columnDefinition.headerName;
54533
54551
  return /* @__PURE__ */ React80.createElement(
54534
54552
  Box,
54535
54553
  {
@@ -54539,7 +54557,7 @@ var ServerSideFilter = ({
54539
54557
  style: { width: "100%" }
54540
54558
  },
54541
54559
  filterHeading ? /* @__PURE__ */ React80.createElement(
54542
- H3,
54560
+ Label,
54543
54561
  {
54544
54562
  "data-qa": `data-table-filter-heading-${fieldName}`,
54545
54563
  id: `data-table-filter-heading-${fieldName}`
@@ -54549,6 +54567,7 @@ var ServerSideFilter = ({
54549
54567
  /* @__PURE__ */ React80.createElement(
54550
54568
  Component4,
54551
54569
  {
54570
+ "aria-label": filterLabel,
54552
54571
  columnDefinition,
54553
54572
  "data-qa": `data-table-filter-input-${fieldName}`,
54554
54573
  getOptions,
@@ -54565,9 +54584,25 @@ var ServerSideFilter = ({
54565
54584
  var DEBOUNCE_TIME = 300;
54566
54585
  function ServerSideNumberFilterRenderer({
54567
54586
  value = [],
54568
- onChange
54587
+ onChange,
54588
+ "aria-label": fieldLabel
54569
54589
  }) {
54570
54590
  const I18n = useI18nContext();
54591
+ const minValueAriaLabel = I18n.t("labels.min_value_aria_label", {
54592
+ defaultValue: "%{field} minimum value",
54593
+ field: fieldLabel ?? "",
54594
+ scope: "dataTable.filters.numberFilter"
54595
+ }).trim();
54596
+ const maxValueAriaLabel = I18n.t("labels.max_value_aria_label", {
54597
+ defaultValue: "%{field} maximum value",
54598
+ field: fieldLabel ?? "",
54599
+ scope: "dataTable.filters.numberFilter"
54600
+ }).trim();
54601
+ const valueAriaLabel = I18n.t("labels.value_aria_label", {
54602
+ defaultValue: "%{field} value",
54603
+ field: fieldLabel ?? "",
54604
+ scope: "dataTable.filters.numberFilter"
54605
+ }).trim();
54571
54606
  const [localFilter, setLocalFilter] = useState(
54572
54607
  () => {
54573
54608
  return {};
@@ -54755,6 +54790,7 @@ function ServerSideNumberFilterRenderer({
54755
54790
  Input,
54756
54791
  {
54757
54792
  type: "number",
54793
+ "aria-label": valueAriaLabel,
54758
54794
  placeholder: I18n.t("labels.input_placeholder", {
54759
54795
  defaultValue: "Enter Value",
54760
54796
  scope: "dataTable.filters.numberFilter"
@@ -54766,6 +54802,7 @@ function ServerSideNumberFilterRenderer({
54766
54802
  Input,
54767
54803
  {
54768
54804
  type: "number",
54805
+ "aria-label": minValueAriaLabel,
54769
54806
  placeholder: I18n.t("labels.input_placeholder", {
54770
54807
  defaultValue: "Enter Value",
54771
54808
  scope: "dataTable.filters.numberFilter"
@@ -54780,6 +54817,7 @@ function ServerSideNumberFilterRenderer({
54780
54817
  Input,
54781
54818
  {
54782
54819
  type: "number",
54820
+ "aria-label": maxValueAriaLabel,
54783
54821
  placeholder: I18n.t("labels.input_placeholder", {
54784
54822
  defaultValue: "Enter Value",
54785
54823
  scope: "dataTable.filters.numberFilter"
@@ -54794,7 +54832,8 @@ function ServerSideNumberFilterRenderer({
54794
54832
  var DEBOUNCE_TIME2 = 300;
54795
54833
  function ServerSideMultiNumberFilterRenderer({
54796
54834
  value = [],
54797
- onChange
54835
+ onChange,
54836
+ "aria-label": fieldLabel
54798
54837
  }) {
54799
54838
  const I18n = useI18nContext();
54800
54839
  const [firstFilter, setFirstFilter] = useState(
@@ -54871,6 +54910,7 @@ function ServerSideMultiNumberFilterRenderer({
54871
54910
  return /* @__PURE__ */ React80.createElement(Box, { style: { display: "flex", flexDirection: "column", gap: "8px" } }, /* @__PURE__ */ React80.createElement(
54872
54911
  ServerSideNumberFilterRenderer,
54873
54912
  {
54913
+ "aria-label": fieldLabel,
54874
54914
  value: firstFilter.type ? [firstFilter] : [],
54875
54915
  onChange: handleFirstFilterChange
54876
54916
  }
@@ -54907,6 +54947,7 @@ function ServerSideMultiNumberFilterRenderer({
54907
54947
  ), /* @__PURE__ */ React80.createElement(
54908
54948
  ServerSideNumberFilterRenderer,
54909
54949
  {
54950
+ "aria-label": fieldLabel,
54910
54951
  value: secondFilter.type ? [secondFilter] : [],
54911
54952
  onChange: handleSecondFilterChange
54912
54953
  }
@@ -89364,7 +89405,7 @@ var __decorate230 = function(decorators, target, key, desc) {
89364
89405
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
89365
89406
  return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
89366
89407
  };
89367
- var Label = class {
89408
+ var Label2 = class {
89368
89409
  constructor() {
89369
89410
  this.enabled = true;
89370
89411
  this.fontSize = 12;
@@ -89379,22 +89420,22 @@ var Label = class {
89379
89420
  };
89380
89421
  __decorate230([
89381
89422
  Validate(BOOLEAN)
89382
- ], Label.prototype, "enabled", void 0);
89423
+ ], Label2.prototype, "enabled", void 0);
89383
89424
  __decorate230([
89384
89425
  Validate(NUMBER(0))
89385
- ], Label.prototype, "fontSize", void 0);
89426
+ ], Label2.prototype, "fontSize", void 0);
89386
89427
  __decorate230([
89387
89428
  Validate(STRING)
89388
- ], Label.prototype, "fontFamily", void 0);
89429
+ ], Label2.prototype, "fontFamily", void 0);
89389
89430
  __decorate230([
89390
89431
  Validate(OPT_FONT_STYLE)
89391
- ], Label.prototype, "fontStyle", void 0);
89432
+ ], Label2.prototype, "fontStyle", void 0);
89392
89433
  __decorate230([
89393
89434
  Validate(OPT_FONT_WEIGHT)
89394
- ], Label.prototype, "fontWeight", void 0);
89435
+ ], Label2.prototype, "fontWeight", void 0);
89395
89436
  __decorate230([
89396
89437
  Validate(COLOR_STRING)
89397
- ], Label.prototype, "color", void 0);
89438
+ ], Label2.prototype, "color", void 0);
89398
89439
  function calculateLabelRotation(opts) {
89399
89440
  const { parallelFlipRotation = 0, regularFlipRotation = 0 } = opts;
89400
89441
  const configuredRotation = opts.rotation ? normalizeAngle360(toRadians(opts.rotation)) : 0;
@@ -91135,7 +91176,7 @@ var PieNodeTag;
91135
91176
  PieNodeTag2[PieNodeTag2["Callout"] = 1] = "Callout";
91136
91177
  PieNodeTag2[PieNodeTag2["Label"] = 2] = "Label";
91137
91178
  })(PieNodeTag || (PieNodeTag = {}));
91138
- var PieSeriesCalloutLabel = class extends Label {
91179
+ var PieSeriesCalloutLabel = class extends Label2 {
91139
91180
  constructor() {
91140
91181
  super(...arguments);
91141
91182
  this.offset = 3;
@@ -91164,7 +91205,7 @@ __decorate238([
91164
91205
  __decorate238([
91165
91206
  Validate(BOOLEAN)
91166
91207
  ], PieSeriesCalloutLabel.prototype, "avoidCollisions", void 0);
91167
- var PieSeriesSectorLabel = class extends Label {
91208
+ var PieSeriesSectorLabel = class extends Label2 {
91168
91209
  constructor() {
91169
91210
  super(...arguments);
91170
91211
  this.positionOffset = 0;
@@ -91215,7 +91256,7 @@ var PieTitle = class extends Caption {
91215
91256
  __decorate238([
91216
91257
  Validate(BOOLEAN)
91217
91258
  ], PieTitle.prototype, "showInLegend", void 0);
91218
- var DoughnutInnerLabel = class extends Label {
91259
+ var DoughnutInnerLabel = class extends Label2 {
91219
91260
  constructor() {
91220
91261
  super(...arguments);
91221
91262
  this.text = "";
@@ -95322,7 +95363,7 @@ var __awaiter11 = function(thisArg, _arguments, P, generator) {
95322
95363
  step((generator = generator.apply(thisArg, [])).next());
95323
95364
  });
95324
95365
  };
95325
- var AreaSeriesLabel = class extends Label {
95366
+ var AreaSeriesLabel = class extends Label2 {
95326
95367
  constructor() {
95327
95368
  super(...arguments);
95328
95369
  this.formatter = void 0;
@@ -96364,7 +96405,7 @@ var BarSeriesNodeTag;
96364
96405
  BarSeriesNodeTag2[BarSeriesNodeTag2["Bar"] = 0] = "Bar";
96365
96406
  BarSeriesNodeTag2[BarSeriesNodeTag2["Label"] = 1] = "Label";
96366
96407
  })(BarSeriesNodeTag || (BarSeriesNodeTag = {}));
96367
- var BarSeriesLabel = class extends Label {
96408
+ var BarSeriesLabel = class extends Label2 {
96368
96409
  constructor() {
96369
96410
  super(...arguments);
96370
96411
  this.formatter = void 0;
@@ -97109,7 +97150,7 @@ var HistogramSeriesNodeTag;
97109
97150
  HistogramSeriesNodeTag2[HistogramSeriesNodeTag2["Bin"] = 0] = "Bin";
97110
97151
  HistogramSeriesNodeTag2[HistogramSeriesNodeTag2["Label"] = 1] = "Label";
97111
97152
  })(HistogramSeriesNodeTag || (HistogramSeriesNodeTag = {}));
97112
- var HistogramSeriesLabel = class extends Label {
97153
+ var HistogramSeriesLabel = class extends Label2 {
97113
97154
  constructor() {
97114
97155
  super(...arguments);
97115
97156
  this.formatter = void 0;
@@ -97720,7 +97761,7 @@ var __awaiter14 = function(thisArg, _arguments, P, generator) {
97720
97761
  step((generator = generator.apply(thisArg, [])).next());
97721
97762
  });
97722
97763
  };
97723
- var LineSeriesLabel = class extends Label {
97764
+ var LineSeriesLabel = class extends Label2 {
97724
97765
  constructor() {
97725
97766
  super(...arguments);
97726
97767
  this.formatter = void 0;
@@ -98381,7 +98422,7 @@ var __awaiter15 = function(thisArg, _arguments, P, generator) {
98381
98422
  step((generator = generator.apply(thisArg, [])).next());
98382
98423
  });
98383
98424
  };
98384
- var ScatterSeriesLabel = class extends Label {
98425
+ var ScatterSeriesLabel = class extends Label2 {
98385
98426
  constructor() {
98386
98427
  super(...arguments);
98387
98428
  this.formatter = void 0;
@@ -98957,7 +98998,7 @@ var TreemapSeriesNodeDoubleClickEvent = class extends TreemapSeriesNodeBaseClick
98957
98998
  this.type = "nodeDoubleClick";
98958
98999
  }
98959
99000
  };
98960
- var TreemapSeriesLabel = class extends Label {
99001
+ var TreemapSeriesLabel = class extends Label2 {
98961
99002
  constructor() {
98962
99003
  super(...arguments);
98963
99004
  this.padding = 10;
@@ -98966,7 +99007,7 @@ var TreemapSeriesLabel = class extends Label {
98966
99007
  __decorate255([
98967
99008
  Validate(NUMBER(0))
98968
99009
  ], TreemapSeriesLabel.prototype, "padding", void 0);
98969
- var TreemapSeriesTileLabel = class extends Label {
99010
+ var TreemapSeriesTileLabel = class extends Label2 {
98970
99011
  constructor() {
98971
99012
  super(...arguments);
98972
99013
  this.wrapping = "on-space";
@@ -98978,7 +99019,7 @@ __decorate255([
98978
99019
  var TreemapValueLabel = class {
98979
99020
  constructor() {
98980
99021
  this.style = (() => {
98981
- const label = new Label();
99022
+ const label = new Label2();
98982
99023
  label.color = "white";
98983
99024
  return label;
98984
99025
  })();
@@ -101509,7 +101550,7 @@ __export(integrated_charts_scene_exports, {
101509
101550
  Group: () => Group,
101510
101551
  HdpiCanvas: () => HdpiCanvas,
101511
101552
  Image: () => Image,
101512
- Label: () => Label,
101553
+ Label: () => Label2,
101513
101554
  Line: () => Line,
101514
101555
  LinearScale: () => LinearScale,
101515
101556
  Marker: () => Marker,
@@ -103015,7 +103056,7 @@ var LineSparkline = class extends Sparkline {
103015
103056
  LineSparkline.className = "LineSparkline";
103016
103057
 
103017
103058
  // ../../node_modules/@ag-grid-enterprise/sparklines/dist/esm/es6/sparkline/label/label.mjs
103018
- var Label2 = class {
103059
+ var Label3 = class {
103019
103060
  constructor() {
103020
103061
  this.enabled = true;
103021
103062
  this.fontSize = 8;
@@ -103040,7 +103081,7 @@ var BarColumnLabelPlacement2;
103040
103081
  BarColumnLabelPlacement3["Center"] = "center";
103041
103082
  BarColumnLabelPlacement3["OutsideEnd"] = "outsideEnd";
103042
103083
  })(BarColumnLabelPlacement2 || (BarColumnLabelPlacement2 = {}));
103043
- var BarColumnLabel = class extends Label2 {
103084
+ var BarColumnLabel = class extends Label3 {
103044
103085
  constructor() {
103045
103086
  super(...arguments);
103046
103087
  this.formatter = void 0;
@@ -106137,7 +106178,10 @@ var en_default = {
106137
106178
  labels: {
106138
106179
  and: "and",
106139
106180
  input_placeholder: "Enter Value",
106140
- placeholder: "Select an item"
106181
+ max_value_aria_label: "%{field} maximum value",
106182
+ min_value_aria_label: "%{field} minimum value",
106183
+ placeholder: "Select an item",
106184
+ value_aria_label: "%{field} value"
106141
106185
  },
106142
106186
  options: {
106143
106187
  any_value: "Any Value",
@@ -107957,7 +108001,10 @@ var pseudo_default = {
107957
108001
  labels: {
107958
108002
  and: "[\u0227\u019E\u1E13]",
107959
108003
  input_placeholder: "[\u1E16\u1E16\u1E16\u019E\u0167\u1E17\u0159 \xB7 \u1E7C\u0227\u0140\u016D\u1E17\u1E17\u1E17]",
107960
- placeholder: "[\u015E\u015E\u015E\u1E17\u0140\u1E17\u0188\u0167 \xB7 \u0227\u019E \xB7 \u012B\u0167\u1E17\u1E3F\u1E3F\u1E3F]"
108004
+ max_value_aria_label: "[[NOTRANSLATE]%{field}[/NOTRANSLATE] \xB7 \xB7 \xB7 \u1E3F\u0227\u1E8B\u012B\u1E3F\u016D\u1E3F \xB7 \u1E7D\u0227\u0140\u016D\u1E17\u1E17\u1E17]",
108005
+ min_value_aria_label: "[[NOTRANSLATE]%{field}[/NOTRANSLATE] \xB7 \xB7 \xB7 \u1E3F\u012B\u019E\u012B\u1E3F\u016D\u1E3F \xB7 \u1E7D\u0227\u0140\u016D\u1E17\u1E17\u1E17]",
108006
+ placeholder: "[\u015E\u015E\u015E\u1E17\u0140\u1E17\u0188\u0167 \xB7 \u0227\u019E \xB7 \u012B\u0167\u1E17\u1E3F\u1E3F\u1E3F]",
108007
+ value_aria_label: "[[NOTRANSLATE]%{field}[/NOTRANSLATE] \xB7 \xB7 \u1E7D\u0227\u0140\u016D\u1E17\u1E17]"
107961
108008
  },
107962
108009
  options: {
107963
108010
  any_value: "[\u0226\u0226\u019E\u1E8F \xB7 \u1E7C\u0227\u0140\u016D\u1E17\u1E17]",
@@ -111384,8 +111431,9 @@ function ClientSideFilterInner(props) {
111384
111431
  const { Component: Component4, columnDefinition, onChange, options, value } = props;
111385
111432
  const filterHeading = ((_b = (_a = columnDefinition.filterProps) == null ? void 0 : _a.getFilterHeadingText) == null ? void 0 : _b.call(_a, columnDefinition)) ?? columnDefinition.headerName;
111386
111433
  const filterOptions = React80.useMemo(() => options ?? [], [options]);
111434
+ const filterLabel = typeof filterHeading === "string" ? filterHeading : columnDefinition.headerName;
111387
111435
  return /* @__PURE__ */ React80.createElement(Box, { as: "li", display: "block", paddingBottom: "xl", style: { width: "100%" } }, filterHeading && /* @__PURE__ */ React80.createElement(
111388
- Label$1,
111436
+ Label,
111389
111437
  {
111390
111438
  "data-qa": `data-table-filter-heading-${columnDefinition.field}`,
111391
111439
  id: `data-table-filter-heading-${columnDefinition.field}`
@@ -111395,7 +111443,7 @@ function ClientSideFilterInner(props) {
111395
111443
  Component4,
111396
111444
  {
111397
111445
  "data-qa": `data-table-filter-input-${columnDefinition.field}`,
111398
- "aria-labelledby": filterHeading ? `data-table-filter-heading-${columnDefinition.field}` : void 0,
111446
+ "aria-label": filterLabel,
111399
111447
  columnDefinition,
111400
111448
  onChange,
111401
111449
  options: filterOptions,