@livetiles/reach-components-react 0.4.0-preview.161 → 0.4.0-preview.168

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,31 +1,6 @@
1
1
  import './de.esm.js';
2
2
 
3
3
  var de = {
4
- "PageTitle.analytics.usage": "Benutzer-Aktivitätsberichte",
5
- "PageTitle.analytics.news": "News Berichte",
6
- "AriaLabel.section.editableCard": "Editierbare Karte",
7
- "AriaLabel.section.usersList": "Liste der Gruppenmitglieder",
8
- "AriaLabel.section.ownersList": "Liste der Besitzer",
9
- "AriaLabel.section.insertImageButtons": "Bild-Schaltläche einfügen",
10
- "AriaLabel.section.commentSettings": "Kommentar Einstellungen",
11
- "AriaLabel.section.editorList": "Bearbeitungsliste",
12
- "AriaLabel.section.splitEditorList": "Bearbeitungsliste teilen",
13
- "AriaLabel.section.photoLibraryBrowserCategories": "Fotobibliothek nach Kategorien durchsuchen",
14
- "AriaLabel.section.recycleBin": "Papierkorb",
15
- "AriaLabel.section.keywords": "Schlagwörter",
16
- "AriaLabel.section.comments": "Kommentare",
17
- "AriaLabel.section.subscriptionAlreadyExistsInfo": "Abonnement existiert bereits ",
18
- "Chats.messageLeave.success": "Chat erfolgreich verlassen",
19
- "Chats.messageLeave.fail": "Verlassen des Chats fehlgeschlagen",
20
- "Chats.chatItem.context.leave": "Verlassen",
21
- "Chats.userLeft.systemMessage": "{user} hat die Gruppe verlassen",
22
- "Generic.news.alreadyMarkedAllAsReadMessage": "Keine ungelesenen Nachrichten gefunden.",
23
- "Generic.events.alreadyMarkedAllAsReadMessage": "Keine ungelesenen Veranstaltungen gefunden.",
24
- "Page.header.unread.showAll": "Alles ansehen",
25
- "Page.header.unread.only": "Nur ungelesene anzeigen",
26
- "Page.header.search": "Suchen",
27
- "Page.header.markAll": "Alles als gelesen markieren",
28
- "Page.header.filter": "Filter",
29
4
  "Generic.Ok": "Ok",
30
5
  "Generic.Save": "Speichern",
31
6
  "Generic.Cancel": "Abbrechen",
@@ -91,6 +66,8 @@ var de = {
91
66
  "Generic.youAreOnline": "Sie sind online! LiveTiles Reach sollte wieder vollständig funktionieren.",
92
67
  "Generic.allNewsMarkedAsRead": "Alle News wurden als gelesen markiert.",
93
68
  "Generic.allEventsMarkedAsRead": "Alle Veranstaltungen wurden als gelesen markiert.",
69
+ "Generic.news.alreadyMarkedAllAsReadMessage": "Keine ungelesenen Nachrichten gefunden.",
70
+ "Generic.events.alreadyMarkedAllAsReadMessage": "Keine ungelesenen Veranstaltungen gefunden.",
94
71
  "Generic.UnreadItems.markAllAsRead": "Alle als gelesen markieren",
95
72
  "Generic.wasModified": "geändert",
96
73
  "Generic.wasModifiedTooltip": "Zuletzt geändert am {modified}",
@@ -329,6 +306,8 @@ var de = {
329
306
  "PageTitle.chat": "Chat",
330
307
  "PageTitle.feed": "Feed",
331
308
  "PageTitle.stream": "Stream",
309
+ "PageTitle.analytics.usage": "Benutzer-Aktivitätsberichte",
310
+ "PageTitle.analytics.news": "News Berichte",
332
311
  "Gutter.open": "Öffnen",
333
312
  "Gutter.rename": "Umbenennen",
334
313
  "Gutter.edit": "Bearbeiten",
@@ -1762,6 +1741,8 @@ var de = {
1762
1741
  "Chats.messageDeleted": "Diese Nachricht wurde gelöscht",
1763
1742
  "Chats.messageDeleted.title": "Nachricht gelöscht",
1764
1743
  "Chats.messageEdited": "Nachricht geändert",
1744
+ "Chats.messageLeave.success": "Chat erfolgreich verlassen",
1745
+ "Chats.messageLeave.fail": "Verlassen des Chats fehlgeschlagen",
1765
1746
  "Chats.context.menu.delete": "Löschen",
1766
1747
  "Chats.context.menu.edit": "Bearbeiten",
1767
1748
  "Chats.toLabel": "Nach:",
@@ -1783,6 +1764,8 @@ var de = {
1783
1764
  "Chats.groupNameReset": "{sender} hat den Chat-Namen zurückgesetzt",
1784
1765
  "Chats.groupNameChanged.generic": "Chat-Name wurde geändert",
1785
1766
  "Chats.messageList": "Nachrichtenliste",
1767
+ "Chats.chatItem.context.leave": "Verlassen",
1768
+ "Chats.userLeft.systemMessage": "{user} hat die Gruppe verlassen",
1786
1769
  "ManagePlugins.title": "Plugins",
1787
1770
  "ManagePlugins.addNewPlugin": "Neues Plugin hinzufügen",
1788
1771
  "ManagePlugins.updateSucceeded": "Plugin erfolgreich geändert",
@@ -1910,6 +1893,18 @@ var de = {
1910
1893
  "AriaLabel.pagesEditor.documentIcon": "Dieses Dokument auswählen",
1911
1894
  "AriaLabel.eventEditor.location.deleteButton": "Standort entfernen",
1912
1895
  "AriaLabel.editor.selectItemButton": "Auswählen",
1896
+ "AriaLabel.section.editableCard": "Editierbare Karte",
1897
+ "AriaLabel.section.usersList": "Liste der Gruppenmitglieder",
1898
+ "AriaLabel.section.ownersList": "Liste der Besitzer",
1899
+ "AriaLabel.section.insertImageButtons": "Bild-Schaltläche einfügen",
1900
+ "AriaLabel.section.commentSettings": "Kommentar Einstellungen",
1901
+ "AriaLabel.section.editorList": "Bearbeitungsliste",
1902
+ "AriaLabel.section.splitEditorList": "Bearbeitungsliste teilen",
1903
+ "AriaLabel.section.photoLibraryBrowserCategories": "Fotobibliothek nach Kategorien durchsuchen",
1904
+ "AriaLabel.section.recycleBin": "Papierkorb",
1905
+ "AriaLabel.section.keywords": "Schlagwörter",
1906
+ "AriaLabel.section.comments": "Kommentare",
1907
+ "AriaLabel.section.subscriptionAlreadyExistsInfo": "Abonnement existiert bereits ",
1913
1908
  "Lib.newsList.noItems": "Keine News zu zeigen",
1914
1909
  "Lib.paging.goToFirstPage": "Zur ersten Seite gehen",
1915
1910
  "UserFeed.emptyList": "Es gibt noch keine Feed Einträge.",
@@ -1951,7 +1946,12 @@ var de = {
1951
1946
  "SkipLinks.toFilter": "Zu den Filtern springen",
1952
1947
  "Stream.allLoaded": "Sie haben das Ende Ihres Streams erreicht.",
1953
1948
  "Stream.emptyList": "Ihr Stream is momentan leer.",
1954
- "Stream.toast.markAllAsReadSuccessMessage": "{count, plural, =0 {Keine ungelesene Einträge gefunden, bzw. alle Einträge sind bereits als gelesen markiert.} one {Ein Eintrag wurde als gelesen markiert.} other {{count} Einträge wurden als gelesen markiert.}}"
1949
+ "Stream.toast.markAllAsReadSuccessMessage": "{count, plural, =0 {Keine ungelesene Einträge gefunden, bzw. alle Einträge sind bereits als gelesen markiert.} one {Ein Eintrag wurde als gelesen markiert.} other {{count} Einträge wurden als gelesen markiert.}}",
1950
+ "Page.header.unread.only": "Nur ungelesene anzeigen",
1951
+ "Page.header.unread.showAll": "Alles ansehen",
1952
+ "Page.header.search": "Suchen",
1953
+ "Page.header.filter": "Filter",
1954
+ "Page.header.markAll": "Alles als gelesen markieren"
1955
1955
  };
1956
1956
 
1957
1957
  export { de as default };
@@ -1,31 +1,6 @@
1
1
  import './es.esm.js';
2
2
 
3
3
  var es = {
4
- "PageTitle.analytics.usage": "User Activity Analytics",
5
- "PageTitle.analytics.news": "News Analytics",
6
- "AriaLabel.section.editableCard": "Editable card",
7
- "AriaLabel.section.usersList": "Group members list",
8
- "AriaLabel.section.ownersList": "Owners list",
9
- "AriaLabel.section.insertImageButtons": "Insert Image buttons",
10
- "AriaLabel.section.commentSettings": "Comment Settings",
11
- "AriaLabel.section.editorList": "Editor list",
12
- "AriaLabel.section.splitEditorList": "Split editor list",
13
- "AriaLabel.section.photoLibraryBrowserCategories": "Browse Photo Library by categories",
14
- "AriaLabel.section.recycleBin": "Recycle bin",
15
- "AriaLabel.section.keywords": "Keywords",
16
- "AriaLabel.section.comments": "Comments",
17
- "AriaLabel.section.subscriptionAlreadyExistsInfo": "Subscription already exists ",
18
- "Chats.messageLeave.success": "Successfully left chat",
19
- "Chats.messageLeave.fail": "Failed to leave chat",
20
- "Chats.chatItem.context.leave": "Leave",
21
- "Chats.userLeft.systemMessage": "{user} left the group",
22
- "Generic.news.alreadyMarkedAllAsReadMessage": "No unread news found.",
23
- "Generic.events.alreadyMarkedAllAsReadMessage": "No unread events found.",
24
- "Page.header.unread.showAll": "View all",
25
- "Page.header.unread.only": "View only unread",
26
- "Page.header.search": "Search",
27
- "Page.header.markAll": "Mark all as read",
28
- "Page.header.filter": "Filter",
29
4
  "Generic.Ok": "Ok",
30
5
  "Generic.Save": "Guardar",
31
6
  "Generic.Cancel": "Cancelar",
@@ -91,6 +66,8 @@ var es = {
91
66
  "Generic.youAreOnline": "¡Está conectado! ¡Todo LiveTiles Reach debería funcionar!",
92
67
  "Generic.allNewsMarkedAsRead": "Todas las noticias se han marcado como leídas.",
93
68
  "Generic.allEventsMarkedAsRead": "Todos los eventos se han marcado como leídos.",
69
+ "Generic.news.alreadyMarkedAllAsReadMessage": "No unread news found.",
70
+ "Generic.events.alreadyMarkedAllAsReadMessage": "No unread events found.",
94
71
  "Generic.UnreadItems.markAllAsRead": "Marcar todo como leido",
95
72
  "Generic.wasModified": "editado",
96
73
  "Generic.wasModifiedTooltip": "Ultima edición el {modified}",
@@ -329,6 +306,8 @@ var es = {
329
306
  "PageTitle.chat": "Chat",
330
307
  "PageTitle.feed": "Feed",
331
308
  "PageTitle.stream": "Stream",
309
+ "PageTitle.analytics.usage": "User Activity Analytics",
310
+ "PageTitle.analytics.news": "News Analytics",
332
311
  "Gutter.open": "Abrir",
333
312
  "Gutter.rename": "Renombrar",
334
313
  "Gutter.edit": "Editar",
@@ -1762,6 +1741,8 @@ var es = {
1762
1741
  "Chats.messageDeleted": "Este mensaje ha sido eliminado",
1763
1742
  "Chats.messageDeleted.title": "Mensaje borrado",
1764
1743
  "Chats.messageEdited": "Mensaje editado",
1744
+ "Chats.messageLeave.success": "Successfully left chat",
1745
+ "Chats.messageLeave.fail": "Failed to leave chat",
1765
1746
  "Chats.context.menu.delete": "Borrar",
1766
1747
  "Chats.context.menu.edit": "Editar",
1767
1748
  "Chats.toLabel": "Para:",
@@ -1783,6 +1764,8 @@ var es = {
1783
1764
  "Chats.groupNameReset": "{sender} reset the group chat name",
1784
1765
  "Chats.groupNameChanged.generic": "Group chat name changed",
1785
1766
  "Chats.messageList": "Message list",
1767
+ "Chats.chatItem.context.leave": "Leave",
1768
+ "Chats.userLeft.systemMessage": "{user} left the group",
1786
1769
  "ManagePlugins.title": "Complementos",
1787
1770
  "ManagePlugins.addNewPlugin": "Agregar nuevo complemento",
1788
1771
  "ManagePlugins.updateSucceeded": "Complemento actualizado con éxito",
@@ -1910,6 +1893,18 @@ var es = {
1910
1893
  "AriaLabel.pagesEditor.documentIcon": "Select this document",
1911
1894
  "AriaLabel.eventEditor.location.deleteButton": "Quitar ubicación",
1912
1895
  "AriaLabel.editor.selectItemButton": "Select item",
1896
+ "AriaLabel.section.editableCard": "Editable card",
1897
+ "AriaLabel.section.usersList": "Group members list",
1898
+ "AriaLabel.section.ownersList": "Owners list",
1899
+ "AriaLabel.section.insertImageButtons": "Insert Image buttons",
1900
+ "AriaLabel.section.commentSettings": "Comment Settings",
1901
+ "AriaLabel.section.editorList": "Editor list",
1902
+ "AriaLabel.section.splitEditorList": "Split editor list",
1903
+ "AriaLabel.section.photoLibraryBrowserCategories": "Browse Photo Library by categories",
1904
+ "AriaLabel.section.recycleBin": "Recycle bin",
1905
+ "AriaLabel.section.keywords": "Keywords",
1906
+ "AriaLabel.section.comments": "Comments",
1907
+ "AriaLabel.section.subscriptionAlreadyExistsInfo": "Subscription already exists ",
1913
1908
  "Lib.newsList.noItems": "No hay noticias para mostrar",
1914
1909
  "Lib.paging.goToFirstPage": "Ir a la primera pagina",
1915
1910
  "UserFeed.emptyList": "There are no feed items yet.",
@@ -1951,7 +1946,12 @@ var es = {
1951
1946
  "SkipLinks.toFilter": "Skip to filter",
1952
1947
  "Stream.allLoaded": "You have reached the end of your stream",
1953
1948
  "Stream.emptyList": "Your stream is empty at the moment",
1954
- "Stream.toast.markAllAsReadSuccessMessage": "{count, plural, =0 {No unread items found. All items were already read.} one {One item has been marked as read.} other {{count} items have been marked as read.}}"
1949
+ "Stream.toast.markAllAsReadSuccessMessage": "{count, plural, =0 {No unread items found. All items were already read.} one {One item has been marked as read.} other {{count} items have been marked as read.}}",
1950
+ "Page.header.unread.only": "View only unread",
1951
+ "Page.header.unread.showAll": "View all",
1952
+ "Page.header.search": "Search",
1953
+ "Page.header.filter": "Filter",
1954
+ "Page.header.markAll": "Mark all as read"
1955
1955
  };
1956
1956
 
1957
1957
  export { es as default };
@@ -1,31 +1,6 @@
1
1
  import './fr.esm.js';
2
2
 
3
3
  var fr = {
4
- "PageTitle.analytics.usage": "User Activity Analytics",
5
- "PageTitle.analytics.news": "News Analytics",
6
- "AriaLabel.section.editableCard": "Editable card",
7
- "AriaLabel.section.usersList": "Group members list",
8
- "AriaLabel.section.ownersList": "Owners list",
9
- "AriaLabel.section.insertImageButtons": "Insert Image buttons",
10
- "AriaLabel.section.commentSettings": "Comment Settings",
11
- "AriaLabel.section.editorList": "Editor list",
12
- "AriaLabel.section.splitEditorList": "Split editor list",
13
- "AriaLabel.section.photoLibraryBrowserCategories": "Browse Photo Library by categories",
14
- "AriaLabel.section.recycleBin": "Recycle bin",
15
- "AriaLabel.section.keywords": "Keywords",
16
- "AriaLabel.section.comments": "Comments",
17
- "AriaLabel.section.subscriptionAlreadyExistsInfo": "Subscription already exists ",
18
- "Chats.messageLeave.success": "Successfully left chat",
19
- "Chats.messageLeave.fail": "Failed to leave chat",
20
- "Chats.chatItem.context.leave": "Leave",
21
- "Chats.userLeft.systemMessage": "{user} left the group",
22
- "Generic.news.alreadyMarkedAllAsReadMessage": "No unread news found.",
23
- "Generic.events.alreadyMarkedAllAsReadMessage": "No unread events found.",
24
- "Page.header.unread.showAll": "View all",
25
- "Page.header.unread.only": "View only unread",
26
- "Page.header.search": "Search",
27
- "Page.header.markAll": "Mark all as read",
28
- "Page.header.filter": "Filter",
29
4
  "Generic.Ok": "Ok",
30
5
  "Generic.Save": "Sauvegarder",
31
6
  "Generic.Cancel": "Annuler",
@@ -91,6 +66,8 @@ var fr = {
91
66
  "Generic.youAreOnline": "Vous êtes en ligne! Toutes les fonctionnalités de LiveTiles Reach devraient fonctionner!",
92
67
  "Generic.allNewsMarkedAsRead": "Toutes les actualités ont été marquées comme lues.",
93
68
  "Generic.allEventsMarkedAsRead": "Tous les événements ont été marqués comme lus.",
69
+ "Generic.news.alreadyMarkedAllAsReadMessage": "No unread news found.",
70
+ "Generic.events.alreadyMarkedAllAsReadMessage": "No unread events found.",
94
71
  "Generic.UnreadItems.markAllAsRead": "tout marquer comme lu",
95
72
  "Generic.wasModified": "modifié",
96
73
  "Generic.wasModifiedTooltip": "Dernière modification à {modified}",
@@ -329,6 +306,8 @@ var fr = {
329
306
  "PageTitle.chat": "Chat",
330
307
  "PageTitle.feed": "Feed",
331
308
  "PageTitle.stream": "Stream",
309
+ "PageTitle.analytics.usage": "User Activity Analytics",
310
+ "PageTitle.analytics.news": "News Analytics",
332
311
  "Gutter.open": "Ouvrir",
333
312
  "Gutter.rename": "Renommer",
334
313
  "Gutter.edit": "Modifier",
@@ -1762,6 +1741,8 @@ var fr = {
1762
1741
  "Chats.messageDeleted": "Ce message a été supprimé",
1763
1742
  "Chats.messageDeleted.title": "Message supprimé",
1764
1743
  "Chats.messageEdited": "Message modifié",
1744
+ "Chats.messageLeave.success": "Successfully left chat",
1745
+ "Chats.messageLeave.fail": "Failed to leave chat",
1765
1746
  "Chats.context.menu.delete": "Supprimer",
1766
1747
  "Chats.context.menu.edit": "Modifier",
1767
1748
  "Chats.toLabel": "à:",
@@ -1783,6 +1764,8 @@ var fr = {
1783
1764
  "Chats.groupNameReset": "{sender} reset the group chat name",
1784
1765
  "Chats.groupNameChanged.generic": "Group chat name changed",
1785
1766
  "Chats.messageList": "Message list",
1767
+ "Chats.chatItem.context.leave": "Leave",
1768
+ "Chats.userLeft.systemMessage": "{user} left the group",
1786
1769
  "ManagePlugins.title": "Plugins",
1787
1770
  "ManagePlugins.addNewPlugin": "Ajouter un nouveau plugin",
1788
1771
  "ManagePlugins.updateSucceeded": "Plugin mis à jour avec succès",
@@ -1910,6 +1893,18 @@ var fr = {
1910
1893
  "AriaLabel.pagesEditor.documentIcon": "Select this document",
1911
1894
  "AriaLabel.eventEditor.location.deleteButton": "Supprimer l'emplacement",
1912
1895
  "AriaLabel.editor.selectItemButton": "Select item",
1896
+ "AriaLabel.section.editableCard": "Editable card",
1897
+ "AriaLabel.section.usersList": "Group members list",
1898
+ "AriaLabel.section.ownersList": "Owners list",
1899
+ "AriaLabel.section.insertImageButtons": "Insert Image buttons",
1900
+ "AriaLabel.section.commentSettings": "Comment Settings",
1901
+ "AriaLabel.section.editorList": "Editor list",
1902
+ "AriaLabel.section.splitEditorList": "Split editor list",
1903
+ "AriaLabel.section.photoLibraryBrowserCategories": "Browse Photo Library by categories",
1904
+ "AriaLabel.section.recycleBin": "Recycle bin",
1905
+ "AriaLabel.section.keywords": "Keywords",
1906
+ "AriaLabel.section.comments": "Comments",
1907
+ "AriaLabel.section.subscriptionAlreadyExistsInfo": "Subscription already exists ",
1913
1908
  "Lib.newsList.noItems": "Aucune actualité à afficher",
1914
1909
  "Lib.paging.goToFirstPage": "Aller à la première page",
1915
1910
  "UserFeed.emptyList": "There are no feed items yet.",
@@ -1951,7 +1946,12 @@ var fr = {
1951
1946
  "SkipLinks.toFilter": "Skip to filter",
1952
1947
  "Stream.allLoaded": "You have reached the end of your stream",
1953
1948
  "Stream.emptyList": "Your stream is empty at the moment",
1954
- "Stream.toast.markAllAsReadSuccessMessage": "{count, plural, =0 {No unread items found. All items were already read.} one {One item has been marked as read.} other {{count} items have been marked as read.}}"
1949
+ "Stream.toast.markAllAsReadSuccessMessage": "{count, plural, =0 {No unread items found. All items were already read.} one {One item has been marked as read.} other {{count} items have been marked as read.}}",
1950
+ "Page.header.unread.only": "View only unread",
1951
+ "Page.header.unread.showAll": "View all",
1952
+ "Page.header.search": "Search",
1953
+ "Page.header.filter": "Filter",
1954
+ "Page.header.markAll": "Mark all as read"
1955
1955
  };
1956
1956
 
1957
1957
  export { fr as default };
package/index.esm2.js CHANGED
@@ -2,7 +2,7 @@ import { jsx as jsx$1, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import require$$0$6 from 'events';
3
3
  import * as React$d from 'react';
4
4
  import React__default, { useContext, createContext, useMemo, useState as useState$2, useCallback, useEffect as useEffect$1, useRef as useRef$1, useReducer, Children, isValidElement, cloneElement, Component, lazy as lazy$1, Suspense, forwardRef, createElement as createElement$a, useLayoutEffect, useImperativeHandle, Fragment as Fragment$1 } from 'react';
5
- import { PersonaInitialsColor, MessageBarType, loadTheme, IconButton as IconButton$1, Link as Link$3, MessageBar, ActionButton as ActionButton$1, TextField, PrimaryButton, DefaultButton, Icon, Image as Image$1, Spinner as Spinner$1, Toggle, ChoiceGroup as ChoiceGroup$1, Callout as Callout$1, Persona, Checkbox, Label as Label$2, Dropdown as Dropdown$1, ProgressIndicator, Shimmer, ShimmerElementsGroup, ShimmerElementType, DirectionalHint, PersonaSize, TooltipHost as TooltipHost$1, DialogType, Dialog as Dialog$1, DialogFooter, SelectionMode, NormalPeoplePicker, SpinnerSize, SearchBox as SearchBox$1, ResponsiveMode, ImageFit, Layer as Layer$1, initializeIcons, TagPicker, Breadcrumb, CommandBarButton } from 'office-ui-fabric-react';
5
+ import { PersonaInitialsColor, MessageBarType, loadTheme, IconButton as IconButton$1, Link as Link$3, MessageBar, ActionButton as ActionButton$1, TextField, PrimaryButton, DefaultButton, Icon, Image as Image$1, Spinner as Spinner$1, Toggle, ChoiceGroup as ChoiceGroup$1, Persona, Checkbox, Label as Label$2, Dropdown as Dropdown$1, ProgressIndicator, Shimmer, ShimmerElementsGroup, ShimmerElementType, DirectionalHint, PersonaSize, TooltipHost as TooltipHost$1, DialogType, Dialog as Dialog$1, DialogFooter, SelectionMode, NormalPeoplePicker, FocusTrapCallout, SpinnerSize, SearchBox as SearchBox$1, ResponsiveMode, ImageFit, Layer as Layer$1, initializeIcons, TagPicker, Breadcrumb, CommandBarButton } from 'office-ui-fabric-react';
6
6
  import * as ReactRouterDom from 'react-router-dom';
7
7
  import { useHistory, useRouteMatch, useLocation as useLocation$1, Link as Link$4, NavLink, MemoryRouter, Switch, Route } from 'react-router-dom';
8
8
  import require$$0$7 from 'react-is';
@@ -78784,7 +78784,9 @@ var PeoplePicker = function PeoplePicker(props) {
78784
78784
  className: 'lt-reach-picker-callout'
78785
78785
  },
78786
78786
  inputProps: {
78787
- id: props.inputId
78787
+ id: props.inputId,
78788
+ required: props.required,
78789
+ 'aria-required': props.required
78788
78790
  },
78789
78791
  removeButtonAriaLabel: formatMessage({
78790
78792
  id: 'AriaLabel.removeUserButton'
@@ -80799,8 +80801,11 @@ var Callout = function Callout(_a) {
80799
80801
  var children = _a.children,
80800
80802
  props = __rest$1(_a, ["children"]);
80801
80803
 
80802
- return jsx$1(Callout$1, __assign$1({}, props, {
80803
- className: classNames(reachClassNames, 'lt-reach-callout', props === null || props === void 0 ? void 0 : props.className)
80804
+ return jsx$1(FocusTrapCallout, __assign$1({}, props, {
80805
+ className: classNames(reachClassNames, 'lt-reach-callout', props === null || props === void 0 ? void 0 : props.className),
80806
+ focusTrapProps: {
80807
+ isClickableOutsideFocusTrap: true
80808
+ }
80804
80809
  }, {
80805
80810
  children: children
80806
80811
  }), void 0);
@@ -83317,7 +83322,7 @@ var StyledActionButton$1 = _styled(ActionButton).withConfig({
83317
83322
  return p.theme.textColors.default;
83318
83323
  });
83319
83324
 
83320
- var StyledCallout$4 = _styled(Callout$1).withConfig({
83325
+ var StyledCallout$4 = _styled(Callout).withConfig({
83321
83326
  displayName: "CommentActionMenu__StyledCallout",
83322
83327
  componentId: "sc-qsk1nc-3"
83323
83328
  })(templateObject_4$9$2 || (templateObject_4$9$2 = __makeTemplateObject$1(["\n padding: ", "px;\n"], ["\n padding: ", "px;\n"])), spacingS);
@@ -87423,9 +87428,9 @@ var AuthenticationContextProvider = function AuthenticationContextProvider(_a) {
87423
87428
  }), void 0);
87424
87429
  };
87425
87430
 
87426
- var version$1 = "0.4.0-preview.161";
87427
- var buildId = "97498";
87428
- var commitId = "4f4baf38cd0d7b226ae79b31ced70e3bf34feaf3";
87431
+ var version$1 = "0.4.0-preview.168";
87432
+ var buildId = "97638";
87433
+ var commitId = "de2f25531f42dc77dbf5a849ddf6a2ce3ccca0a3";
87429
87434
  var isCustomerBuild = false;
87430
87435
  var buildInfo = {
87431
87436
  version: version$1,
@@ -131511,9 +131516,9 @@ if(inputBox.top<500){suggestionsContainer.style.top=inputBox.height-10+"px";}els
131511
131516
  },[]);var allSuggestions=getAllSuggestions();var noKeywords=availableKeywords.length===0;return jsxs(Host$S,__assign({"data-keywords-picker":true},{children:[noKeywords&&jsx$1(FormattedMessage$1,{id:"KeywordPicker.noGroupsDefined"},void 0),!noKeywords&&jsxs(Fragment,{children:[jsxs(LabelHost,{children:[jsx$1("label",__assign({htmlFor:pickerInputId},{children:jsx$1(FormattedMessage$1,{id:"Keywords.picker.selectKeywords"},void 0)}),void 0),(mandatoryKeywords===null||mandatoryKeywords===void 0?void 0:mandatoryKeywords.length)>0&&jsx$1(MandatoryKeywordsInfoIcon,{},void 0)]},void 0),jsx$1(StyledTagPicker,{onResolveSuggestions:handleResolveKeywords,inputProps:{id:pickerInputId},selectedItems:selectedItems,onEmptyResolveSuggestions:getAllSuggestions,onChange:handleOnChange,pickerCalloutProps:{preventDismissOnResize:true},onRenderItem:function(item){return jsx$1(Tag,{item:item.item,onRemoveItem:removeItem},item.key);}},void 0)]},void 0)]}),void 0);function handleResolveKeywords(searchText,selectedItems){searchText=searchText===null||searchText===void 0?void 0:searchText.toLowerCase();return allSuggestions===null||allSuggestions===void 0?void 0:allSuggestions.filter(function(k){return (searchText.length===0||k.name.toLowerCase().indexOf(searchText)>-1)&&selectedItems.every(function(i){return i.name.toLowerCase().indexOf(searchText)===-1;});});}function init(){var flatDefaultKeywords=getFlatKeywordList(defaultKeywords)||[];var filteredKeywords=ensureMandatoryKeywords(mandatoryKeywords,flatDefaultKeywords);var availableKeywordIds=availableKeywords.map(function(k){return k.id;});filteredKeywords=filteredKeywords.filter(function(k){return availableKeywordIds.includes(k.id);});// it is possible an older post does not have any/all mandatory or available keywords of its group
131512
131517
  // here we detect this (if the post is getting edited) and update the keywords accordingly
131513
131518
  if(filteredKeywords.length!==flatDefaultKeywords.length){onChangeKeywords(filteredKeywords);}setSelectedItems(filteredKeywords.map(function(k){return {name:getKeywordDisplayValue(selectedKeywordGroups,user,k.groupId,k.name),key:k.id,isMandatory:mandatoryKeywordIds.includes(k.id)};}));}function getAllSuggestions(selectedItems){return availableKeywords===null||availableKeywords===void 0?void 0:availableKeywords.filter(function(k){return (selectedItems||[]).every(function(i){return i.key!==k.id;});}).map(function(k){return {key:k.id,name:getKeywordDisplayValue(selectedKeywordGroups,user,k.groupId,k.name)};});}function handleOnChange(items){var itemKeys=items.map(function(i){return i.key;});// this prevents the user from removing a mandatory keyword by using the backspace button
131514
- if(!mandatoryKeywordIds.every(function(id){return itemKeys.includes(id);})){return;}updateKeywords(items);}function removeItem(item){var filteredSelectedItems=selectedItems.filter(function(i){return i.key!==item.key;});updateKeywords(filteredSelectedItems);}function updateKeywords(items){setSelectedItems(items);var selectedItemIds=items.map(function(i){return i.key;});onChangeKeywords(availableKeywords.filter(function(k){return selectedItemIds.includes(k.id);}));}};var MandatoryKeywordsInfoIcon=function MandatoryKeywordsInfoIcon(){var formatMessage=useIntl().formatMessage;var _a=useState$2(false),showCallout=_a[0],setShowCallout=_a[1];var infoButtonRef=useRef$1();return jsxs("div",__assign({ref:infoButtonRef},{children:[jsx$1(StyledIconButton$7,{iconProps:{iconName:'Info'},onClick:function(){return setShowCallout(!showCallout);},ariaLabel:formatMessage({id:'Keywords.picker.tooltipAriaLabel'})},void 0),showCallout&&jsx$1(StyledCallout$1,__assign({onDismiss:function(){return setShowCallout(false);},target:infoButtonRef.current},{children:jsx$1(FormattedMessage$1,{id:"Keywords.picker.tooltip"},void 0)}),void 0)]}),void 0);};var Tag=function Tag(_a){var item=_a.item,onRemoveItem=_a.onRemoveItem;var formatMessage=useIntl().formatMessage;var canBeRemoved=!item.isMandatory;return jsxs(TagWrapper,__assign({"data-keyword-tag":item.name},{children:[jsx$1(KeywordName,{children:item.name},void 0),canBeRemoved&&jsx$1(RemoveTagButton,{iconProps:{iconName:'Cancel'},onClick:function(){return onRemoveItem(item);},ariaLabel:formatMessage({id:'AriaLabel.removeKeywordButton'}),"data-remove-keyword-button":true},void 0)]}),void 0);};var Host$S=_styled.div.withConfig({displayName:"KeywordsPicker__Host",componentId:"sc-5ec8mr-0"})(templateObject_1$2e||(templateObject_1$2e=__makeTemplateObject(["\n margin-top: ","px;\n padding: ","px;\n background-color: ",";\n"],["\n margin-top: ","px;\n padding: ","px;\n background-color: ",";\n"])),spacingS,spacingS,function(p){return p.theme.palette.white;});var LabelHost=_styled.div.withConfig({displayName:"KeywordsPicker__LabelHost",componentId:"sc-5ec8mr-1"})(templateObject_2$1s||(templateObject_2$1s=__makeTemplateObject(["\n display: flex;\n"],["\n display: flex;\n"])));var StyledIconButton$7=_styled(IconButton).withConfig({displayName:"KeywordsPicker__StyledIconButton",componentId:"sc-5ec8mr-2"})(templateObject_3$Z||(templateObject_3$Z=__makeTemplateObject(["\n height: 100%;\n"],["\n height: 100%;\n"])));var StyledCallout$1=_styled(Callout).withConfig({displayName:"KeywordsPicker__StyledCallout",componentId:"sc-5ec8mr-3"})(templateObject_4$I||(templateObject_4$I=__makeTemplateObject(["\n padding: ","px;\n"],["\n padding: ","px;\n"])),spacingS);var TagWrapper=_styled.div.withConfig({displayName:"KeywordsPicker__TagWrapper",componentId:"sc-5ec8mr-4"})(templateObject_5$C||(templateObject_5$C=__makeTemplateObject(["\n background-color: ",";\n line-height: 26px;\n margin-right: ","px;\n display: flex;\n font-size: ","px;\n"],["\n background-color: ",";\n line-height: 26px;\n margin-right: ","px;\n display: flex;\n font-size: ","px;\n"])),function(p){return p.theme.palette.neutralLight;},spacingXxs+1,fontSizeSmall);var KeywordName=_styled.span.withConfig({displayName:"KeywordsPicker__KeywordName",componentId:"sc-5ec8mr-5"})(templateObject_6$r||(templateObject_6$r=__makeTemplateObject(["\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n min-width: ","px;\n margin: 0 ","px;\n"],["\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n min-width: ","px;\n margin: 0 ","px;\n"])),spacingL,spacingXs+2);var RemoveTagButton=_styled(IconButton).withConfig({displayName:"KeywordsPicker__RemoveTagButton",componentId:"sc-5ec8mr-6"})(templateObject_7$l||(templateObject_7$l=__makeTemplateObject(["\n padding: 0 ","px;\n border-radius: 0 ","px ","px 0;\n width: ","px;\n height: auto;\n i {\n font-size: ","px;\n }\n"],["\n padding: 0 ","px;\n border-radius: 0 ","px ","px 0;\n width: ","px;\n height: auto;\n i {\n font-size: ","px;\n }\n"])),spacingXxs+1,spacingXxs-1,spacingXxs-1,spacingL,fontSizeSmaller);var StyledTagPicker=_styled(TagPicker).withConfig({displayName:"KeywordsPicker__StyledTagPicker",componentId:"sc-5ec8mr-7"})(templateObject_8$j||(templateObject_8$j=__makeTemplateObject(["\n margin-top: ","px;\n"],["\n margin-top: ","px;\n"])),spacingS);var templateObject_1$2e,templateObject_2$1s,templateObject_3$Z,templateObject_4$I,templateObject_5$C,templateObject_6$r,templateObject_7$l,templateObject_8$j;var hasValidGenericUrlVideoSourcePrefix=function hasValidGenericUrlVideoSourcePrefix(url){return url&&getAdditionalVideoSources().filter(function(s){return url.startsWith(s.prefix);}).length>0;};var VideoUrlParser=/** @class */function(){function VideoUrlParser(url){this.url=url;this.source=null;this.id=null;this.isDirectVideoUrl=false;this.videoProperties=null;this.thumbnailUrl=null;if(hasValidGenericUrlVideoSourcePrefix(this.url)){this.source=VideoSource.GenericUrl;this.id=url;}else if(VideoUrlParser.microsoftStreamRegex.test(this.url)){this.source=VideoSource.MicrosoftStream;this.id=VideoUrlParser.microsoftStreamRegex.exec(this.url)[1];}else if(VideoUrlParser.ytRegex.test(this.url)){this.source=VideoSource.YouTube;this.id=VideoUrlParser.ytRegex.exec(this.url)[1];}else if(VideoUrlParser.vimeoRegex.test(this.url)){this.source=VideoSource.Vimeo;this.id=VideoUrlParser.vimeoRegex.exec(this.url)[1];}else if(VideoUrlParser.vimeoDirectLinkRegex.test(this.url)){this.source=VideoSource.Vimeo;this.id=VideoUrlParser.vimeoDirectLinkRegex.exec(this.url)[1];this.isDirectVideoUrl=true;}else if(VideoUrlParser.kalturaRegex.test(this.url)){var regexMatches=VideoUrlParser.kalturaRegex.exec(this.url);this.source=VideoSource.Kaltura;this.id=regexMatches[1];this.videoProperties={sp:regexMatches[2],uiconfId:regexMatches[3],partnerId:regexMatches[4],entryId:regexMatches[5]};this.thumbnailUrl="https://cdnsecakmi.kaltura.com/p/"+this.id+"/thumbnail/entry_id/"+this.videoProperties.entryId+"/width/1000";}}//TODO handle the different error messages for cloud and onprem versions, i.e. what sources are permitted (see task 23570)
131519
+ if(!mandatoryKeywordIds.every(function(id){return itemKeys.includes(id);})){return;}updateKeywords(items);}function removeItem(item){var filteredSelectedItems=selectedItems.filter(function(i){return i.key!==item.key;});updateKeywords(filteredSelectedItems);}function updateKeywords(items){setSelectedItems(items);var selectedItemIds=items.map(function(i){return i.key;});onChangeKeywords(availableKeywords.filter(function(k){return selectedItemIds.includes(k.id);}));}};var MandatoryKeywordsInfoIcon=function MandatoryKeywordsInfoIcon(){var formatMessage=useIntl().formatMessage;var _a=useState$2(false),showCallout=_a[0],setShowCallout=_a[1];var infoButtonRef=useRef$1();return jsxs("div",__assign({ref:infoButtonRef},{children:[jsx$1(StyledIconButton$7,{iconProps:{iconName:'Info'},onClick:function(){return setShowCallout(!showCallout);},ariaLabel:formatMessage({id:'Keywords.picker.tooltipAriaLabel'})},void 0),showCallout&&jsx$1(StyledCallout$1,__assign({onDismiss:function(){return setShowCallout(false);},target:infoButtonRef.current},{children:jsx$1(FormattedMessage$1,{id:"Keywords.picker.tooltip"},void 0)}),void 0)]}),void 0);};var Tag=function Tag(_a){var item=_a.item,onRemoveItem=_a.onRemoveItem;var formatMessage=useIntl().formatMessage;var canBeRemoved=!item.isMandatory;return jsxs(TagWrapper,__assign({"data-keyword-tag":item.name},{children:[jsx$1(KeywordName,{children:item.name},void 0),canBeRemoved&&jsx$1(RemoveTagButton,{iconProps:{iconName:'Cancel'},onClick:function(){return onRemoveItem(item);},ariaLabel:formatMessage({id:'AriaLabel.removeKeywordButton'}),"data-remove-keyword-button":true},void 0)]}),void 0);};var Host$S=_styled.div.withConfig({displayName:"KeywordsPicker__Host",componentId:"sc-5ec8mr-0"})(templateObject_1$2e||(templateObject_1$2e=__makeTemplateObject(["\n margin-top: ","px;\n padding: ","px;\n background-color: ",";\n"],["\n margin-top: ","px;\n padding: ","px;\n background-color: ",";\n"])),spacingS,spacingS,function(p){return p.theme.palette.white;});var LabelHost=_styled.div.withConfig({displayName:"KeywordsPicker__LabelHost",componentId:"sc-5ec8mr-1"})(templateObject_2$1s||(templateObject_2$1s=__makeTemplateObject(["\n display: flex;\n"],["\n display: flex;\n"])));var StyledIconButton$7=_styled(IconButton).withConfig({displayName:"KeywordsPicker__StyledIconButton",componentId:"sc-5ec8mr-2"})(templateObject_3$Z||(templateObject_3$Z=__makeTemplateObject(["\n height: 100%;\n"],["\n height: 100%;\n"])));var StyledCallout$1=_styled(Callout).withConfig({displayName:"KeywordsPicker__StyledCallout",componentId:"sc-5ec8mr-3"})(templateObject_4$I||(templateObject_4$I=__makeTemplateObject(["\n padding: ","px;\n"],["\n padding: ","px;\n"])),spacingS);var TagWrapper=_styled.div.withConfig({displayName:"KeywordsPicker__TagWrapper",componentId:"sc-5ec8mr-4"})(templateObject_5$C||(templateObject_5$C=__makeTemplateObject(["\n background-color: ",";\n line-height: 26px;\n margin-right: ","px;\n display: flex;\n font-size: ","px;\n"],["\n background-color: ",";\n line-height: 26px;\n margin-right: ","px;\n display: flex;\n font-size: ","px;\n"])),function(p){return p.theme.palette.neutralLight;},spacingXxs+1,fontSizeSmall);var KeywordName=_styled.span.withConfig({displayName:"KeywordsPicker__KeywordName",componentId:"sc-5ec8mr-5"})(templateObject_6$r||(templateObject_6$r=__makeTemplateObject(["\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n min-width: ","px;\n margin: 0 ","px;\n"],["\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n min-width: ","px;\n margin: 0 ","px;\n"])),spacingL,spacingXs+2);var RemoveTagButton=_styled(IconButton).withConfig({displayName:"KeywordsPicker__RemoveTagButton",componentId:"sc-5ec8mr-6"})(templateObject_7$l||(templateObject_7$l=__makeTemplateObject(["\n padding: 0 ","px;\n border-radius: 0 ","px ","px 0;\n width: ","px;\n height: auto;\n i {\n font-size: ","px;\n }\n"],["\n padding: 0 ","px;\n border-radius: 0 ","px ","px 0;\n width: ","px;\n height: auto;\n i {\n font-size: ","px;\n }\n"])),spacingXxs+1,spacingXxs-1,spacingXxs-1,spacingL,fontSizeSmaller);var StyledTagPicker=_styled(TagPicker).withConfig({displayName:"KeywordsPicker__StyledTagPicker",componentId:"sc-5ec8mr-7"})(templateObject_8$j||(templateObject_8$j=__makeTemplateObject(["\n margin-top: ","px;\n"],["\n margin-top: ","px;\n"])),spacingS);var templateObject_1$2e,templateObject_2$1s,templateObject_3$Z,templateObject_4$I,templateObject_5$C,templateObject_6$r,templateObject_7$l,templateObject_8$j;var hasValidGenericUrlVideoSourcePrefix=function hasValidGenericUrlVideoSourcePrefix(url){return url&&getAdditionalVideoSources().filter(function(s){return url.startsWith(s.prefix);}).length>0;};var VideoUrlParser=/** @class */function(){function VideoUrlParser(url){this.url=url;this.source=null;this.id=null;this.isDirectVideoUrl=false;this.videoProperties=null;this.thumbnailUrl=null;if(hasValidGenericUrlVideoSourcePrefix(this.url)){this.source=VideoSource.GenericUrl;this.id=url;}else if(VideoUrlParser.microsoftStreamRegex.test(this.url)){this.source=VideoSource.MicrosoftStream;this.id=VideoUrlParser.microsoftStreamRegex.exec(this.url)[1];}else if(VideoUrlParser.ytRegex.test(this.url)){this.source=VideoSource.YouTube;this.id=VideoUrlParser.ytRegex.exec(this.url)[1];}else if(VideoUrlParser.vimeoRegex.test(this.url)){this.source=VideoSource.Vimeo;this.id=VideoUrlParser.vimeoRegex.exec(this.url)[1];}else if(VideoUrlParser.vimeoDirectLinkRegex.test(this.url)){this.source=VideoSource.Vimeo;this.id=VideoUrlParser.vimeoDirectLinkRegex.exec(this.url)[1];this.isDirectVideoUrl=true;}else if(VideoUrlParser.vimeoRedirectLinkRegex.test(this.url)){this.source=VideoSource.Vimeo;this.id=VideoUrlParser.vimeoRedirectLinkRegex.exec(this.url)[1];}else if(VideoUrlParser.kalturaRegex.test(this.url)){var regexMatches=VideoUrlParser.kalturaRegex.exec(this.url);this.source=VideoSource.Kaltura;this.id=regexMatches[1];this.videoProperties={sp:regexMatches[2],uiconfId:regexMatches[3],partnerId:regexMatches[4],entryId:regexMatches[5]};this.thumbnailUrl="https://cdnsecakmi.kaltura.com/p/"+this.id+"/thumbnail/entry_id/"+this.videoProperties.entryId+"/width/1000";}}//TODO handle the different error messages for cloud and onprem versions, i.e. what sources are permitted (see task 23570)
131515
131520
  VideoUrlParser.prototype.isValid=function(features){var _this=this;if(this.source==null||this.id==null){return false;}if(features){var sources=getVideoSources(features);return sources.findIndex(function(s){return s.type===_this.source;})>=0;}return true;};VideoUrlParser.ytRegex=/^.*(?:(?:youtu.be\/)|(?:v\/)|(?:\/u\/\w\/)|(?:embed\/)|(?:watch\?))\??v?=?([^#&?]*).*$/;VideoUrlParser.vimeoRegex=/.*?(?:vimeo.com\/){1}(?:video\/)?(\d+)/;// match first GUID after domain
131516
- VideoUrlParser.microsoftStreamRegex=/.*web\.microsoftstream\.com.+?([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})/i;VideoUrlParser.vimeoDirectLinkRegex=/.*?(?:player\.vimeo\.com\/external\/){1}(\d+)/;VideoUrlParser.kalturaRegex=/.+cdnapisec\.kaltura\.com\/p\/([0-9]+)\/sp\/([0-9]+)\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(?:.*entry_id=(.+?(?=&|$)))/;return VideoUrlParser;}();function getVideoSources(features){var sources=[];if(features.editorYouTubeVideos){sources.push({type:VideoSource.YouTube,name:'YouTube'});}if(features.editorVimeoVideos){sources.push({type:VideoSource.Vimeo,name:'Vimeo'});}if(features.editorMicrosoftVideos){sources.push({type:VideoSource.MicrosoftStream,name:'Microsoft Stream'});}if(features.editorKalturaVideos){sources.push({type:VideoSource.Kaltura,name:'Kaltura'});}return sources;}// this is wrapped, because the "appconfig" does not exist in the component library
131521
+ VideoUrlParser.microsoftStreamRegex=/.*web\.microsoftstream\.com.+?([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})/i;VideoUrlParser.vimeoDirectLinkRegex=/.*?(?:player\.vimeo\.com\/external\/){1}(\d+)/;VideoUrlParser.vimeoRedirectLinkRegex=/.*?(?:player\.vimeo\.com\/progressive_redirect\/playback\/){1}(\d+)(?:\/.*)/;VideoUrlParser.kalturaRegex=/.+cdnapisec\.kaltura\.com\/p\/([0-9]+)\/sp\/([0-9]+)\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(?:.*entry_id=(.+?(?=&|$)))/;return VideoUrlParser;}();function getVideoSources(features){var sources=[];if(features.editorYouTubeVideos){sources.push({type:VideoSource.YouTube,name:'YouTube'});}if(features.editorVimeoVideos){sources.push({type:VideoSource.Vimeo,name:'Vimeo'});}if(features.editorMicrosoftVideos){sources.push({type:VideoSource.MicrosoftStream,name:'Microsoft Stream'});}if(features.editorKalturaVideos){sources.push({type:VideoSource.Kaltura,name:'Kaltura'});}return sources;}// this is wrapped, because the "appconfig" does not exist in the component library
131517
131522
  // we should probably provide a better fix for this => #38316
131518
131523
  function getAdditionalVideoSources(){return [];}var isObject$4=isObject$c;var setPrototypeOf=objectSetPrototypeOf;// makes subclassing work correct for wrapped built-ins
131519
131524
  var inheritIfRequired$1=function($this,dummy,Wrapper){var NewTarget,NewTargetPrototype;if(// it can work only with native `setPrototypeOf`