Compare commits
22
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8168565d26 | ||
|
|
cddc47b61f | ||
|
|
446c39d1c0 | ||
|
|
5eda10760c | ||
|
|
b9605a3003 | ||
|
|
56d6e13b5d | ||
|
|
725171bfd3 | ||
|
|
3b85747d3f | ||
|
|
a4cc7fb9c5 | ||
|
|
0f8152f536 | ||
|
|
a328c127f3 | ||
|
|
8cb803cedf | ||
|
|
5e83ad43de | ||
|
|
7ba5fe32f8 | ||
|
|
7601dbc218 | ||
|
|
8a968d1e31 | ||
|
|
0c4a194c7a | ||
|
|
94b8e34362 | ||
|
|
2fccd194f3 | ||
|
|
762fb6fd64 | ||
|
|
7956ecc7b2 | ||
|
|
e12b55a951 |
@@ -735,6 +735,7 @@ enum ViewType {
|
||||
KANBAN
|
||||
CALENDAR
|
||||
FIELDS_WIDGET
|
||||
TABLE_WIDGET
|
||||
}
|
||||
|
||||
enum ViewKey {
|
||||
|
||||
@@ -534,7 +534,7 @@ export interface View {
|
||||
__typename: 'View'
|
||||
}
|
||||
|
||||
export type ViewType = 'TABLE' | 'KANBAN' | 'CALENDAR' | 'FIELDS_WIDGET'
|
||||
export type ViewType = 'TABLE' | 'KANBAN' | 'CALENDAR' | 'FIELDS_WIDGET' | 'TABLE_WIDGET'
|
||||
|
||||
export type ViewKey = 'INDEX'
|
||||
|
||||
@@ -9267,7 +9267,8 @@ export const enumViewType = {
|
||||
TABLE: 'TABLE' as const,
|
||||
KANBAN: 'KANBAN' as const,
|
||||
CALENDAR: 'CALENDAR' as const,
|
||||
FIELDS_WIDGET: 'FIELDS_WIDGET' as const
|
||||
FIELDS_WIDGET: 'FIELDS_WIDGET' as const,
|
||||
TABLE_WIDGET: 'TABLE_WIDGET' as const
|
||||
}
|
||||
|
||||
export const enumViewKey = {
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ const getHtmlElementSchemas = (): ComponentSchema[] => {
|
||||
events: element.events
|
||||
? [...COMMON_HTML_EVENTS, ...element.events]
|
||||
: COMMON_HTML_EVENTS,
|
||||
htmlTag: extractHtmlTag(element.tag),
|
||||
htmlTag: element.htmlTag ?? extractHtmlTag(element.tag),
|
||||
}));
|
||||
};
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ export const HtmlElementConfigZ = z.object({
|
||||
.regex(/^Html[A-Z]/, 'Name must be PascalCase starting with Html'),
|
||||
properties: z.record(z.string(), PropertySchemaZ),
|
||||
events: z.array(z.string()).optional(),
|
||||
htmlTag: z.string().optional(),
|
||||
});
|
||||
|
||||
export const HtmlElementConfigArrayZ = z.array(HtmlElementConfigZ);
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
type PropertySchema = {
|
||||
type: 'string' | 'number' | 'boolean';
|
||||
optional: boolean;
|
||||
};
|
||||
import { type PropertySchema } from './PropertySchema';
|
||||
import { SVG_PRESENTATION_PROPERTIES } from './SvgPresentationProperties';
|
||||
|
||||
export type AllowedHtmlElement = {
|
||||
tag: string;
|
||||
name: string;
|
||||
properties: Record<string, PropertySchema>;
|
||||
events?: string[];
|
||||
htmlTag?: string;
|
||||
};
|
||||
|
||||
export const ALLOWED_HTML_ELEMENTS: AllowedHtmlElement[] = [
|
||||
@@ -249,4 +248,421 @@ export const ALLOWED_HTML_ELEMENTS: AllowedHtmlElement[] = [
|
||||
height: { type: 'number', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// Semantic inline text
|
||||
{ tag: 'html-b', name: 'HtmlB', properties: {} },
|
||||
{ tag: 'html-i', name: 'HtmlI', properties: {} },
|
||||
{ tag: 'html-u', name: 'HtmlU', properties: {} },
|
||||
{ tag: 'html-s', name: 'HtmlS', properties: {} },
|
||||
{ tag: 'html-mark', name: 'HtmlMark', properties: {} },
|
||||
{ tag: 'html-sub', name: 'HtmlSub', properties: {} },
|
||||
{ tag: 'html-sup', name: 'HtmlSup', properties: {} },
|
||||
{ tag: 'html-abbr', name: 'HtmlAbbr', properties: {} },
|
||||
{ tag: 'html-cite', name: 'HtmlCite', properties: {} },
|
||||
{ tag: 'html-kbd', name: 'HtmlKbd', properties: {} },
|
||||
{ tag: 'html-samp', name: 'HtmlSamp', properties: {} },
|
||||
{ tag: 'html-var', name: 'HtmlVar', properties: {} },
|
||||
{ tag: 'html-dfn', name: 'HtmlDfn', properties: {} },
|
||||
{ tag: 'html-bdi', name: 'HtmlBdi', properties: {} },
|
||||
{
|
||||
tag: 'html-bdo',
|
||||
name: 'HtmlBdo',
|
||||
properties: {
|
||||
dir: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-data',
|
||||
name: 'HtmlData',
|
||||
properties: {
|
||||
value: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// Edited/annotated text
|
||||
{
|
||||
tag: 'html-del',
|
||||
name: 'HtmlDel',
|
||||
properties: {
|
||||
cite: { type: 'string', optional: true },
|
||||
dateTime: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-ins',
|
||||
name: 'HtmlIns',
|
||||
properties: {
|
||||
cite: { type: 'string', optional: true },
|
||||
dateTime: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-q',
|
||||
name: 'HtmlQ',
|
||||
properties: {
|
||||
cite: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-time',
|
||||
name: 'HtmlTime',
|
||||
properties: {
|
||||
dateTime: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// Ruby annotations
|
||||
{ tag: 'html-ruby', name: 'HtmlRuby', properties: {} },
|
||||
{ tag: 'html-rt', name: 'HtmlRt', properties: {} },
|
||||
{ tag: 'html-rp', name: 'HtmlRp', properties: {} },
|
||||
|
||||
// Description lists
|
||||
{ tag: 'html-dl', name: 'HtmlDl', properties: {} },
|
||||
{ tag: 'html-dt', name: 'HtmlDt', properties: {} },
|
||||
{ tag: 'html-dd', name: 'HtmlDd', properties: {} },
|
||||
|
||||
// Structural/semantic
|
||||
{ tag: 'html-figure', name: 'HtmlFigure', properties: {} },
|
||||
{ tag: 'html-figcaption', name: 'HtmlFigcaption', properties: {} },
|
||||
{
|
||||
tag: 'html-details',
|
||||
name: 'HtmlDetails',
|
||||
properties: {
|
||||
open: { type: 'boolean', optional: true },
|
||||
},
|
||||
},
|
||||
{ tag: 'html-summary', name: 'HtmlSummary', properties: {} },
|
||||
{ tag: 'html-address', name: 'HtmlAddress', properties: {} },
|
||||
{
|
||||
tag: 'html-dialog',
|
||||
name: 'HtmlDialog',
|
||||
properties: {
|
||||
open: { type: 'boolean', optional: true },
|
||||
},
|
||||
},
|
||||
{ tag: 'html-hgroup', name: 'HtmlHgroup', properties: {} },
|
||||
{ tag: 'html-search', name: 'HtmlSearch', properties: {} },
|
||||
|
||||
// Table additions
|
||||
{ tag: 'html-caption', name: 'HtmlCaption', properties: {} },
|
||||
{
|
||||
tag: 'html-colgroup',
|
||||
name: 'HtmlColgroup',
|
||||
properties: {
|
||||
span: { type: 'number', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-col',
|
||||
name: 'HtmlCol',
|
||||
properties: {
|
||||
span: { type: 'number', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// Form additions
|
||||
{
|
||||
tag: 'html-fieldset',
|
||||
name: 'HtmlFieldset',
|
||||
properties: {
|
||||
disabled: { type: 'boolean', optional: true },
|
||||
name: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{ tag: 'html-legend', name: 'HtmlLegend', properties: {} },
|
||||
{
|
||||
tag: 'html-output',
|
||||
name: 'HtmlOutput',
|
||||
properties: {
|
||||
name: { type: 'string', optional: true },
|
||||
htmlFor: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-progress',
|
||||
name: 'HtmlProgress',
|
||||
properties: {
|
||||
value: { type: 'number', optional: true },
|
||||
max: { type: 'number', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-meter',
|
||||
name: 'HtmlMeter',
|
||||
properties: {
|
||||
value: { type: 'number', optional: true },
|
||||
min: { type: 'number', optional: true },
|
||||
max: { type: 'number', optional: true },
|
||||
low: { type: 'number', optional: true },
|
||||
high: { type: 'number', optional: true },
|
||||
optimum: { type: 'number', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-optgroup',
|
||||
name: 'HtmlOptgroup',
|
||||
properties: {
|
||||
label: { type: 'string', optional: true },
|
||||
disabled: { type: 'boolean', optional: true },
|
||||
},
|
||||
},
|
||||
{ tag: 'html-datalist', name: 'HtmlDatalist', properties: {} },
|
||||
|
||||
// Media additions
|
||||
{ tag: 'html-picture', name: 'HtmlPicture', properties: {} },
|
||||
{
|
||||
tag: 'html-track',
|
||||
name: 'HtmlTrack',
|
||||
properties: {
|
||||
src: { type: 'string', optional: true },
|
||||
kind: { type: 'string', optional: true },
|
||||
srclang: { type: 'string', optional: true },
|
||||
label: { type: 'string', optional: true },
|
||||
default: { type: 'boolean', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// Miscellaneous
|
||||
{ tag: 'html-wbr', name: 'HtmlWbr', properties: {} },
|
||||
{ tag: 'html-menu', name: 'HtmlMenu', properties: {} },
|
||||
|
||||
// SVG container/structural
|
||||
{
|
||||
tag: 'html-svg',
|
||||
name: 'HtmlSvg',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
viewBox: { type: 'string', optional: true },
|
||||
xmlns: { type: 'string', optional: true },
|
||||
width: { type: 'string', optional: true },
|
||||
height: { type: 'string', optional: true },
|
||||
preserveAspectRatio: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-g',
|
||||
name: 'HtmlG',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
},
|
||||
},
|
||||
{ tag: 'html-defs', name: 'HtmlDefs', properties: {} },
|
||||
{
|
||||
tag: 'html-symbol',
|
||||
name: 'HtmlSymbol',
|
||||
properties: {
|
||||
viewBox: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-use',
|
||||
name: 'HtmlUse',
|
||||
properties: {
|
||||
href: { type: 'string', optional: true },
|
||||
x: { type: 'string', optional: true },
|
||||
y: { type: 'string', optional: true },
|
||||
width: { type: 'string', optional: true },
|
||||
height: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-clippath',
|
||||
name: 'HtmlClipPath',
|
||||
htmlTag: 'clipPath',
|
||||
properties: {
|
||||
clipPathUnits: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-mask',
|
||||
name: 'HtmlMask',
|
||||
properties: {
|
||||
maskUnits: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// SVG shapes
|
||||
{
|
||||
tag: 'html-circle',
|
||||
name: 'HtmlCircle',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
cx: { type: 'string', optional: true },
|
||||
cy: { type: 'string', optional: true },
|
||||
r: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-ellipse',
|
||||
name: 'HtmlEllipse',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
cx: { type: 'string', optional: true },
|
||||
cy: { type: 'string', optional: true },
|
||||
rx: { type: 'string', optional: true },
|
||||
ry: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-rect',
|
||||
name: 'HtmlRect',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
x: { type: 'string', optional: true },
|
||||
y: { type: 'string', optional: true },
|
||||
width: { type: 'string', optional: true },
|
||||
height: { type: 'string', optional: true },
|
||||
rx: { type: 'string', optional: true },
|
||||
ry: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-line',
|
||||
name: 'HtmlLine',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
x1: { type: 'string', optional: true },
|
||||
y1: { type: 'string', optional: true },
|
||||
x2: { type: 'string', optional: true },
|
||||
y2: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-path',
|
||||
name: 'HtmlPath',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
d: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-polygon',
|
||||
name: 'HtmlPolygon',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
points: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-polyline',
|
||||
name: 'HtmlPolyline',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
points: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// SVG text
|
||||
{
|
||||
tag: 'html-text',
|
||||
name: 'HtmlText',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
x: { type: 'string', optional: true },
|
||||
y: { type: 'string', optional: true },
|
||||
dx: { type: 'string', optional: true },
|
||||
dy: { type: 'string', optional: true },
|
||||
textAnchor: { type: 'string', optional: true },
|
||||
dominantBaseline: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-tspan',
|
||||
name: 'HtmlTspan',
|
||||
properties: {
|
||||
...SVG_PRESENTATION_PROPERTIES,
|
||||
x: { type: 'string', optional: true },
|
||||
y: { type: 'string', optional: true },
|
||||
dx: { type: 'string', optional: true },
|
||||
dy: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// SVG gradients/patterns
|
||||
{
|
||||
tag: 'html-lineargradient',
|
||||
name: 'HtmlLinearGradient',
|
||||
htmlTag: 'linearGradient',
|
||||
properties: {
|
||||
x1: { type: 'string', optional: true },
|
||||
y1: { type: 'string', optional: true },
|
||||
x2: { type: 'string', optional: true },
|
||||
y2: { type: 'string', optional: true },
|
||||
gradientUnits: { type: 'string', optional: true },
|
||||
gradientTransform: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-radialgradient',
|
||||
name: 'HtmlRadialGradient',
|
||||
htmlTag: 'radialGradient',
|
||||
properties: {
|
||||
cx: { type: 'string', optional: true },
|
||||
cy: { type: 'string', optional: true },
|
||||
r: { type: 'string', optional: true },
|
||||
fx: { type: 'string', optional: true },
|
||||
fy: { type: 'string', optional: true },
|
||||
gradientUnits: { type: 'string', optional: true },
|
||||
gradientTransform: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-stop',
|
||||
name: 'HtmlStop',
|
||||
properties: {
|
||||
offset: { type: 'string', optional: true },
|
||||
stopColor: { type: 'string', optional: true },
|
||||
stopOpacity: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-pattern',
|
||||
name: 'HtmlPattern',
|
||||
properties: {
|
||||
x: { type: 'string', optional: true },
|
||||
y: { type: 'string', optional: true },
|
||||
width: { type: 'string', optional: true },
|
||||
height: { type: 'string', optional: true },
|
||||
patternUnits: { type: 'string', optional: true },
|
||||
patternTransform: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
|
||||
// SVG other
|
||||
{
|
||||
tag: 'html-image',
|
||||
name: 'HtmlImage',
|
||||
properties: {
|
||||
href: { type: 'string', optional: true },
|
||||
x: { type: 'string', optional: true },
|
||||
y: { type: 'string', optional: true },
|
||||
width: { type: 'string', optional: true },
|
||||
height: { type: 'string', optional: true },
|
||||
preserveAspectRatio: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-foreignobject',
|
||||
name: 'HtmlForeignObject',
|
||||
htmlTag: 'foreignObject',
|
||||
properties: {
|
||||
x: { type: 'string', optional: true },
|
||||
y: { type: 'string', optional: true },
|
||||
width: { type: 'string', optional: true },
|
||||
height: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: 'html-marker',
|
||||
name: 'HtmlMarker',
|
||||
properties: {
|
||||
markerWidth: { type: 'string', optional: true },
|
||||
markerHeight: { type: 'string', optional: true },
|
||||
refX: { type: 'string', optional: true },
|
||||
refY: { type: 'string', optional: true },
|
||||
orient: { type: 'string', optional: true },
|
||||
markerUnits: { type: 'string', optional: true },
|
||||
},
|
||||
},
|
||||
{ tag: 'html-title', name: 'HtmlTitle', properties: {} },
|
||||
];
|
||||
|
||||
@@ -4,24 +4,29 @@ const UTILITY_TAG_MAPPINGS: Record<string, string> = {
|
||||
'remote-style': 'RemoteStyle',
|
||||
};
|
||||
|
||||
const getHostTagName = (element: (typeof ALLOWED_HTML_ELEMENTS)[number]) =>
|
||||
element.htmlTag ??
|
||||
(element.tag.startsWith('html-') ? element.tag.slice(5) : element.tag);
|
||||
|
||||
export const HTML_TAG_TO_REMOTE_COMPONENT: Record<string, string> = {
|
||||
...Object.fromEntries(
|
||||
ALLOWED_HTML_ELEMENTS.map((element) => [
|
||||
element.tag.startsWith('html-') ? element.tag.slice(5) : element.tag,
|
||||
getHostTagName(element),
|
||||
element.name,
|
||||
]),
|
||||
),
|
||||
...UTILITY_TAG_MAPPINGS,
|
||||
};
|
||||
|
||||
// Maps standard HTML tag names to their custom element equivalents
|
||||
// used by the remote DOM polyfill (e.g. "div" → "html-div").
|
||||
// Maps standard HTML/SVG tag names to their custom element equivalents
|
||||
// used by the remote DOM polyfill (e.g. "div" → "html-div",
|
||||
// "clipPath" → "html-clippath").
|
||||
// Consumed by the jsx-runtime wrapper so React creates the correct
|
||||
// custom elements instead of standard HTML tags.
|
||||
// custom elements instead of standard HTML/SVG tags.
|
||||
export const HTML_TAG_TO_CUSTOM_ELEMENT_TAG: Record<string, string> = {
|
||||
...Object.fromEntries(
|
||||
ALLOWED_HTML_ELEMENTS.map((element) => [
|
||||
element.tag.startsWith('html-') ? element.tag.slice(5) : element.tag,
|
||||
getHostTagName(element),
|
||||
element.tag,
|
||||
]),
|
||||
),
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import { type PropertySchema } from './PropertySchema';
|
||||
|
||||
export const SVG_PRESENTATION_PROPERTIES: Record<string, PropertySchema> = {
|
||||
fill: { type: 'string', optional: true },
|
||||
fillOpacity: { type: 'string', optional: true },
|
||||
fillRule: { type: 'string', optional: true },
|
||||
stroke: { type: 'string', optional: true },
|
||||
strokeWidth: { type: 'string', optional: true },
|
||||
strokeOpacity: { type: 'string', optional: true },
|
||||
strokeLinecap: { type: 'string', optional: true },
|
||||
strokeLinejoin: { type: 'string', optional: true },
|
||||
strokeDasharray: { type: 'string', optional: true },
|
||||
strokeDashoffset: { type: 'string', optional: true },
|
||||
strokeMiterlimit: { type: 'string', optional: true },
|
||||
opacity: { type: 'string', optional: true },
|
||||
transform: { type: 'string', optional: true },
|
||||
clipPath: { type: 'string', optional: true },
|
||||
clipRule: { type: 'string', optional: true },
|
||||
mask: { type: 'string', optional: true },
|
||||
filter: { type: 'string', optional: true },
|
||||
pointerEvents: { type: 'string', optional: true },
|
||||
};
|
||||
+156
@@ -92,6 +92,162 @@ export const componentRegistry: Map<string, ComponentRegistryValue> = new Map([
|
||||
'html-source',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('source')),
|
||||
],
|
||||
['html-b', createRemoteComponentRenderer(createHtmlHostWrapper('b'))],
|
||||
['html-i', createRemoteComponentRenderer(createHtmlHostWrapper('i'))],
|
||||
['html-u', createRemoteComponentRenderer(createHtmlHostWrapper('u'))],
|
||||
['html-s', createRemoteComponentRenderer(createHtmlHostWrapper('s'))],
|
||||
['html-mark', createRemoteComponentRenderer(createHtmlHostWrapper('mark'))],
|
||||
['html-sub', createRemoteComponentRenderer(createHtmlHostWrapper('sub'))],
|
||||
['html-sup', createRemoteComponentRenderer(createHtmlHostWrapper('sup'))],
|
||||
['html-abbr', createRemoteComponentRenderer(createHtmlHostWrapper('abbr'))],
|
||||
['html-cite', createRemoteComponentRenderer(createHtmlHostWrapper('cite'))],
|
||||
['html-kbd', createRemoteComponentRenderer(createHtmlHostWrapper('kbd'))],
|
||||
['html-samp', createRemoteComponentRenderer(createHtmlHostWrapper('samp'))],
|
||||
['html-var', createRemoteComponentRenderer(createHtmlHostWrapper('var'))],
|
||||
['html-dfn', createRemoteComponentRenderer(createHtmlHostWrapper('dfn'))],
|
||||
['html-bdi', createRemoteComponentRenderer(createHtmlHostWrapper('bdi'))],
|
||||
['html-bdo', createRemoteComponentRenderer(createHtmlHostWrapper('bdo'))],
|
||||
['html-data', createRemoteComponentRenderer(createHtmlHostWrapper('data'))],
|
||||
['html-del', createRemoteComponentRenderer(createHtmlHostWrapper('del'))],
|
||||
['html-ins', createRemoteComponentRenderer(createHtmlHostWrapper('ins'))],
|
||||
['html-q', createRemoteComponentRenderer(createHtmlHostWrapper('q'))],
|
||||
['html-time', createRemoteComponentRenderer(createHtmlHostWrapper('time'))],
|
||||
['html-ruby', createRemoteComponentRenderer(createHtmlHostWrapper('ruby'))],
|
||||
['html-rt', createRemoteComponentRenderer(createHtmlHostWrapper('rt'))],
|
||||
['html-rp', createRemoteComponentRenderer(createHtmlHostWrapper('rp'))],
|
||||
['html-dl', createRemoteComponentRenderer(createHtmlHostWrapper('dl'))],
|
||||
['html-dt', createRemoteComponentRenderer(createHtmlHostWrapper('dt'))],
|
||||
['html-dd', createRemoteComponentRenderer(createHtmlHostWrapper('dd'))],
|
||||
[
|
||||
'html-figure',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('figure')),
|
||||
],
|
||||
[
|
||||
'html-figcaption',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('figcaption')),
|
||||
],
|
||||
[
|
||||
'html-details',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('details')),
|
||||
],
|
||||
[
|
||||
'html-summary',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('summary')),
|
||||
],
|
||||
[
|
||||
'html-address',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('address')),
|
||||
],
|
||||
[
|
||||
'html-dialog',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('dialog')),
|
||||
],
|
||||
[
|
||||
'html-hgroup',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('hgroup')),
|
||||
],
|
||||
[
|
||||
'html-search',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('search')),
|
||||
],
|
||||
[
|
||||
'html-caption',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('caption')),
|
||||
],
|
||||
[
|
||||
'html-colgroup',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('colgroup')),
|
||||
],
|
||||
['html-col', createRemoteComponentRenderer(createHtmlHostWrapper('col'))],
|
||||
[
|
||||
'html-fieldset',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('fieldset')),
|
||||
],
|
||||
[
|
||||
'html-legend',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('legend')),
|
||||
],
|
||||
[
|
||||
'html-output',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('output')),
|
||||
],
|
||||
[
|
||||
'html-progress',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('progress')),
|
||||
],
|
||||
['html-meter', createRemoteComponentRenderer(createHtmlHostWrapper('meter'))],
|
||||
[
|
||||
'html-optgroup',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('optgroup')),
|
||||
],
|
||||
[
|
||||
'html-datalist',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('datalist')),
|
||||
],
|
||||
[
|
||||
'html-picture',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('picture')),
|
||||
],
|
||||
['html-track', createRemoteComponentRenderer(createHtmlHostWrapper('track'))],
|
||||
['html-wbr', createRemoteComponentRenderer(createHtmlHostWrapper('wbr'))],
|
||||
['html-menu', createRemoteComponentRenderer(createHtmlHostWrapper('menu'))],
|
||||
['html-svg', createRemoteComponentRenderer(createHtmlHostWrapper('svg'))],
|
||||
['html-g', createRemoteComponentRenderer(createHtmlHostWrapper('g'))],
|
||||
['html-defs', createRemoteComponentRenderer(createHtmlHostWrapper('defs'))],
|
||||
[
|
||||
'html-symbol',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('symbol')),
|
||||
],
|
||||
['html-use', createRemoteComponentRenderer(createHtmlHostWrapper('use'))],
|
||||
[
|
||||
'html-clippath',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('clipPath')),
|
||||
],
|
||||
['html-mask', createRemoteComponentRenderer(createHtmlHostWrapper('mask'))],
|
||||
[
|
||||
'html-circle',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('circle')),
|
||||
],
|
||||
[
|
||||
'html-ellipse',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('ellipse')),
|
||||
],
|
||||
['html-rect', createRemoteComponentRenderer(createHtmlHostWrapper('rect'))],
|
||||
['html-line', createRemoteComponentRenderer(createHtmlHostWrapper('line'))],
|
||||
['html-path', createRemoteComponentRenderer(createHtmlHostWrapper('path'))],
|
||||
[
|
||||
'html-polygon',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('polygon')),
|
||||
],
|
||||
[
|
||||
'html-polyline',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('polyline')),
|
||||
],
|
||||
['html-text', createRemoteComponentRenderer(createHtmlHostWrapper('text'))],
|
||||
['html-tspan', createRemoteComponentRenderer(createHtmlHostWrapper('tspan'))],
|
||||
[
|
||||
'html-lineargradient',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('linearGradient')),
|
||||
],
|
||||
[
|
||||
'html-radialgradient',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('radialGradient')),
|
||||
],
|
||||
['html-stop', createRemoteComponentRenderer(createHtmlHostWrapper('stop'))],
|
||||
[
|
||||
'html-pattern',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('pattern')),
|
||||
],
|
||||
['html-image', createRemoteComponentRenderer(createHtmlHostWrapper('image'))],
|
||||
[
|
||||
'html-foreignobject',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('foreignObject')),
|
||||
],
|
||||
[
|
||||
'html-marker',
|
||||
createRemoteComponentRenderer(createHtmlHostWrapper('marker')),
|
||||
],
|
||||
['html-title', createRemoteComponentRenderer(createHtmlHostWrapper('title'))],
|
||||
['remote-style', createRemoteComponentRenderer(RemoteStyleRenderer)],
|
||||
['remote-fragment', RemoteFragmentRenderer],
|
||||
]);
|
||||
|
||||
@@ -13,14 +13,14 @@ const EVENT_NAME_MAP: Record<string, string> = Object.fromEntries(
|
||||
);
|
||||
|
||||
const VOID_ELEMENTS = new Set([
|
||||
'input',
|
||||
'br',
|
||||
'hr',
|
||||
'img',
|
||||
'area',
|
||||
'base',
|
||||
'br',
|
||||
'col',
|
||||
'embed',
|
||||
'hr',
|
||||
'img',
|
||||
'input',
|
||||
'link',
|
||||
'meta',
|
||||
'source',
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -790,7 +790,7 @@ msgstr "Aksies gebruikers kan uitvoer op hierdie voorwerp"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktiveer"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Knipbord vereis 'n veilige verbinding (HTTPS). Gebruik asseblief hierdie
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Maak toe"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Sluit banier"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Maak sypaneel toe"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Meer"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Maak Outlook oop"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Maak sypaneel oop"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Voer {formattedName} uit"
|
||||
msgid "Running function"
|
||||
msgstr "Funksie word uitgevoer"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Jou ondernemingsfunksies sal gedeaktiveer word"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Jou ondernemingsfunksies sal aktief bly tot {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Jou ondernemingssleutelformaat is verouderd. Aktiveer asseblief 'n nuwe sleutel om ondernemingsfunksies te behou."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "الإجراءات التي يمكن للمستخدمين تنفيذها
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "تفعيل"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "تتطلب الحافظة اتصالاً آمناً (HTTPS). يُرجى
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "إغلاق"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "إغلاق اللافتة"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "إغلاق اللوحة الجانبية"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "المزيد"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "فتح Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "فتح اللوحة الجانبية"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "جارٍ تشغيل {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "الدالة قيد التشغيل"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16454,10 +16455,10 @@ msgstr "سيتم تعطيل ميزات Enterprise لديك"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "ستظل ميزات Enterprise لديك نشطة حتى {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "تنسيق مفتاح Enterprise الخاص بك لم يعد مدعومًا. يُرجى تفعيل مفتاح جديد للإبقاء على ميزات Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Accions que poden realitzar els usuaris en aquest objecte"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Activa"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "El porta-retalls requereix una connexió segura (HTTPS). Accedeix a aque
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Tanca"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Tanca el bàner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Tanca el panell lateral"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Més"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Obrir en Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Obre el panell lateral"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Executant {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Funció en execució"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Les vostres funcionalitats Enterprise es desactivaran"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Les vostres funcionalitats Enterprise romandran actives fins al {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "El format de la vostra clau Enterprise és obsolet. Activeu una clau nova per mantenir les funcionalitats Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Akce, které uživatelé mohou provádět na tomto objektu"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktivovat"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Schránka vyžaduje zabezpečené připojení (HTTPS). Pro povolení kop
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Zavřít"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Zavřít banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Zavřít postranní panel"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Více"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Otevřít Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Otevřít postranní panel"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Spouští se {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Spouští se funkce"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Vaše funkce Enterprise budou deaktivovány"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Vaše funkce Enterprise zůstanou aktivní do {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Formát vašeho klíče Enterprise je zastaralý. Aktivujte prosím nový klíč, abyste zachovali funkce Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Handlinger brugere kan udføre på denne genstand"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktivér"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Udklipsholderen kræver en sikker forbindelse (HTTPS). Tilgå venligst d
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Luk"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Luk banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Luk sidepanelet"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Mere"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Åbn Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Åbn sidepanelet"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Kører {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Kører funktion"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16458,10 +16459,10 @@ msgstr "Dine Enterprise-funktioner vil blive deaktiveret"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Dine Enterprise-funktioner forbliver aktive indtil {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Formatet på din Enterprise-nøgle er udfaset. Aktivér en ny nøgle for at beholde Enterprise-funktionerne."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Aktionen, die Benutzer auf diesem Objekt durchführen können"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktivieren"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Die Zwischenablage erfordert eine sichere Verbindung (HTTPS). Bitte grei
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Banner schließen"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Seitenpanel schließen"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Mehr"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Outlook öffnen"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Seitenpanel öffnen"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "{formattedName} wird ausgeführt"
|
||||
msgid "Running function"
|
||||
msgstr "Funktion wird ausgeführt"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Ihre Enterprise-Funktionen werden deaktiviert"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Ihre Enterprise-Funktionen bleiben bis {cancelAtDate} aktiv."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Das Format Ihres Enterprise-Schlüssels ist veraltet. Bitte aktivieren Sie einen neuen Schlüssel, um die Enterprise-Funktionen beizubehalten."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Ενέργειες χρηστών που μπορούν να εκτελ
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Ενεργοποίηση"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Το Πρόχειρο απαιτεί ασφαλή σύνδεση (HTTPS)
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Κλείσιμο"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Κλείσιμο banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Κλείσιμο πλευρικού πάνελ"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Περισσότερα"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Άνοιγμα με Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Άνοιγμα πλευρικού πάνελ"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Εκτελείται {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Εκτέλεση λειτουργίας"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16460,10 +16461,10 @@ msgstr "Οι δυνατότητες Enterprise θα απενεργοποιηθο
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Οι δυνατότητες Enterprise θα παραμείνουν ενεργές έως {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Η μορφή του κλειδιού Enterprise δεν υποστηρίζεται πλέον. Ενεργοποιήστε ένα νέο κλειδί για να διατηρήσετε τις δυνατότητες Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -785,7 +785,7 @@ msgstr "Actions users can perform on this object"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Activate"
|
||||
|
||||
@@ -3184,7 +3184,6 @@ msgstr "Clipboard requires a secure connection (HTTPS). Please access this app o
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
@@ -3195,7 +3194,6 @@ msgid "Close banner"
|
||||
msgstr "Close banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Close side panel"
|
||||
@@ -9276,7 +9274,6 @@ msgstr "months"
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "More"
|
||||
|
||||
@@ -10719,7 +10716,6 @@ msgid "Open Outlook"
|
||||
msgstr "Open Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Open side panel"
|
||||
@@ -12342,6 +12338,11 @@ msgstr "Running {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Running function"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr "Running workflows on all records is not yet supported. Please select records manually."
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16453,10 +16454,10 @@ msgstr "Your enterprise features will be disabled"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Your enterprise features will remain active until {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Acciones que los usuarios pueden realizar en este objeto"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Activar"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "El portapapeles requiere una conexión segura (HTTPS). Accede a esta apl
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Cerrar banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Cerrar panel lateral"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Más"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Abrir Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Abrir panel lateral"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Ejecutando {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Ejecutando función"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16458,10 +16459,10 @@ msgstr "Tus funciones Enterprise se desactivarán"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Tus funciones Enterprise seguirán activas hasta {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "El formato de tu clave Enterprise está obsoleto. Activa una nueva clave para mantener las funciones Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Toiminnot, joita käyttäjät voivat suorittaa tällä kohteella"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktivoi"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Leikepöytä edellyttää suojattua yhteyttä (HTTPS). Avaa tämä sovel
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Sulje"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Sulje banneri"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Sulje sivupaneeli"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Lisää"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Avaa Outlookissa"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Avaa sivupaneeli"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Suoritetaan {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Suoritetaan funktiota"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Enterprise-ominaisuudet poistetaan käytöstä"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Enterprise-ominaisuudet pysyvät aktiivisina {cancelAtDate} asti."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Enterprise-avaimesi muoto on vanhentunut. Aktivoi uusi avain säilyttääksesi Enterprise-ominaisuudet."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Actions que les utilisateurs peuvent effectuer sur cet objet"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Activer"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Le presse-papiers nécessite une connexion sécurisée (HTTPS). Veuillez
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Fermer la bannière"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Fermer le panneau latéral"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Plus"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Ouvrir Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Ouvrir le panneau latéral"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Exécution de {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Exécution de la fonction"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16458,10 +16459,10 @@ msgstr "Vos fonctionnalités Enterprise seront désactivées"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Vos fonctionnalités Enterprise resteront actives jusqu'au {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Le format de votre clé Enterprise est obsolète. Veuillez activer une nouvelle clé pour conserver les fonctionnalités Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -790,7 +790,7 @@ msgstr "פעולות משתמשים יכולים לבצע על אובייקט ז
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "הפעל"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "לוח הגזירים דורש חיבור מאובטח (HTTPS). יש ל
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "סגור"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "סגור באנר"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "סגור את חלונית הצד"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "עוד"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "פתח ב-Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "פתח את חלונית הצד"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "מריץ את {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "מריץ פונקציה"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "תכונות ה-Enterprise שלך יושבתו"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "תכונות ה-Enterprise שלך יישארו פעילות עד {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "תבנית מפתח ה-Enterprise שלך הוצאה משימוש. אנא הפעל מפתח חדש כדי לשמור על תכונות ה-Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Műveletek, amelyeket a felhasználók ezen az objektumon végrehajthatn
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktiválás"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Bezár"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Banner bezárása"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Oldalsó panel bezárása"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Több"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Outlook megnyitása"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Oldalsó panel megnyitása"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "{formattedName} futtatása"
|
||||
msgid "Running function"
|
||||
msgstr "Függvény fut"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Az Enterprise funkciók le lesznek tiltva"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Az Enterprise funkciók {cancelAtDate} időpontig maradnak aktívak."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Az Enterprise kulcs formátuma elavult. Az Enterprise funkciók megtartásához aktiváljon egy új kulcsot."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Azioni che gli utenti possono eseguire su questo oggetto"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Attiva"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Gli appunti richiedono una connessione sicura (HTTPS). Accedi a questa a
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Chiudi"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Chiudi banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Chiudi il pannello laterale"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Altro"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Aprire Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Apri il pannello laterale"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Esecuzione di {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Funzione in esecuzione"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16458,10 +16459,10 @@ msgstr "Le tue funzionalità Enterprise verranno disabilitate"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Le tue funzionalità Enterprise rimarranno attive fino al {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Il formato della tua chiave Enterprise è deprecato. Attiva una nuova chiave per mantenere le funzionalità Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "このオブジェクトにユーザーが行えるアクション"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "有効化"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "クリップボードの使用にはセキュアな接続 (HTTPS) が必
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "閉じる"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "バナーを閉じる"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "サイドパネルを閉じる"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "もっと"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Outlookで開く"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "サイドパネルを開く"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "{formattedName} を実行中"
|
||||
msgid "Running function"
|
||||
msgstr "関数を実行中"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Enterprise 機能は無効になります"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Enterprise 機能は {cancelAtDate} まで有効のままです。"
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Enterprise キーの形式は非推奨です。Enterprise 機能を維持するには、新しいキーを有効化してください。"
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "사용자가 이 객체에서 수행할 수 있는 작업"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "활성화"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "클립보드는 보안 연결(HTTPS)이 필요합니다. 복사 기능
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "닫기"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "배너 닫기"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "사이드 패널 닫기"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "더보기"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Outlook 열기"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "사이드 패널 열기"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "{formattedName} 실행 중"
|
||||
msgid "Running function"
|
||||
msgstr "함수 실행 중"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "엔터프라이즈 기능이 비활성화됩니다"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "엔터프라이즈 기능은 {cancelAtDate}까지 계속 활성화됩니다."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "엔터프라이즈 키 형식이 더 이상 사용되지 않습니다. 엔터프라이즈 기능을 유지하려면 새 키를 활성화하세요."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Acties die gebruikers op dit object kunnen uitvoeren"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Activeren"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Sluiten"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Banner sluiten"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Zijpaneel sluiten"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Meer"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Open Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Zijpaneel openen"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Voert {formattedName} uit"
|
||||
msgid "Running function"
|
||||
msgstr "Functie wordt uitgevoerd"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16458,10 +16459,10 @@ msgstr "Uw Enterprise-functies worden uitgeschakeld"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Uw Enterprise-functies blijven actief tot {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "De indeling van uw Enterprise-sleutel is verouderd. Activeer een nieuwe sleutel om Enterprise-functies te behouden."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Handlinger brukere kan utføre på dette objektet"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktiver"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Utklippstavlen krever en sikker tilkobling (HTTPS). Åpne denne appen ov
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Lukk"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Lukk banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Lukk sidepanelet"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Mer"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Åpne Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Åpne sidepanelet"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Kjører {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Kjører funksjon"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Enterprise-funksjonene dine vil bli deaktivert"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Enterprise-funksjonene dine forblir aktive til {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Formatet på Enterprise-nøkkelen din er foreldet. Aktiver en ny nøkkel for å beholde Enterprise-funksjonene."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Działania, które użytkownicy mogą wykonywać na tym obiekcie"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktywuj"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Schowek wymaga bezpiecznego połączenia (HTTPS). Otwórz tę aplikację
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Zamknij"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Zamknij baner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Zamknij panel boczny"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Więcej"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Otwórz Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Otwórz panel boczny"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Uruchamianie {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Uruchamianie funkcji"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Twoje funkcje Enterprise zostaną wyłączone"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Twoje funkcje Enterprise pozostaną aktywne do {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Format Twojego klucza Enterprise jest przestarzały. Aktywuj nowy klucz, aby zachować funkcje Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -785,7 +785,7 @@ msgstr ""
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr ""
|
||||
|
||||
@@ -3184,7 +3184,6 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
@@ -3195,7 +3194,6 @@ msgid "Close banner"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr ""
|
||||
@@ -9276,7 +9274,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr ""
|
||||
|
||||
@@ -10719,7 +10716,6 @@ msgid "Open Outlook"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr ""
|
||||
@@ -12342,6 +12338,11 @@ msgstr ""
|
||||
msgid "Running function"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16449,9 +16450,9 @@ msgstr ""
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Ações que os usuários podem realizar neste objeto"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Ativar"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "A área de transferência requer uma conexão segura (HTTPS). Acesse est
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Fechar"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Fechar banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr ""
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Mais"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Abrir Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr ""
|
||||
@@ -12347,6 +12343,11 @@ msgstr ""
|
||||
msgid "Running function"
|
||||
msgstr "Executando função"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Seus recursos Enterprise serão desativados"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Seus recursos Enterprise permanecerão ativos até {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "O formato da sua chave Enterprise está obsoleto. Ative uma nova chave para manter os recursos Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Ações que os usuários podem realizar neste objeto"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Ativar"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "A área de transferência requer uma conexão segura (HTTPS). Acesse est
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Fechar"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Fechar banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Fechar painel lateral"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Mais"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Abrir Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Abrir painel lateral"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Executando {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "A executar função"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Os seus recursos Enterprise serão desativados"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Os seus recursos Enterprise permanecerão ativos até {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "O formato da sua chave Enterprise está obsoleto. Ative uma nova chave para manter os recursos Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Acțiuni pe care utilizatorii le pot efectua asupra acestui obiect"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Activează"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Clipboardul necesită o conexiune securizată (HTTPS). Accesați aceast
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Închide"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Închide bannerul"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Închide panoul lateral"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Mai mult"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Deschide Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Deschide panoul lateral"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Se rulează {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Se rulează funcția"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Funcționalitățile dvs. Enterprise vor fi dezactivate"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Funcționalitățile dvs. Enterprise vor rămâne active până la {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Formatul cheii dvs. Enterprise este învechit. Activați o cheie nouă pentru a păstra funcționalitățile Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
Binary file not shown.
@@ -790,7 +790,7 @@ msgstr "Акције које корисници могу спровести н
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Активирајте"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Клипборд захтева безбедну везу (HTTPS). Пр
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Затвори"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Затвори банер"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Затвори бочни панел"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Још"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Отвори Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Отвори бочни панел"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Покреће се {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Извршавање функције"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Ваше Enterprise функције ће бити онемогућен
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Ваше Enterprise функције ће остати активне до {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Формат вашег Enterprise кључа је застарео. Активирајте нови кључ да бисте задржали Enterprise функције."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Åtgärder användare kan utföra på det här objektet"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktivera"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Urklipp kräver en säker anslutning (HTTPS). Öppna den här appen via
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Stäng"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Stäng banner"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Stäng sidopanelen"
|
||||
@@ -9283,7 +9281,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Mer"
|
||||
|
||||
@@ -10726,7 +10723,6 @@ msgid "Open Outlook"
|
||||
msgstr "Öppna Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Öppna sidopanelen"
|
||||
@@ -12349,6 +12345,11 @@ msgstr "Kör {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Funktionen körs"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16464,10 +16465,10 @@ msgstr "Dina Enterprise-funktioner kommer att inaktiveras"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Dina Enterprise-funktioner förblir aktiva fram till {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Formatet för din Enterprise-nyckel är föråldrat. Aktivera en ny nyckel för att behålla Enterprise-funktionerna."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Kullanıcıların bu nesne üzerinde gerçekleştirebileceği eylemler"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Aktif Et"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Pano güvenli bir bağlantı (HTTPS) gerektirir. Kopyalamayı etkinleşt
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Kapat"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Afişi kapat"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Yan paneli kapat"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Daha Fazla"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Outlook'u Aç"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Yan paneli aç"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "{formattedName} çalıştırılıyor"
|
||||
msgid "Running function"
|
||||
msgstr "İşlev çalıştırılıyor"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Kurumsal özellikleriniz devre dışı bırakılacak"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Kurumsal özellikleriniz {cancelAtDate} tarihine kadar etkin kalacaktır."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Kurumsal anahtar biçiminiz kullanımdan kaldırıldı. Kurumsal özellikleri korumak için lütfen yeni bir anahtar etkinleştirin."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Дії, які користувачі можуть виконувати
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Активувати"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Буфер обміну вимагає захищеного з'єдна
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Закрити"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Закрити банер"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Закрити бічну панель"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Більше"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Відкрити Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Відкрити бічну панель"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Виконання {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Виконується функція"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16458,10 +16459,10 @@ msgstr "Ваші функції Enterprise будуть вимкнені"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Ваші функції Enterprise залишатимуться активними до {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Формат вашого ключа Enterprise застарів. Активуйте новий ключ, щоб зберегти функції Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "Các hành động người dùng có thể thực hiện trên đối t
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "Kích hoạt"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "Bộ nhớ tạm yêu cầu kết nối bảo mật (HTTPS). Vui lòng t
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "Đóng"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "Đóng biểu ngữ"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "Đóng ngăn bên"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "Thêm nữa"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "Mở Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "Mở ngăn bên"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "Đang chạy {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "Đang chạy hàm"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "Các tính năng Enterprise của bạn sẽ bị vô hiệu hóa"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "Các tính năng Enterprise của bạn sẽ vẫn hoạt động đến {cancelAtDate}."
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "Định dạng khóa Enterprise của bạn không còn được hỗ trợ. Vui lòng kích hoạt một khóa mới để giữ các tính năng Enterprise."
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "用户可以在此对象上执行的操作"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "激活"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "剪贴板功能需要安全连接 (HTTPS)。请通过 HTTPS 访问此应
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "关闭"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "关闭横幅"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "关闭侧边栏"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "更多"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "打开Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "打开侧边栏"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "正在运行 {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "正在运行函数"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "您的企业功能将被禁用"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "您的企业功能将保持启用至 {cancelAtDate}。"
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "您的企业密钥格式已弃用。请激活新的密钥以保持企业功能可用。"
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
@@ -790,7 +790,7 @@ msgstr "用戶可以對此對象執行的操作"
|
||||
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Activate"
|
||||
msgstr "啟用"
|
||||
|
||||
@@ -3189,7 +3189,6 @@ msgstr "剪貼簿需要安全連線 (HTTPS)。請透過 HTTPS 存取此應用程
|
||||
|
||||
#. js-lingui-id: yz7wBu
|
||||
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close"
|
||||
msgstr "關閉"
|
||||
|
||||
@@ -3200,7 +3199,6 @@ msgid "Close banner"
|
||||
msgstr "關閉橫幅"
|
||||
|
||||
#. js-lingui-id: saip/v
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Close side panel"
|
||||
msgstr "關閉側邊面板"
|
||||
@@ -9281,7 +9279,6 @@ msgstr ""
|
||||
#. js-lingui-id: 2FYpfJ
|
||||
#: src/pages/settings/ai/SettingsAI.tsx
|
||||
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "More"
|
||||
msgstr "更多"
|
||||
|
||||
@@ -10724,7 +10721,6 @@ msgid "Open Outlook"
|
||||
msgstr "打開Outlook"
|
||||
|
||||
#. js-lingui-id: bY2Xkv
|
||||
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
|
||||
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
|
||||
msgid "Open side panel"
|
||||
msgstr "開啟側邊面板"
|
||||
@@ -12347,6 +12343,11 @@ msgstr "正在執行 {formattedName}"
|
||||
msgid "Running function"
|
||||
msgstr "正在執行函式"
|
||||
|
||||
#. js-lingui-id: SoR81K
|
||||
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
|
||||
msgid "Running workflows on all records is not yet supported. Please select records manually."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LTC198
|
||||
#: src/modules/ai/components/CodeExecutionDisplay.tsx
|
||||
msgid "Running..."
|
||||
@@ -16456,10 +16457,10 @@ msgstr "您的企業功能將被停用"
|
||||
msgid "Your enterprise features will remain active until {cancelAtDate}."
|
||||
msgstr "您的企業功能將維持啟用至 {cancelAtDate}。"
|
||||
|
||||
#. js-lingui-id: 69Siss
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
|
||||
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
|
||||
msgstr "您的企業授權金鑰格式已過時。請啟用新的金鑰以維持企業功能。"
|
||||
#. js-lingui-id: 5TsUUL
|
||||
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
|
||||
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NTpA4U
|
||||
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
|
||||
|
||||
+13
-3
@@ -11,13 +11,14 @@ import { useCloseDropdown } from '@/ui/layout/dropdown/hooks/useCloseDropdown';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { styled } from '@linaria/react';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { useContext } from 'react';
|
||||
import {
|
||||
IconChevronDown,
|
||||
IconSquareCheck,
|
||||
IconSquareX,
|
||||
} from 'twenty-ui/display';
|
||||
import { MenuItemSelect } from 'twenty-ui/navigation';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const DROPDOWN_ID = 'command-menu-edit-record-selection-dropdown';
|
||||
|
||||
@@ -55,6 +56,7 @@ export const CommandMenuItemEditRecordSelectionDropdown = ({
|
||||
isRecordPage = false,
|
||||
}: CommandMenuItemEditRecordSelectionDropdownProps) => {
|
||||
const { t } = useLingui();
|
||||
const { theme } = useContext(ThemeContext);
|
||||
const { closeDropdown } = useCloseDropdown();
|
||||
|
||||
const mainContextStoreHasSelectedRecords = useAtomStateValue(
|
||||
@@ -92,9 +94,17 @@ export const CommandMenuItemEditRecordSelectionDropdown = ({
|
||||
disabled={isRecordPage}
|
||||
data-click-outside-id={COMMAND_MENU_DROPDOWN_CLICK_OUTSIDE_ID}
|
||||
>
|
||||
<TriggerIcon size={16} />
|
||||
<TriggerIcon
|
||||
size={16}
|
||||
color={theme.font.color.primary}
|
||||
stroke={theme.icon.stroke.sm}
|
||||
/>
|
||||
<StyledLabel>{triggerLabel}</StyledLabel>
|
||||
<IconChevronDown size={16} />
|
||||
<IconChevronDown
|
||||
size={16}
|
||||
color={theme.font.color.primary}
|
||||
stroke={theme.icon.stroke.sm}
|
||||
/>
|
||||
</StyledClickableArea>
|
||||
}
|
||||
dropdownPlacement="bottom-start"
|
||||
|
||||
+5
-5
@@ -272,6 +272,11 @@ export const SidePanelCommandMenuItemEditPage = () => {
|
||||
gripMode="onHover"
|
||||
isIconDisplayedOnHoverOnly={false}
|
||||
iconButtons={[
|
||||
{
|
||||
Icon: IconDotsVertical,
|
||||
Wrapper: makeOptionsDropdownWrapper(item),
|
||||
onClick: () => {},
|
||||
},
|
||||
{
|
||||
Icon: IconPinnedOff,
|
||||
onClick: (event) => {
|
||||
@@ -279,11 +284,6 @@ export const SidePanelCommandMenuItemEditPage = () => {
|
||||
handleTogglePin(item.id, true);
|
||||
},
|
||||
},
|
||||
{
|
||||
Icon: IconDotsVertical,
|
||||
Wrapper: makeOptionsDropdownWrapper(item),
|
||||
onClick: () => {},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SelectableListItem>
|
||||
|
||||
+16
-5
@@ -74,12 +74,23 @@ export const useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInforma
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const selectedRecordIds =
|
||||
if (
|
||||
headlessEngineCommandContextApi.targetedRecordsRule.mode ===
|
||||
'selection'
|
||||
? headlessEngineCommandContextApi.targetedRecordsRule
|
||||
.selectedRecordIds
|
||||
: [];
|
||||
'exclusion'
|
||||
) {
|
||||
enqueueWarningSnackBar({
|
||||
message: t`Running workflows on all records is not yet supported. Please select records manually.`,
|
||||
options: {
|
||||
dedupeKey: 'workflow-manual-trigger-select-all-not-supported',
|
||||
},
|
||||
});
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const selectedRecordIds =
|
||||
headlessEngineCommandContextApi.targetedRecordsRule
|
||||
.selectedRecordIds;
|
||||
|
||||
if (selectedRecordIds.length > QUERY_MAX_RECORDS) {
|
||||
const selectedCountFormatted =
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ import { InformationBannerBillingSubscriptionPaused } from '@/information-banner
|
||||
import { InformationBannerEndTrialPeriod } from '@/information-banner/components/billing/InformationBannerEndTrialPeriod';
|
||||
import { InformationBannerFailPaymentInfo } from '@/information-banner/components/billing/InformationBannerFailPaymentInfo';
|
||||
import { InformationBannerNoBillingSubscription } from '@/information-banner/components/billing/InformationBannerNoBillingSubscription';
|
||||
import { InformationBannerLegacyEnterpriseKey } from '@/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey';
|
||||
import { InformationBannerInvalidEnterpriseKey } from '@/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey';
|
||||
import { InformationBannerMaintenance } from '@/information-banner/components/maintenance/InformationBannerMaintenance';
|
||||
import { InformationBannerReconnectAccountEmailAliases } from '@/information-banner/components/reconnect-account/InformationBannerReconnectAccountEmailAliases';
|
||||
import { InformationBannerReconnectAccountInsufficientPermissions } from '@/information-banner/components/reconnect-account/InformationBannerReconnectAccountInsufficientPermissions';
|
||||
@@ -55,7 +55,7 @@ export const InformationBannerWrapper = () => {
|
||||
return (
|
||||
<StyledInformationBannerWrapper>
|
||||
<InformationBannerMaintenance />
|
||||
<InformationBannerLegacyEnterpriseKey />
|
||||
<InformationBannerInvalidEnterpriseKey />
|
||||
{isAccountSyncEnabled && (
|
||||
<InformationBannerReconnectAccountInsufficientPermissions />
|
||||
)}
|
||||
|
||||
+7
-6
@@ -9,9 +9,9 @@ import { SettingsPath } from 'twenty-shared/types';
|
||||
import { getSettingsPath } from 'twenty-shared/utils';
|
||||
import { IconKey } from 'twenty-ui/display';
|
||||
|
||||
const COMPONENT_INSTANCE_ID = 'information-banner-legacy-enterprise-key';
|
||||
const COMPONENT_INSTANCE_ID = 'information-banner-invalid-enterprise-key';
|
||||
|
||||
export const InformationBannerLegacyEnterpriseKey = () => {
|
||||
export const InformationBannerInvalidEnterpriseKey = () => {
|
||||
const { t } = useLingui();
|
||||
const navigate = useNavigate();
|
||||
const currentWorkspace = useAtomStateValue(currentWorkspaceState);
|
||||
@@ -21,11 +21,12 @@ export const InformationBannerLegacyEnterpriseKey = () => {
|
||||
COMPONENT_INSTANCE_ID,
|
||||
);
|
||||
|
||||
const hasLegacyKey =
|
||||
const hasInvalidKey =
|
||||
currentWorkspace?.hasValidEnterpriseKey === true &&
|
||||
currentWorkspace?.hasValidSignedEnterpriseKey !== true;
|
||||
currentWorkspace?.hasValidSignedEnterpriseKey !== true &&
|
||||
currentWorkspace?.hasValidEnterpriseValidityToken !== true;
|
||||
|
||||
if (!hasLegacyKey) {
|
||||
if (!hasInvalidKey) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -33,7 +34,7 @@ export const InformationBannerLegacyEnterpriseKey = () => {
|
||||
<InformationBanner
|
||||
componentInstanceId={COMPONENT_INSTANCE_ID}
|
||||
variant="secondary"
|
||||
message={t`Your enterprise key format is deprecated. Please activate a new key to keep enterprise features.`}
|
||||
message={t`Your enterprise key is no longer valid. Activate a new key to continue using enterprise features.`}
|
||||
buttonTitle={t`Activate`}
|
||||
buttonIcon={IconKey}
|
||||
buttonOnClick={() =>
|
||||
+36
-22
@@ -13,6 +13,7 @@ import {
|
||||
FindManyCommandMenuItemsDocument,
|
||||
FindAllRecordPageLayoutsDocument,
|
||||
FindFieldsWidgetViewsDocument,
|
||||
FindTableWidgetViewsDocument,
|
||||
FindManyFrontComponentsDocument,
|
||||
FindManyLogicFunctionsDocument,
|
||||
FindManyNavigationMenuItemsDocument,
|
||||
@@ -44,6 +45,7 @@ const PAGE_LAYOUTS_GROUP_KEYS: MetadataEntityKey[] = [
|
||||
|
||||
const INDEX_VIEW_TYPES = [ViewType.TABLE, ViewType.KANBAN, ViewType.CALENDAR];
|
||||
const FIELDS_WIDGET_VIEW_TYPES = [ViewType.FIELDS_WIDGET];
|
||||
const TABLE_WIDGET_VIEW_TYPES = [ViewType.TABLE_WIDGET];
|
||||
|
||||
const hasOverlap = (
|
||||
staleKeys: MetadataEntityKey[],
|
||||
@@ -93,30 +95,42 @@ export const useLoadStaleMetadataEntities = () => {
|
||||
variables: { viewTypes: FIELDS_WIDGET_VIEW_TYPES },
|
||||
fetchPolicy: 'network-only',
|
||||
}),
|
||||
]).then(([indexViewsResult, fieldsWidgetViewsResult]) => {
|
||||
const allViews = [
|
||||
...(indexViewsResult.data?.getViews ?? []),
|
||||
...(fieldsWidgetViewsResult.data?.getViews ?? []),
|
||||
];
|
||||
client.query({
|
||||
query: FindTableWidgetViewsDocument,
|
||||
variables: { viewTypes: TABLE_WIDGET_VIEW_TYPES },
|
||||
fetchPolicy: 'network-only',
|
||||
}),
|
||||
]).then(
|
||||
([
|
||||
indexViewsResult,
|
||||
fieldsWidgetViewsResult,
|
||||
tableWidgetViewsResult,
|
||||
]) => {
|
||||
const allViews = [
|
||||
...(indexViewsResult.data?.getViews ?? []),
|
||||
...(fieldsWidgetViewsResult.data?.getViews ?? []),
|
||||
...(tableWidgetViewsResult.data?.getViews ?? []),
|
||||
];
|
||||
|
||||
const {
|
||||
flatViews,
|
||||
flatViewFields,
|
||||
flatViewFilters,
|
||||
flatViewSorts,
|
||||
flatViewGroups,
|
||||
flatViewFilterGroups,
|
||||
flatViewFieldGroups,
|
||||
} = splitViewWithRelated(allViews);
|
||||
const {
|
||||
flatViews,
|
||||
flatViewFields,
|
||||
flatViewFilters,
|
||||
flatViewSorts,
|
||||
flatViewGroups,
|
||||
flatViewFilterGroups,
|
||||
flatViewFieldGroups,
|
||||
} = splitViewWithRelated(allViews);
|
||||
|
||||
replaceDraft('views', flatViews);
|
||||
replaceDraft('viewFields', flatViewFields);
|
||||
replaceDraft('viewFilters', flatViewFilters);
|
||||
replaceDraft('viewSorts', flatViewSorts);
|
||||
replaceDraft('viewGroups', flatViewGroups);
|
||||
replaceDraft('viewFilterGroups', flatViewFilterGroups);
|
||||
replaceDraft('viewFieldGroups', flatViewFieldGroups);
|
||||
}),
|
||||
replaceDraft('views', flatViews);
|
||||
replaceDraft('viewFields', flatViewFields);
|
||||
replaceDraft('viewFilters', flatViewFilters);
|
||||
replaceDraft('viewSorts', flatViewSorts);
|
||||
replaceDraft('viewGroups', flatViewGroups);
|
||||
replaceDraft('viewFilterGroups', flatViewFilterGroups);
|
||||
replaceDraft('viewFieldGroups', flatViewFieldGroups);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import { createAtomState } from '@/ui/utilities/state/jotai/utils/createAtomState';
|
||||
|
||||
export const lastClickedNavigationMenuItemIdState = createAtomState<
|
||||
string | null
|
||||
>({
|
||||
key: 'lastClickedNavigationMenuItemIdState',
|
||||
defaultValue: null,
|
||||
useSessionStorage: true,
|
||||
});
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
import { NavigationMenuItemType } from 'twenty-shared/types';
|
||||
import { isLocationMatchingNavigationMenuItem } from '@/navigation-menu-item/common/utils/isLocationMatchingNavigationMenuItem';
|
||||
|
||||
describe('isLocationMatchingNavigationMenuItem', () => {
|
||||
it('should return true when item link matches current path (non-view) or current view path (view)', () => {
|
||||
expect(
|
||||
isLocationMatchingNavigationMenuItem(
|
||||
'/app/objects/people',
|
||||
'/app/objects/people?viewId=123',
|
||||
NavigationMenuItemType.RECORD,
|
||||
'/app/objects/people',
|
||||
),
|
||||
).toBe(true);
|
||||
expect(
|
||||
isLocationMatchingNavigationMenuItem(
|
||||
'/app/objects/companies',
|
||||
'/app/objects/companies?viewId=123',
|
||||
NavigationMenuItemType.VIEW,
|
||||
'/app/objects/companies?viewId=123',
|
||||
),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it('should return false when item link does not match path', () => {
|
||||
expect(
|
||||
isLocationMatchingNavigationMenuItem(
|
||||
'/app/objects/people',
|
||||
'/app/objects/people?viewId=123',
|
||||
NavigationMenuItemType.RECORD,
|
||||
'/app/objects/company',
|
||||
),
|
||||
).toBe(false);
|
||||
expect(
|
||||
isLocationMatchingNavigationMenuItem(
|
||||
'/app/objects/companies',
|
||||
'/app/objects/companies?viewId=123',
|
||||
NavigationMenuItemType.VIEW,
|
||||
'/app/objects/companies?viewId=456',
|
||||
),
|
||||
).toBe(false);
|
||||
});
|
||||
});
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
import { NavigationMenuItemType } from 'twenty-shared/types';
|
||||
|
||||
export const isLocationMatchingNavigationMenuItem = (
|
||||
currentPath: string,
|
||||
currentViewPath: string,
|
||||
navigationMenuItemType: NavigationMenuItemType,
|
||||
computedLink: string,
|
||||
) => {
|
||||
const isViewBasedItem =
|
||||
navigationMenuItemType === NavigationMenuItemType.VIEW ||
|
||||
navigationMenuItemType === NavigationMenuItemType.OBJECT;
|
||||
return isViewBasedItem
|
||||
? computedLink === currentViewPath
|
||||
: computedLink === currentPath;
|
||||
};
|
||||
+11
-8
@@ -47,7 +47,8 @@ export const NavigationMenuItemFolder = ({
|
||||
const folderName = item.name ?? 'Folder';
|
||||
const folderIconKey = item.icon;
|
||||
const folderColor = 'color' in item ? (item.color as string | null) : null;
|
||||
const navigationMenuItems = folderChildrenById.get(folderId) ?? [];
|
||||
const folderChildrenNavigationMenuItems =
|
||||
folderChildrenById.get(folderId) ?? [];
|
||||
const isGroup = folderCount > 1;
|
||||
|
||||
if (readOnly) {
|
||||
@@ -57,7 +58,7 @@ export const NavigationMenuItemFolder = ({
|
||||
folderName={folderName}
|
||||
folderIconKey={folderIconKey}
|
||||
folderColor={folderColor}
|
||||
navigationMenuItems={navigationMenuItems}
|
||||
navigationMenuItems={folderChildrenNavigationMenuItems}
|
||||
isGroup={isGroup}
|
||||
/>
|
||||
);
|
||||
@@ -71,7 +72,7 @@ export const NavigationMenuItemFolder = ({
|
||||
folderName={folderName}
|
||||
folderIconKey={folderIconKey}
|
||||
folderColor={folderColor}
|
||||
navigationMenuItems={navigationMenuItems}
|
||||
navigationMenuItems={folderChildrenNavigationMenuItems}
|
||||
isGroup={isGroup}
|
||||
/>
|
||||
}
|
||||
@@ -81,7 +82,7 @@ export const NavigationMenuItemFolder = ({
|
||||
folderName={folderName}
|
||||
folderIconKey={folderIconKey}
|
||||
folderColor={folderColor}
|
||||
navigationMenuItems={navigationMenuItems}
|
||||
navigationMenuItems={folderChildrenNavigationMenuItems}
|
||||
isGroup={isGroup}
|
||||
isEditInPlace={isEditInPlace}
|
||||
editModeProps={editModeProps}
|
||||
@@ -115,8 +116,11 @@ const NavigationMenuItemFolderReadOnlyContent = ({
|
||||
const { theme } = useContext(ThemeContext);
|
||||
const FolderIcon = getIcon(folderIconKey ?? FOLDER_ICON_DEFAULT);
|
||||
|
||||
const { isOpen, handleToggle, selectedNavigationMenuItemIndex } =
|
||||
useNavigationMenuItemFolderOpenState({ folderId, navigationMenuItems });
|
||||
const { isOpen, handleToggle, hasActiveChild } =
|
||||
useNavigationMenuItemFolderOpenState({
|
||||
folderId,
|
||||
folderChildrenNavigationMenuItems: navigationMenuItems,
|
||||
});
|
||||
|
||||
return (
|
||||
<NavigationMenuItemFolderLayout
|
||||
@@ -129,7 +133,7 @@ const NavigationMenuItemFolderReadOnlyContent = ({
|
||||
? folderColor
|
||||
: DEFAULT_NAVIGATION_MENU_ITEM_COLOR_FOLDER
|
||||
}
|
||||
active={!isOpen && selectedNavigationMenuItemIndex >= 0}
|
||||
active={!isOpen && hasActiveChild}
|
||||
onClick={handleToggle}
|
||||
className="navigation-drawer-item"
|
||||
triggerEvent="CLICK"
|
||||
@@ -161,7 +165,6 @@ const NavigationMenuItemFolderReadOnlyContent = ({
|
||||
navigationMenuItem={navigationMenuItem}
|
||||
index={index}
|
||||
arrayLength={navigationMenuItems.length}
|
||||
selectedNavigationMenuItemIndex={selectedNavigationMenuItemIndex}
|
||||
isDragging={false}
|
||||
/>
|
||||
))}
|
||||
|
||||
+8
-8
@@ -39,8 +39,8 @@ import { NavigationMenuItemFolderLayout } from '@/navigation-menu-item/display/f
|
||||
import { NavigationMenuItemFolderNavigationDrawerItemDropdown } from '@/navigation-menu-item/display/folder/components/NavigationMenuItemFolderNavigationDrawerItemDropdown';
|
||||
import { NavigationMenuItemFolderSubItem } from '@/navigation-menu-item/display/folder/components/NavigationMenuItemFolderSubItem';
|
||||
import { useNavigationMenuItemFolderOpenState } from '@/navigation-menu-item/display/folder/hooks/useNavigationMenuItemFolderOpenState';
|
||||
import type { NavigationMenuItemClickParams } from '@/navigation-menu-item/display/hooks/useNavigationMenuItemSectionItems';
|
||||
import { useIsNavigationMenuItemEditHighlighted } from '@/navigation-menu-item/display/hooks/useIsNavigationMenuItemEditHighlighted';
|
||||
import type { NavigationMenuItemClickParams } from '@/navigation-menu-item/display/hooks/useNavigationMenuItemSectionItems';
|
||||
import { useFavoritesFolderEdit } from '@/navigation-menu-item/edit/folder/hooks/useFavoritesFolderEdit';
|
||||
import { useOpenAddItemToFolderPage } from '@/navigation-menu-item/edit/hooks/useOpenAddItemToFolderPage';
|
||||
import type { EditModeProps } from '@/object-metadata/components/EditModeProps';
|
||||
@@ -116,8 +116,11 @@ export const NavigationMenuItemFolderDnd = ({
|
||||
? NavigationSections.FAVORITES
|
||||
: NavigationSections.WORKSPACE;
|
||||
|
||||
const { isOpen, handleToggle, selectedNavigationMenuItemIndex } =
|
||||
useNavigationMenuItemFolderOpenState({ folderId, navigationMenuItems });
|
||||
const { isOpen, handleToggle, hasActiveChild } =
|
||||
useNavigationMenuItemFolderOpenState({
|
||||
folderId,
|
||||
folderChildrenNavigationMenuItems: navigationMenuItems,
|
||||
});
|
||||
|
||||
const { isDragging: isContextDragging } = useContext(
|
||||
NavigationMenuItemDragContext,
|
||||
@@ -228,7 +231,7 @@ export const NavigationMenuItemFolderDnd = ({
|
||||
Icon={FolderIcon}
|
||||
iconColor={iconColor}
|
||||
active={
|
||||
(!isOpen && selectedNavigationMenuItemIndex >= 0) ||
|
||||
(!isOpen && hasActiveChild) ||
|
||||
(isWorkspace && isSelectedInEditMode && !isOpen)
|
||||
}
|
||||
onClick={handleHeaderClick}
|
||||
@@ -348,9 +351,6 @@ export const NavigationMenuItemFolderDnd = ({
|
||||
navigationMenuItem={navigationMenuItem}
|
||||
index={index}
|
||||
arrayLength={folderContentLength}
|
||||
selectedNavigationMenuItemIndex={
|
||||
selectedNavigationMenuItemIndex
|
||||
}
|
||||
isDragging={isDragging}
|
||||
rightOptions={
|
||||
isEditInPlace ? (
|
||||
@@ -399,7 +399,7 @@ export const NavigationMenuItemFolderDnd = ({
|
||||
subItemState={getNavigationSubItemLeftAdornment({
|
||||
index: navigationMenuItems.length,
|
||||
arrayLength: folderContentLength,
|
||||
selectedIndex: selectedNavigationMenuItemIndex,
|
||||
selectedIndex: -1,
|
||||
})}
|
||||
/>
|
||||
)}
|
||||
|
||||
+5
-2
@@ -1,5 +1,5 @@
|
||||
import { styled } from '@linaria/react';
|
||||
import { useState, type ReactNode } from 'react';
|
||||
import { useDeferredValue, useState, type ReactNode } from 'react';
|
||||
import { AnimatedExpandableContainer } from 'twenty-ui/layout';
|
||||
|
||||
import { NavigationDrawerItemsCollapsableContainer } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerItemsCollapsableContainer';
|
||||
@@ -25,12 +25,15 @@ export const NavigationMenuItemFolderLayout = ({
|
||||
}: NavigationMenuItemFolderLayoutProps) => {
|
||||
const [skipInitialExpandAnimation] = useState(() => isOpen);
|
||||
|
||||
const deferredIsOpen = useDeferredValue(isOpen);
|
||||
const isExpandedForAnimation = isOpen ? deferredIsOpen : false;
|
||||
|
||||
return (
|
||||
<NavigationDrawerItemsCollapsableContainer isGroup={isGroup}>
|
||||
{header}
|
||||
<StyledFolderExpandableWrapper>
|
||||
<AnimatedExpandableContainer
|
||||
isExpanded={isOpen}
|
||||
isExpanded={isExpandedForAnimation}
|
||||
dimension="height"
|
||||
mode="fit-content"
|
||||
containAnimation
|
||||
|
||||
+23
-9
@@ -1,28 +1,31 @@
|
||||
import { type ReactNode } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { NavigationMenuItemType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { type NavigationMenuItem } from '~/generated-metadata/graphql';
|
||||
|
||||
import { lastClickedNavigationMenuItemIdState } from '@/navigation-menu-item/common/states/lastClickedNavigationMenuItemIdState';
|
||||
import { getNavigationMenuItemColor } from '@/navigation-menu-item/common/utils/getNavigationMenuItemColor';
|
||||
import { NavigationMenuItemIcon } from '@/navigation-menu-item/display/components/NavigationMenuItemIcon';
|
||||
import type { EnrichedObjectMetadataItem } from '@/object-metadata/types/EnrichedObjectMetadataItem';
|
||||
import { getObjectMetadataForNavigationMenuItem } from '@/navigation-menu-item/display/object/utils/getObjectMetadataForNavigationMenuItem';
|
||||
import { useIdentifyActiveNavigationMenuItems } from '@/navigation-menu-item/display/hooks/useIdentifyActiveNavigationMenuItems';
|
||||
import { useIsNavigationMenuItemEditHighlighted } from '@/navigation-menu-item/display/hooks/useIsNavigationMenuItemEditHighlighted';
|
||||
import { getNavigationMenuItemObjectNameSingular } from '@/navigation-menu-item/display/object/utils/getNavigationMenuItemObjectNameSingular';
|
||||
import { getObjectMetadataForNavigationMenuItem } from '@/navigation-menu-item/display/object/utils/getObjectMetadataForNavigationMenuItem';
|
||||
import { getObjectNavigationMenuItemSecondaryLabel } from '@/navigation-menu-item/display/object/utils/getObjectNavigationMenuItemSecondaryLabel';
|
||||
import { getNavigationMenuItemComputedLink } from '@/navigation-menu-item/display/utils/getNavigationMenuItemComputedLink';
|
||||
import { useIsNavigationMenuItemEditHighlighted } from '@/navigation-menu-item/display/hooks/useIsNavigationMenuItemEditHighlighted';
|
||||
import { getNavigationMenuItemLabel } from '@/navigation-menu-item/display/utils/getNavigationMenuItemLabel';
|
||||
import { objectMetadataItemsSelector } from '@/object-metadata/states/objectMetadataItemsSelector';
|
||||
import type { EnrichedObjectMetadataItem } from '@/object-metadata/types/EnrichedObjectMetadataItem';
|
||||
import { NavigationDrawerSubItem } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerSubItem';
|
||||
import { getNavigationSubItemLeftAdornment } from '@/ui/navigation/navigation-drawer/utils/getNavigationSubItemLeftAdornment';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
||||
import { viewsSelector } from '@/views/states/selectors/viewsSelector';
|
||||
|
||||
type NavigationMenuItemFolderSubItemProps = {
|
||||
navigationMenuItem: NavigationMenuItem;
|
||||
index: number;
|
||||
arrayLength: number;
|
||||
selectedNavigationMenuItemIndex: number;
|
||||
isDragging: boolean;
|
||||
rightOptions?: ReactNode;
|
||||
onClick?: () => void;
|
||||
@@ -36,7 +39,6 @@ export const NavigationMenuItemFolderSubItem = ({
|
||||
navigationMenuItem,
|
||||
index,
|
||||
arrayLength,
|
||||
selectedNavigationMenuItemIndex,
|
||||
isDragging,
|
||||
rightOptions,
|
||||
onClick,
|
||||
@@ -46,6 +48,15 @@ export const NavigationMenuItemFolderSubItem = ({
|
||||
useIsNavigationMenuItemEditHighlighted(navigationMenuItem);
|
||||
const objectMetadataItems = useAtomStateValue(objectMetadataItemsSelector);
|
||||
const views = useAtomStateValue(viewsSelector);
|
||||
const navigate = useNavigate();
|
||||
const setLastClickedNavigationMenuItemId = useSetAtomState(
|
||||
lastClickedNavigationMenuItemIdState,
|
||||
);
|
||||
|
||||
const { activeNavigationMenuItemIds } =
|
||||
useIdentifyActiveNavigationMenuItems();
|
||||
|
||||
const isActive = activeNavigationMenuItemIds.includes(navigationMenuItem.id);
|
||||
|
||||
const label = getNavigationMenuItemLabel(
|
||||
navigationMenuItem,
|
||||
@@ -87,7 +98,10 @@ export const NavigationMenuItemFolderSubItem = ({
|
||||
item: navigationMenuItem,
|
||||
objectMetadataItem: objectMetadataItem ?? undefined,
|
||||
})
|
||||
: undefined);
|
||||
: () => {
|
||||
setLastClickedNavigationMenuItemId(navigationMenuItem.id);
|
||||
navigate(computedLink);
|
||||
});
|
||||
|
||||
return (
|
||||
<NavigationDrawerSubItem
|
||||
@@ -107,14 +121,14 @@ export const NavigationMenuItemFolderSubItem = ({
|
||||
navigationMenuItem,
|
||||
objectMetadataItem ?? undefined,
|
||||
)}
|
||||
to={isDragging || handleClick ? undefined : computedLink}
|
||||
to={isDragging || isEditable ? undefined : computedLink}
|
||||
onClick={handleClick}
|
||||
active={index === selectedNavigationMenuItemIndex}
|
||||
active={isActive}
|
||||
isSelectedInEditMode={isEditHighlightedInNavigationMenu}
|
||||
subItemState={getNavigationSubItemLeftAdornment({
|
||||
index,
|
||||
arrayLength,
|
||||
selectedIndex: selectedNavigationMenuItemIndex,
|
||||
selectedIndex: isActive ? index : -1,
|
||||
})}
|
||||
rightOptions={rightOptions}
|
||||
isDragging={isDragging}
|
||||
|
||||
+27
-34
@@ -1,13 +1,14 @@
|
||||
import { isNonEmptyString } from '@sniptt/guards';
|
||||
import { useLocation, useNavigate } from 'react-router-dom';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { NavigationMenuItemType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { useIsMobile } from 'twenty-ui/utilities';
|
||||
import { type NavigationMenuItem } from '~/generated-metadata/graphql';
|
||||
|
||||
import { currentNavigationMenuItemFolderIdState } from '@/navigation-menu-item/common/states/currentNavigationMenuItemFolderIdState';
|
||||
import { lastClickedNavigationMenuItemIdState } from '@/navigation-menu-item/common/states/lastClickedNavigationMenuItemIdState';
|
||||
import { openNavigationMenuItemFolderIdsState } from '@/navigation-menu-item/common/states/openNavigationMenuItemFolderIdsState';
|
||||
import { isLocationMatchingNavigationMenuItem } from '@/navigation-menu-item/common/utils/isLocationMatchingNavigationMenuItem';
|
||||
import { useIdentifyActiveNavigationMenuItems } from '@/navigation-menu-item/display/hooks/useIdentifyActiveNavigationMenuItems';
|
||||
import { getNavigationMenuItemComputedLink } from '@/navigation-menu-item/display/utils/getNavigationMenuItemComputedLink';
|
||||
import { objectMetadataItemsSelector } from '@/object-metadata/states/objectMetadataItemsSelector';
|
||||
import { useAtomState } from '@/ui/utilities/state/jotai/hooks/useAtomState';
|
||||
@@ -17,17 +18,14 @@ import { viewsSelector } from '@/views/states/selectors/viewsSelector';
|
||||
|
||||
type UseNavigationMenuItemFolderOpenStateParams = {
|
||||
folderId: string;
|
||||
navigationMenuItems: NavigationMenuItem[];
|
||||
folderChildrenNavigationMenuItems: NavigationMenuItem[];
|
||||
};
|
||||
|
||||
export const useNavigationMenuItemFolderOpenState = ({
|
||||
folderId,
|
||||
navigationMenuItems,
|
||||
folderChildrenNavigationMenuItems,
|
||||
}: UseNavigationMenuItemFolderOpenStateParams) => {
|
||||
const location = useLocation();
|
||||
const navigate = useNavigate();
|
||||
const currentPath = location.pathname;
|
||||
const currentViewPath = location.pathname + location.search;
|
||||
const isMobile = useIsMobile();
|
||||
const objectMetadataItems = useAtomStateValue(objectMetadataItemsSelector);
|
||||
const views = useAtomStateValue(viewsSelector);
|
||||
@@ -38,24 +36,16 @@ export const useNavigationMenuItemFolderOpenState = ({
|
||||
currentNavigationMenuItemFolderIdState,
|
||||
);
|
||||
|
||||
const selectedNavigationMenuItemIndex = navigationMenuItems.findIndex(
|
||||
(item) => {
|
||||
const computedLink = getNavigationMenuItemComputedLink(
|
||||
item,
|
||||
objectMetadataItems,
|
||||
views,
|
||||
);
|
||||
return isLocationMatchingNavigationMenuItem(
|
||||
currentPath,
|
||||
currentViewPath,
|
||||
item.type,
|
||||
computedLink,
|
||||
);
|
||||
},
|
||||
const { activeNavigationMenuItemIds } =
|
||||
useIdentifyActiveNavigationMenuItems();
|
||||
const setLastClickedNavigationMenuItemId = useSetAtomState(
|
||||
lastClickedNavigationMenuItemIdState,
|
||||
);
|
||||
|
||||
const isExplicitlyOpen = openNavigationMenuItemFolderIds.includes(folderId);
|
||||
const hasActiveChild = selectedNavigationMenuItemIndex >= 0;
|
||||
const hasActiveChild = folderChildrenNavigationMenuItems.some((item) =>
|
||||
activeNavigationMenuItemIds.includes(item.id),
|
||||
);
|
||||
const isOpen = isExplicitlyOpen || hasActiveChild;
|
||||
|
||||
const handleToggle = () => {
|
||||
@@ -72,17 +62,19 @@ export const useNavigationMenuItemFolderOpenState = ({
|
||||
}
|
||||
|
||||
if (!isOpen) {
|
||||
const firstNonLinkItem = navigationMenuItems.find((item) => {
|
||||
if (item.type === NavigationMenuItemType.LINK) {
|
||||
return false;
|
||||
}
|
||||
const computedLink = getNavigationMenuItemComputedLink(
|
||||
item,
|
||||
objectMetadataItems,
|
||||
views,
|
||||
);
|
||||
return isNonEmptyString(computedLink);
|
||||
});
|
||||
const firstNonLinkItem = folderChildrenNavigationMenuItems.find(
|
||||
(item) => {
|
||||
if (item.type === NavigationMenuItemType.LINK) {
|
||||
return false;
|
||||
}
|
||||
const computedLink = getNavigationMenuItemComputedLink(
|
||||
item,
|
||||
objectMetadataItems,
|
||||
views,
|
||||
);
|
||||
return isNonEmptyString(computedLink);
|
||||
},
|
||||
);
|
||||
if (isDefined(firstNonLinkItem)) {
|
||||
const link = getNavigationMenuItemComputedLink(
|
||||
firstNonLinkItem,
|
||||
@@ -90,6 +82,7 @@ export const useNavigationMenuItemFolderOpenState = ({
|
||||
views,
|
||||
);
|
||||
if (isNonEmptyString(link)) {
|
||||
setLastClickedNavigationMenuItemId(firstNonLinkItem.id);
|
||||
navigate(link);
|
||||
}
|
||||
}
|
||||
@@ -99,6 +92,6 @@ export const useNavigationMenuItemFolderOpenState = ({
|
||||
return {
|
||||
isOpen,
|
||||
handleToggle,
|
||||
selectedNavigationMenuItemIndex,
|
||||
hasActiveChild,
|
||||
};
|
||||
};
|
||||
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useLocation, useParams } from 'react-router-dom';
|
||||
import { AppPath, NavigationMenuItemType } from 'twenty-shared/types';
|
||||
import { getAppPath, isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||
import { lastClickedNavigationMenuItemIdState } from '@/navigation-menu-item/common/states/lastClickedNavigationMenuItemIdState';
|
||||
import { navigationMenuItemsSelector } from '@/navigation-menu-item/common/states/navigationMenuItemsSelector';
|
||||
import { getObjectMetadataForNavigationMenuItem } from '@/navigation-menu-item/display/object/utils/getObjectMetadataForNavigationMenuItem';
|
||||
import { getNavigationMenuItemComputedLink } from '@/navigation-menu-item/display/utils/getNavigationMenuItemComputedLink';
|
||||
import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems';
|
||||
import { useAtomComponentStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomComponentStateValue';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { viewsSelector } from '@/views/states/selectors/viewsSelector';
|
||||
|
||||
export const useIdentifyActiveNavigationMenuItems = (): {
|
||||
activeNavigationMenuItemIds: string[];
|
||||
objectMetadataIdForOpenedSection: string | null;
|
||||
} => {
|
||||
const navigationMenuItems = useAtomStateValue(navigationMenuItemsSelector);
|
||||
const lastClickedNavigationMenuItemId = useAtomStateValue(
|
||||
lastClickedNavigationMenuItemIdState,
|
||||
);
|
||||
const views = useAtomStateValue(viewsSelector);
|
||||
const { activeObjectMetadataItems, objectMetadataItems } =
|
||||
useFilteredObjectMetadataItems();
|
||||
|
||||
const location = useLocation();
|
||||
const {
|
||||
objectNamePlural: currentObjectNamePlural,
|
||||
objectNameSingular: currentObjectNameSingular,
|
||||
} = useParams();
|
||||
|
||||
const currentPath = location.pathname;
|
||||
const currentPathWithSearch = location.pathname + location.search;
|
||||
|
||||
const currentObjectMetadataItem = activeObjectMetadataItems.find(
|
||||
(item) =>
|
||||
item.namePlural === currentObjectNamePlural ||
|
||||
item.nameSingular === currentObjectNameSingular,
|
||||
);
|
||||
|
||||
const isOnRecordShowPage =
|
||||
isDefined(currentObjectMetadataItem) &&
|
||||
currentPath.includes(
|
||||
getAppPath(AppPath.RecordShowPage, {
|
||||
objectNameSingular: currentObjectMetadataItem.nameSingular,
|
||||
objectRecordId: '',
|
||||
}) + '/',
|
||||
);
|
||||
|
||||
const contextStoreCurrentViewId = useAtomComponentStateValue(
|
||||
contextStoreCurrentViewIdComponentState,
|
||||
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
||||
);
|
||||
|
||||
const { activeNavigationMenuItemIds, objectMetadataIdForOpenedSection } =
|
||||
useMemo(() => {
|
||||
if (isDefined(lastClickedNavigationMenuItemId)) {
|
||||
const lastClickedItem = navigationMenuItems.find(
|
||||
(item) => item.id === lastClickedNavigationMenuItemId,
|
||||
);
|
||||
|
||||
if (isDefined(lastClickedItem)) {
|
||||
const lastClickedNavigationMenuItemLink =
|
||||
getNavigationMenuItemComputedLink(
|
||||
lastClickedItem,
|
||||
objectMetadataItems,
|
||||
views,
|
||||
);
|
||||
const lastClickedObjectMetadataId =
|
||||
getObjectMetadataForNavigationMenuItem(
|
||||
lastClickedItem,
|
||||
objectMetadataItems,
|
||||
views,
|
||||
)?.id;
|
||||
|
||||
const pathMatches =
|
||||
currentPathWithSearch === lastClickedNavigationMenuItemLink;
|
||||
const objectMatchesOnShowPage =
|
||||
isOnRecordShowPage &&
|
||||
isDefined(lastClickedObjectMetadataId) &&
|
||||
lastClickedObjectMetadataId === currentObjectMetadataItem?.id;
|
||||
|
||||
const isLastClickedNavigationMenuItemRelevant =
|
||||
pathMatches || objectMatchesOnShowPage;
|
||||
if (isLastClickedNavigationMenuItemRelevant) {
|
||||
return {
|
||||
activeNavigationMenuItemIds: [lastClickedItem.id],
|
||||
objectMetadataIdForOpenedSection: null,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isOnRecordShowPage) {
|
||||
const matchingRecordNavigationMenuItemIds = navigationMenuItems
|
||||
.filter((item) => {
|
||||
if (item.type !== NavigationMenuItemType.RECORD) {
|
||||
return false;
|
||||
}
|
||||
const link = getNavigationMenuItemComputedLink(
|
||||
item,
|
||||
objectMetadataItems,
|
||||
views,
|
||||
);
|
||||
return link === currentPath;
|
||||
})
|
||||
.map((item) => item.id);
|
||||
|
||||
const matchingObjectNavigationMenuItemIds = navigationMenuItems
|
||||
.filter((item) => {
|
||||
if (item.type !== NavigationMenuItemType.OBJECT) {
|
||||
return false;
|
||||
}
|
||||
const itemObjectMetadataId = getObjectMetadataForNavigationMenuItem(
|
||||
item,
|
||||
objectMetadataItems,
|
||||
views,
|
||||
)?.id;
|
||||
return itemObjectMetadataId === currentObjectMetadataItem?.id;
|
||||
})
|
||||
.map((item) => item.id);
|
||||
|
||||
const activeNavigationMenuItemIds = [
|
||||
...matchingRecordNavigationMenuItemIds,
|
||||
...matchingObjectNavigationMenuItemIds,
|
||||
];
|
||||
|
||||
return {
|
||||
activeNavigationMenuItemIds,
|
||||
objectMetadataIdForOpenedSection:
|
||||
activeNavigationMenuItemIds.length === 0
|
||||
? currentObjectMetadataItem?.id
|
||||
: null,
|
||||
};
|
||||
}
|
||||
|
||||
const matchingViewNavigationMenuItemIds = navigationMenuItems
|
||||
.filter(
|
||||
(item) =>
|
||||
item.type === NavigationMenuItemType.VIEW &&
|
||||
isDefined(contextStoreCurrentViewId) &&
|
||||
item.viewId === contextStoreCurrentViewId,
|
||||
)
|
||||
.map((item) => item.id);
|
||||
|
||||
if (matchingViewNavigationMenuItemIds.length > 0) {
|
||||
return {
|
||||
activeNavigationMenuItemIds: matchingViewNavigationMenuItemIds,
|
||||
objectMetadataIdForOpenedSection: null,
|
||||
};
|
||||
}
|
||||
|
||||
const matchingObjectNavigationMenuItemIds = navigationMenuItems
|
||||
.filter(
|
||||
(item) =>
|
||||
item.type === NavigationMenuItemType.OBJECT &&
|
||||
item.targetObjectMetadataId === currentObjectMetadataItem?.id,
|
||||
)
|
||||
.map((item) => item.id);
|
||||
|
||||
return {
|
||||
activeNavigationMenuItemIds: matchingObjectNavigationMenuItemIds,
|
||||
objectMetadataIdForOpenedSection:
|
||||
matchingObjectNavigationMenuItemIds.length === 0 &&
|
||||
isDefined(currentObjectMetadataItem)
|
||||
? currentObjectMetadataItem.id
|
||||
: null,
|
||||
};
|
||||
}, [
|
||||
navigationMenuItems,
|
||||
lastClickedNavigationMenuItemId,
|
||||
objectMetadataItems,
|
||||
views,
|
||||
location,
|
||||
contextStoreCurrentViewId,
|
||||
]);
|
||||
|
||||
return { activeNavigationMenuItemIds, objectMetadataIdForOpenedSection };
|
||||
};
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
import { NavigationMenuItemType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { useNavigationMenuItemsData } from './useNavigationMenuItemsData';
|
||||
|
||||
export const useWorkspaceNavigationMenuItems = (): {
|
||||
objectMetadataIdsInWorkspaceNav: Set<string>;
|
||||
} => {
|
||||
const { workspaceNavigationMenuItems: rawWorkspaceNavigationMenuItems } =
|
||||
useNavigationMenuItemsData();
|
||||
|
||||
const objectMetadataIdsInWorkspaceNav = new Set(
|
||||
rawWorkspaceNavigationMenuItems
|
||||
.filter((item) => item.type === NavigationMenuItemType.OBJECT)
|
||||
.map((item) => item.targetObjectMetadataId)
|
||||
.filter((objectMetadataId) => isDefined(objectMetadataId)),
|
||||
);
|
||||
|
||||
return {
|
||||
objectMetadataIdsInWorkspaceNav,
|
||||
};
|
||||
};
|
||||
+22
-22
@@ -3,7 +3,9 @@ import { isNonEmptyString } from '@sniptt/guards';
|
||||
import { Fragment, type ReactNode, useContext } from 'react';
|
||||
|
||||
import { isLayoutCustomizationModeEnabledState } from '@/layout-customization/states/isLayoutCustomizationModeEnabledState';
|
||||
import { lastClickedNavigationMenuItemIdState } from '@/navigation-menu-item/common/states/lastClickedNavigationMenuItemIdState';
|
||||
import { recordIdentifierToObjectRecordIdentifier } from '@/navigation-menu-item/common/utils/recordIdentifierToObjectRecordIdentifier';
|
||||
import { useIdentifyActiveNavigationMenuItems } from '@/navigation-menu-item/display/hooks/useIdentifyActiveNavigationMenuItems';
|
||||
import { getNavigationMenuItemComputedLink } from '@/navigation-menu-item/display/utils/getNavigationMenuItemComputedLink';
|
||||
import { getNavigationMenuItemLabel } from '@/navigation-menu-item/display/utils/getNavigationMenuItemLabel';
|
||||
import { ObjectIconWithViewOverlay } from '@/navigation-menu-item/display/view/components/ObjectIconWithViewOverlay';
|
||||
@@ -15,8 +17,9 @@ import { getObjectPermissionsForObject } from '@/object-metadata/utils/getObject
|
||||
import { useObjectPermissions } from '@/object-record/hooks/useObjectPermissions';
|
||||
import { NavigationDrawerItem } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerItem';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
||||
import { viewsSelector } from '@/views/states/selectors/viewsSelector';
|
||||
import { useLocation } from 'react-router-dom';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import {
|
||||
AppPath,
|
||||
CoreObjectNameSingular,
|
||||
@@ -67,16 +70,20 @@ export const NavigationDrawerItemForObjectMetadataItem = ({
|
||||
|
||||
const { getIcon } = useIcons();
|
||||
const objectNavItemColor = getObjectColorWithFallback(objectMetadataItem);
|
||||
const location = useLocation();
|
||||
const currentPath = location.pathname;
|
||||
const currentPathWithSearch = `${location.pathname}${location.search}`;
|
||||
const navigate = useNavigate();
|
||||
|
||||
const { activeNavigationMenuItemIds, objectMetadataIdForOpenedSection } =
|
||||
useIdentifyActiveNavigationMenuItems();
|
||||
const setLastClickedNavigationMenuItemId = useSetAtomState(
|
||||
lastClickedNavigationMenuItemIdState,
|
||||
);
|
||||
|
||||
const isRecord = navigationMenuItem?.type === NavigationMenuItemType.RECORD;
|
||||
const isView = navigationMenuItem?.type === NavigationMenuItemType.VIEW;
|
||||
const isObject = navigationMenuItem?.type === NavigationMenuItemType.OBJECT;
|
||||
const hasCustomLink = isRecord || isView || isObject;
|
||||
const hasNavigationMenuItem = isRecord || isView || isObject;
|
||||
|
||||
const navigationPath = hasCustomLink
|
||||
const navigationPath = hasNavigationMenuItem
|
||||
? getNavigationMenuItemComputedLink(
|
||||
navigationMenuItem!,
|
||||
objectMetadataItems,
|
||||
@@ -88,25 +95,18 @@ export const NavigationDrawerItemForObjectMetadataItem = ({
|
||||
lastVisitedViewId ? { viewId: lastVisitedViewId } : undefined,
|
||||
);
|
||||
|
||||
const computedLink = hasCustomLink ? navigationPath : '';
|
||||
|
||||
const isActive = hasCustomLink
|
||||
? (isView || isObject ? currentPathWithSearch : currentPath) ===
|
||||
computedLink
|
||||
: currentPath ===
|
||||
getAppPath(AppPath.RecordIndexPage, {
|
||||
objectNamePlural: objectMetadataItem.namePlural,
|
||||
}) ||
|
||||
currentPath.includes(
|
||||
getAppPath(AppPath.RecordShowPage, {
|
||||
objectNameSingular: objectMetadataItem.nameSingular,
|
||||
objectRecordId: '',
|
||||
}) + '/',
|
||||
);
|
||||
const isActive = hasNavigationMenuItem
|
||||
? activeNavigationMenuItemIds.includes(navigationMenuItem!.id)
|
||||
: objectMetadataIdForOpenedSection === objectMetadataItem.id;
|
||||
|
||||
const handleClick = isLayoutCustomizationModeEnabled
|
||||
? onEditModeClick
|
||||
: undefined;
|
||||
: hasNavigationMenuItem && !isDragging
|
||||
? () => {
|
||||
setLastClickedNavigationMenuItemId(navigationMenuItem!.id);
|
||||
navigate(navigationPath);
|
||||
}
|
||||
: undefined;
|
||||
|
||||
const shouldNavigate = !isLayoutCustomizationModeEnabled;
|
||||
|
||||
|
||||
+6
-15
@@ -1,6 +1,4 @@
|
||||
import { useParams } from 'react-router-dom';
|
||||
|
||||
import { useWorkspaceNavigationMenuItems } from '@/navigation-menu-item/display/hooks/useWorkspaceNavigationMenuItems';
|
||||
import { useIdentifyActiveNavigationMenuItems } from '@/navigation-menu-item/display/hooks/useIdentifyActiveNavigationMenuItems';
|
||||
import { NavigationDrawerSectionForObjectMetadataItems } from '@/object-metadata/components/NavigationDrawerSectionForObjectMetadataItems';
|
||||
import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
@@ -12,21 +10,14 @@ export const NavigationDrawerOpenedSection = () => {
|
||||
|
||||
const { activeObjectMetadataItems } = useFilteredObjectMetadataItems();
|
||||
|
||||
const { objectMetadataIdsInWorkspaceNav } = useWorkspaceNavigationMenuItems();
|
||||
|
||||
const {
|
||||
objectNamePlural: currentObjectNamePlural,
|
||||
objectNameSingular: currentObjectNameSingular,
|
||||
} = useParams();
|
||||
const { objectMetadataIdForOpenedSection } =
|
||||
useIdentifyActiveNavigationMenuItems();
|
||||
|
||||
const objectMetadataItem = activeObjectMetadataItems.find(
|
||||
(item) =>
|
||||
item.namePlural === currentObjectNamePlural ||
|
||||
item.nameSingular === currentObjectNameSingular,
|
||||
(item) => item.id === objectMetadataIdForOpenedSection,
|
||||
);
|
||||
const shouldShowOpenedSection = isDefined(objectMetadataItem)
|
||||
? !objectMetadataIdsInWorkspaceNav.has(objectMetadataItem.id)
|
||||
: false;
|
||||
|
||||
const shouldShowOpenedSection = isDefined(objectMetadataItem);
|
||||
|
||||
return (
|
||||
<AnimatedExpandableContainer isExpanded={shouldShowOpenedSection}>
|
||||
|
||||
+1
@@ -4,4 +4,5 @@ import { ViewVisibility } from '~/generated-metadata/graphql';
|
||||
|
||||
export const isViewDisplayableInNavigationMenu = (view: View): boolean =>
|
||||
view.type !== ViewType.FIELDS_WIDGET &&
|
||||
view.type !== ViewType.TABLE_WIDGET &&
|
||||
view.visibility === ViewVisibility.WORKSPACE;
|
||||
|
||||
+2
-1
@@ -4,13 +4,13 @@ import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/
|
||||
import { useRecordIndexContextOrThrow } from '@/object-record/record-index/contexts/RecordIndexContext';
|
||||
import { useLoadRecordIndexStates } from '@/object-record/record-index/hooks/useLoadRecordIndexStates';
|
||||
import { recordIndexViewTypeState } from '@/object-record/record-index/states/recordIndexViewTypeState';
|
||||
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
||||
import { useUpdateCurrentView } from '@/views/hooks/useUpdateCurrentView';
|
||||
import { viewsSelector } from '@/views/states/selectors/viewsSelector';
|
||||
import { type GraphQLView } from '@/views/types/GraphQLView';
|
||||
import { ViewType, viewTypeIconMapping } from '@/views/types/ViewType';
|
||||
import { useGetAvailableFieldsForCalendar } from '@/views/view-picker/hooks/useGetAvailableFieldsForCalendar';
|
||||
import { useGetAvailableFieldsToGroupRecordsBy } from '@/views/view-picker/hooks/useGetAvailableFieldsToGroupRecordsBy';
|
||||
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
||||
import { useStore } from 'jotai';
|
||||
import { useCallback } from 'react';
|
||||
import { assertUnreachable, isDefined } from 'twenty-shared/utils';
|
||||
@@ -112,6 +112,7 @@ export const useSetViewTypeFromLayoutOptionsMenu = () => {
|
||||
updateCurrentViewParams.mainGroupByFieldMetadataId = null;
|
||||
return await updateCurrentView(updateCurrentViewParams);
|
||||
}
|
||||
case ViewType.TABLE_WIDGET:
|
||||
case ViewType.FIELDS_WIDGET: {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
import { useUpdateMetadataStoreDraft } from '@/metadata-store/hooks/useUpdateMetadataStoreDraft';
|
||||
import { metadataStoreState } from '@/metadata-store/states/metadataStoreState';
|
||||
import { type FlatView } from '@/metadata-store/types/FlatView';
|
||||
import { type FlatViewField } from '@/metadata-store/types/FlatViewField';
|
||||
import { type FlatViewFieldGroup } from '@/metadata-store/types/FlatViewFieldGroup';
|
||||
import { useStore } from 'jotai';
|
||||
import { useCallback } from 'react';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
export type CloneViewResult = {
|
||||
newViewId: string;
|
||||
copiedViewFieldGroups: FlatViewFieldGroup[];
|
||||
copiedViewFields: FlatViewField[];
|
||||
};
|
||||
|
||||
export const useCloneViewInMetadataStore = () => {
|
||||
const store = useStore();
|
||||
const { addToDraft, applyChanges } = useUpdateMetadataStoreDraft();
|
||||
|
||||
const cloneView = useCallback(
|
||||
(sourceViewId: string): CloneViewResult | null => {
|
||||
const flatViews = store.get(metadataStoreState.atomFamily('views'))
|
||||
.current as FlatView[];
|
||||
const allFlatViewFields = store.get(
|
||||
metadataStoreState.atomFamily('viewFields'),
|
||||
).current as FlatViewField[];
|
||||
const allFlatViewFieldGroups = store.get(
|
||||
metadataStoreState.atomFamily('viewFieldGroups'),
|
||||
).current as FlatViewFieldGroup[];
|
||||
|
||||
const sourceView = flatViews.find((view) => view.id === sourceViewId);
|
||||
|
||||
if (!isDefined(sourceView)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const sourceViewFields = allFlatViewFields.filter(
|
||||
(field) => field.viewId === sourceViewId && field.isActive,
|
||||
);
|
||||
const sourceViewFieldGroups = allFlatViewFieldGroups.filter(
|
||||
(group) => group.viewId === sourceViewId && group.isActive,
|
||||
);
|
||||
|
||||
const newViewId = uuidv4();
|
||||
|
||||
const oldGroupIdToNewGroupId = new Map<string, string>();
|
||||
|
||||
for (const group of sourceViewFieldGroups) {
|
||||
oldGroupIdToNewGroupId.set(group.id, uuidv4());
|
||||
}
|
||||
|
||||
const copiedView: FlatView = {
|
||||
...sourceView,
|
||||
id: newViewId,
|
||||
};
|
||||
|
||||
const copiedViewFieldGroups: FlatViewFieldGroup[] =
|
||||
sourceViewFieldGroups.map((group) => ({
|
||||
...group,
|
||||
id: oldGroupIdToNewGroupId.get(group.id) ?? uuidv4(),
|
||||
viewId: newViewId,
|
||||
}));
|
||||
|
||||
const copiedViewFields: FlatViewField[] = sourceViewFields.map(
|
||||
(field) => ({
|
||||
...field,
|
||||
id: uuidv4(),
|
||||
viewId: newViewId,
|
||||
viewFieldGroupId: isDefined(field.viewFieldGroupId)
|
||||
? (oldGroupIdToNewGroupId.get(field.viewFieldGroupId) ?? null)
|
||||
: field.viewFieldGroupId,
|
||||
}),
|
||||
);
|
||||
|
||||
addToDraft({ key: 'views', items: [copiedView] });
|
||||
|
||||
applyChanges();
|
||||
|
||||
return { newViewId, copiedViewFieldGroups, copiedViewFields };
|
||||
},
|
||||
[addToDraft, applyChanges, store],
|
||||
);
|
||||
|
||||
return { cloneView };
|
||||
};
|
||||
+168
@@ -0,0 +1,168 @@
|
||||
import { objectMetadataItemsSelector } from '@/object-metadata/states/objectMetadataItemsSelector';
|
||||
import { useCloneViewInMetadataStore } from '@/page-layout/hooks/useCloneViewInMetadataStore';
|
||||
import { fieldsWidgetEditorModeDraftComponentState } from '@/page-layout/states/fieldsWidgetEditorModeDraftComponentState';
|
||||
import { fieldsWidgetGroupsDraftComponentState } from '@/page-layout/states/fieldsWidgetGroupsDraftComponentState';
|
||||
import { fieldsWidgetUngroupedFieldsDraftComponentState } from '@/page-layout/states/fieldsWidgetUngroupedFieldsDraftComponentState';
|
||||
import { pageLayoutDraftComponentState } from '@/page-layout/states/pageLayoutDraftComponentState';
|
||||
import { type PageLayoutWidget } from '@/page-layout/types/PageLayoutWidget';
|
||||
import { buildFieldsWidgetGroupsFromFlatViewData } from '@/page-layout/utils/buildFieldsWidgetGroupsFromFlatViewData';
|
||||
import { getWidgetConfigurationViewId } from '@/page-layout/utils/getWidgetConfigurationViewId';
|
||||
import { type FieldsWidgetEditorMode } from '@/page-layout/widgets/fields/types/FieldsWidgetEditorMode';
|
||||
import {
|
||||
type FieldsWidgetGroup,
|
||||
type FieldsWidgetGroupField,
|
||||
} from '@/page-layout/widgets/fields/types/FieldsWidgetGroup';
|
||||
import { useAtomComponentStateCallbackState } from '@/ui/utilities/state/jotai/hooks/useAtomComponentStateCallbackState';
|
||||
import { useStore } from 'jotai';
|
||||
import { useCallback } from 'react';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { WidgetType } from '~/generated-metadata/graphql';
|
||||
|
||||
type DuplicateFieldsWidgetParams = {
|
||||
sourceWidget: PageLayoutWidget;
|
||||
newWidgetId: string;
|
||||
};
|
||||
|
||||
type DuplicateFieldsWidgetResult = {
|
||||
newViewId: string;
|
||||
};
|
||||
|
||||
const stripViewFieldId = (
|
||||
field: FieldsWidgetGroupField,
|
||||
): FieldsWidgetGroupField => {
|
||||
const { viewFieldId: _omit, ...rest } = field;
|
||||
|
||||
return rest;
|
||||
};
|
||||
|
||||
export const useDuplicateFieldsWidgetForPageLayout = ({
|
||||
pageLayoutId,
|
||||
}: {
|
||||
pageLayoutId: string;
|
||||
}) => {
|
||||
const store = useStore();
|
||||
|
||||
const { cloneView } = useCloneViewInMetadataStore();
|
||||
|
||||
const pageLayoutDraftState = useAtomComponentStateCallbackState(
|
||||
pageLayoutDraftComponentState,
|
||||
pageLayoutId,
|
||||
);
|
||||
|
||||
const fieldsWidgetGroupsDraftState = useAtomComponentStateCallbackState(
|
||||
fieldsWidgetGroupsDraftComponentState,
|
||||
pageLayoutId,
|
||||
);
|
||||
|
||||
const fieldsWidgetUngroupedFieldsDraftState =
|
||||
useAtomComponentStateCallbackState(
|
||||
fieldsWidgetUngroupedFieldsDraftComponentState,
|
||||
pageLayoutId,
|
||||
);
|
||||
|
||||
const fieldsWidgetEditorModeDraftState = useAtomComponentStateCallbackState(
|
||||
fieldsWidgetEditorModeDraftComponentState,
|
||||
pageLayoutId,
|
||||
);
|
||||
|
||||
const duplicateFieldsWidget = useCallback(
|
||||
({
|
||||
sourceWidget,
|
||||
newWidgetId,
|
||||
}: DuplicateFieldsWidgetParams): DuplicateFieldsWidgetResult | null => {
|
||||
if (sourceWidget.type !== WidgetType.FIELDS) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const sourceViewId = getWidgetConfigurationViewId(
|
||||
sourceWidget.configuration,
|
||||
);
|
||||
|
||||
if (!isDefined(sourceViewId)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const copyResult = cloneView(sourceViewId);
|
||||
|
||||
if (!isDefined(copyResult)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const sourceGroups = store.get(fieldsWidgetGroupsDraftState)[
|
||||
sourceWidget.id
|
||||
];
|
||||
const sourceUngroupedFields = store.get(
|
||||
fieldsWidgetUngroupedFieldsDraftState,
|
||||
)[sourceWidget.id];
|
||||
const sourceEditorMode = store.get(fieldsWidgetEditorModeDraftState)[
|
||||
sourceWidget.id
|
||||
];
|
||||
|
||||
let newGroups: FieldsWidgetGroup[] = [];
|
||||
let newUngroupedFields: FieldsWidgetGroupField[] = [];
|
||||
let newEditorMode: FieldsWidgetEditorMode;
|
||||
|
||||
if (isDefined(sourceEditorMode)) {
|
||||
newEditorMode = sourceEditorMode;
|
||||
|
||||
if (newEditorMode === 'grouped') {
|
||||
newGroups = (sourceGroups ?? []).map((group) => ({
|
||||
...group,
|
||||
id: uuidv4(),
|
||||
fields: group.fields.map(stripViewFieldId),
|
||||
}));
|
||||
} else {
|
||||
newUngroupedFields = (sourceUngroupedFields ?? []).map(
|
||||
stripViewFieldId,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
const pageLayoutDraft = store.get(pageLayoutDraftState);
|
||||
const objectMetadataId = pageLayoutDraft.objectMetadataId;
|
||||
const objectMetadataItems = store.get(objectMetadataItemsSelector.atom);
|
||||
const fieldMetadataItems = isDefined(objectMetadataId)
|
||||
? (objectMetadataItems.find((item) => item.id === objectMetadataId)
|
||||
?.fields ?? [])
|
||||
: [];
|
||||
|
||||
const built = buildFieldsWidgetGroupsFromFlatViewData({
|
||||
flatViewFieldGroups: copyResult.copiedViewFieldGroups,
|
||||
flatViewFields: copyResult.copiedViewFields,
|
||||
fieldMetadataItems,
|
||||
});
|
||||
|
||||
newEditorMode = built.editorMode;
|
||||
newGroups = built.groups;
|
||||
newUngroupedFields = built.ungroupedFields;
|
||||
}
|
||||
|
||||
store.set(fieldsWidgetGroupsDraftState, (prev) => ({
|
||||
...prev,
|
||||
[newWidgetId]: newGroups,
|
||||
}));
|
||||
|
||||
store.set(fieldsWidgetUngroupedFieldsDraftState, (prev) => ({
|
||||
...prev,
|
||||
[newWidgetId]: newUngroupedFields,
|
||||
}));
|
||||
|
||||
store.set(fieldsWidgetEditorModeDraftState, (prev) => ({
|
||||
...prev,
|
||||
[newWidgetId]: newEditorMode,
|
||||
}));
|
||||
|
||||
return { newViewId: copyResult.newViewId };
|
||||
},
|
||||
[
|
||||
cloneView,
|
||||
fieldsWidgetEditorModeDraftState,
|
||||
fieldsWidgetGroupsDraftState,
|
||||
fieldsWidgetUngroupedFieldsDraftState,
|
||||
pageLayoutDraftState,
|
||||
store,
|
||||
],
|
||||
);
|
||||
|
||||
return { duplicateFieldsWidget };
|
||||
};
|
||||
@@ -1,8 +1,10 @@
|
||||
import { useDuplicateFieldsWidgetForPageLayout } from '@/page-layout/hooks/useDuplicateFieldsWidgetForPageLayout';
|
||||
import { PageLayoutComponentInstanceContext } from '@/page-layout/states/contexts/PageLayoutComponentInstanceContext';
|
||||
import { pageLayoutCurrentLayoutsComponentState } from '@/page-layout/states/pageLayoutCurrentLayoutsComponentState';
|
||||
import { pageLayoutDraftComponentState } from '@/page-layout/states/pageLayoutDraftComponentState';
|
||||
import { pageLayoutTabSettingsOpenTabIdComponentState } from '@/page-layout/states/pageLayoutTabSettingsOpenTabIdComponentState';
|
||||
import { type PageLayoutTab } from '@/page-layout/types/PageLayoutTab';
|
||||
import { type PageLayoutWidget } from '@/page-layout/types/PageLayoutWidget';
|
||||
import { generateDuplicatedTimestamps } from '@/page-layout/utils/generateDuplicatedTimestamps';
|
||||
import { sortTabsByPosition } from '@/page-layout/utils/sortTabsByPosition';
|
||||
import { useSidePanelMenu } from '@/side-panel/hooks/useSidePanelMenu';
|
||||
@@ -56,13 +58,19 @@ export const useDuplicatePageLayoutTab = ({
|
||||
|
||||
const { closeSidePanelMenu } = useSidePanelMenu();
|
||||
|
||||
const { duplicateFieldsWidget } = useDuplicateFieldsWidgetForPageLayout({
|
||||
pageLayoutId,
|
||||
});
|
||||
|
||||
const duplicateTab = useCallback(
|
||||
(tabId: string): string => {
|
||||
const currentPageLayoutDraft = store.get(pageLayoutDraft);
|
||||
|
||||
const allTabLayouts = store.get(pageLayoutCurrentLayouts);
|
||||
|
||||
const sourceTab = currentPageLayoutDraft.tabs.find((t) => t.id === tabId);
|
||||
const sourceTab = currentPageLayoutDraft.tabs.find(
|
||||
(tab) => tab.id === tabId,
|
||||
);
|
||||
|
||||
if (!isDefined(sourceTab)) {
|
||||
throw new Error(`Tab with id ${tabId} not found`);
|
||||
@@ -71,17 +79,32 @@ export const useDuplicatePageLayoutTab = ({
|
||||
const newTabId = uuidv4();
|
||||
const widgetOldIdNewIdMap = new Map<string, string>();
|
||||
|
||||
const clonedWidgets = sourceTab.widgets.map((widget) => {
|
||||
const newWidgetId = uuidv4();
|
||||
widgetOldIdNewIdMap.set(widget.id, newWidgetId);
|
||||
const clonedWidgets: PageLayoutWidget[] = sourceTab.widgets.map(
|
||||
(widget) => {
|
||||
const newWidgetId = uuidv4();
|
||||
widgetOldIdNewIdMap.set(widget.id, newWidgetId);
|
||||
|
||||
return {
|
||||
...widget,
|
||||
id: newWidgetId,
|
||||
pageLayoutTabId: newTabId,
|
||||
...generateDuplicatedTimestamps(),
|
||||
};
|
||||
});
|
||||
const fieldsWidgetCopyResult = duplicateFieldsWidget({
|
||||
sourceWidget: widget,
|
||||
newWidgetId,
|
||||
});
|
||||
|
||||
const clonedConfiguration = isDefined(fieldsWidgetCopyResult)
|
||||
? {
|
||||
...widget.configuration,
|
||||
viewId: fieldsWidgetCopyResult.newViewId,
|
||||
}
|
||||
: widget.configuration;
|
||||
|
||||
return {
|
||||
...widget,
|
||||
id: newWidgetId,
|
||||
pageLayoutTabId: newTabId,
|
||||
configuration: clonedConfiguration,
|
||||
...generateDuplicatedTimestamps(),
|
||||
};
|
||||
},
|
||||
);
|
||||
|
||||
const sortedTabs = sortTabsByPosition(currentPageLayoutDraft.tabs);
|
||||
const sourceIndex = sortedTabs.findIndex((t) => t.id === tabId);
|
||||
@@ -144,6 +167,7 @@ export const useDuplicatePageLayoutTab = ({
|
||||
},
|
||||
[
|
||||
closeSidePanelMenu,
|
||||
duplicateFieldsWidget,
|
||||
navigatePageLayoutSidePanel,
|
||||
pageLayoutCurrentLayouts,
|
||||
pageLayoutDraft,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { useDuplicateFieldsWidgetForPageLayout } from '@/page-layout/hooks/useDuplicateFieldsWidgetForPageLayout';
|
||||
import { PageLayoutComponentInstanceContext } from '@/page-layout/states/contexts/PageLayoutComponentInstanceContext';
|
||||
import { pageLayoutCurrentLayoutsComponentState } from '@/page-layout/states/pageLayoutCurrentLayoutsComponentState';
|
||||
import { pageLayoutDraftComponentState } from '@/page-layout/states/pageLayoutDraftComponentState';
|
||||
@@ -45,6 +46,10 @@ export const useDuplicatePageLayoutWidget = (
|
||||
|
||||
const store = useStore();
|
||||
|
||||
const { duplicateFieldsWidget } = useDuplicateFieldsWidgetForPageLayout({
|
||||
pageLayoutId,
|
||||
});
|
||||
|
||||
const duplicateWidget = useCallback(
|
||||
(widgetId: string): string => {
|
||||
const pageLayoutDraft = store.get(pageLayoutDraftState);
|
||||
@@ -71,10 +76,23 @@ export const useDuplicatePageLayoutWidget = (
|
||||
|
||||
const newWidgetId = uuidv4();
|
||||
|
||||
const fieldsWidgetCopyResult = duplicateFieldsWidget({
|
||||
sourceWidget,
|
||||
newWidgetId,
|
||||
});
|
||||
|
||||
const clonedConfiguration = isDefined(fieldsWidgetCopyResult)
|
||||
? {
|
||||
...sourceWidget.configuration,
|
||||
viewId: fieldsWidgetCopyResult.newViewId,
|
||||
}
|
||||
: sourceWidget.configuration;
|
||||
|
||||
const clonedWidget: PageLayoutWidget = {
|
||||
...sourceWidget,
|
||||
id: newWidgetId,
|
||||
title: appendCopySuffix(sourceWidget.title),
|
||||
configuration: clonedConfiguration,
|
||||
...generateDuplicatedTimestamps(),
|
||||
};
|
||||
|
||||
@@ -137,6 +155,7 @@ export const useDuplicatePageLayoutWidget = (
|
||||
return newWidgetId;
|
||||
},
|
||||
[
|
||||
duplicateFieldsWidget,
|
||||
pageLayoutCurrentLayoutsState,
|
||||
pageLayoutDraftState,
|
||||
setPageLayoutEditingWidgetId,
|
||||
|
||||
@@ -1,15 +1,48 @@
|
||||
import { usePageLayoutContentContext } from '@/page-layout/contexts/PageLayoutContentContext';
|
||||
import { pageLayoutEditingWidgetIdComponentState } from '@/page-layout/states/pageLayoutEditingWidgetIdComponentState';
|
||||
import { widgetCreationTargetTabIdComponentState } from '@/page-layout/states/widgetCreationTargetTabIdComponentState';
|
||||
import { widgetInsertionContextComponentState } from '@/page-layout/states/widgetInsertionContextComponentState';
|
||||
import { useNavigatePageLayoutSidePanel } from '@/side-panel/pages/page-layout/hooks/useNavigatePageLayoutSidePanel';
|
||||
import { useAtomComponentStateCallbackState } from '@/ui/utilities/state/jotai/hooks/useAtomComponentStateCallbackState';
|
||||
import { useStore } from 'jotai';
|
||||
import { useCallback } from 'react';
|
||||
import { SidePanelPages } from 'twenty-shared/types';
|
||||
|
||||
export const useNavigateToMoreWidgets = () => {
|
||||
const { tabId } = usePageLayoutContentContext();
|
||||
|
||||
const { navigatePageLayoutSidePanel } = useNavigatePageLayoutSidePanel();
|
||||
|
||||
const pageLayoutEditingWidgetIdState = useAtomComponentStateCallbackState(
|
||||
pageLayoutEditingWidgetIdComponentState,
|
||||
);
|
||||
|
||||
const widgetCreationTargetTabIdState = useAtomComponentStateCallbackState(
|
||||
widgetCreationTargetTabIdComponentState,
|
||||
);
|
||||
|
||||
const widgetInsertionContextState = useAtomComponentStateCallbackState(
|
||||
widgetInsertionContextComponentState,
|
||||
);
|
||||
|
||||
const store = useStore();
|
||||
|
||||
const navigateToMoreWidgets = useCallback(() => {
|
||||
store.set(pageLayoutEditingWidgetIdState, null);
|
||||
store.set(widgetInsertionContextState, null);
|
||||
store.set(widgetCreationTargetTabIdState, tabId);
|
||||
|
||||
navigatePageLayoutSidePanel({
|
||||
sidePanelPage: SidePanelPages.PageLayoutRecordPageWidgetTypeSelect,
|
||||
});
|
||||
}, [navigatePageLayoutSidePanel]);
|
||||
}, [
|
||||
navigatePageLayoutSidePanel,
|
||||
pageLayoutEditingWidgetIdState,
|
||||
store,
|
||||
tabId,
|
||||
widgetCreationTargetTabIdState,
|
||||
widgetInsertionContextState,
|
||||
]);
|
||||
|
||||
return { navigateToMoreWidgets };
|
||||
};
|
||||
|
||||
@@ -7,10 +7,12 @@ import { type PageLayoutAddTabStrategy } from '@/page-layout/types/PageLayoutAdd
|
||||
import { isReactivatableTab } from '@/page-layout/utils/isReactivatableTab';
|
||||
import { shouldEnableTabEditingFeatures } from '@/page-layout/utils/shouldEnableTabEditingFeatures';
|
||||
import { useNavigatePageLayoutSidePanel } from '@/side-panel/pages/page-layout/hooks/useNavigatePageLayoutSidePanel';
|
||||
import { useLayoutRenderingContext } from '@/ui/layout/contexts/LayoutRenderingContext';
|
||||
import { useSetAtomComponentState } from '@/ui/utilities/state/jotai/hooks/useSetAtomComponentState';
|
||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||
import { t } from '@lingui/core/macro';
|
||||
import { useCallback } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { SidePanelPages } from 'twenty-shared/types';
|
||||
import { FeatureFlagKey, PageLayoutType } from '~/generated-metadata/graphql';
|
||||
|
||||
@@ -40,8 +42,17 @@ export const usePageLayoutAddTabStrategy = ({
|
||||
|
||||
const { navigatePageLayoutSidePanel } = useNavigatePageLayoutSidePanel();
|
||||
|
||||
const { isInSidePanel } = useLayoutRenderingContext();
|
||||
|
||||
const navigate = useNavigate();
|
||||
|
||||
const onCreate = useCallback(() => {
|
||||
const newTabId = createPageLayoutTab(t`Untitled`);
|
||||
|
||||
if (!isInSidePanel) {
|
||||
navigate(`#${newTabId}`);
|
||||
}
|
||||
|
||||
setPageLayoutTabSettingsOpenTabId(newTabId);
|
||||
navigatePageLayoutSidePanel({
|
||||
sidePanelPage: SidePanelPages.PageLayoutTabSettings,
|
||||
@@ -49,6 +60,8 @@ export const usePageLayoutAddTabStrategy = ({
|
||||
});
|
||||
}, [
|
||||
createPageLayoutTab,
|
||||
isInSidePanel,
|
||||
navigate,
|
||||
setPageLayoutTabSettingsOpenTabId,
|
||||
navigatePageLayoutSidePanel,
|
||||
]);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user