studiokit-scaffolding-js 7.0.12-next.1.4 → 7.0.12-next.2.2
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.
- package/lib/components/ActionList.js +170 -34
- package/lib/components/AlertDialog.js +133 -9
- package/lib/components/AlertWithIcon.js +92 -25
- package/lib/components/ConnectedModal.js +43 -13
- package/lib/components/Dropdowns/GroupsDropdown.js +69 -44
- package/lib/components/Dropdowns/ManagedNavDropdown.js +100 -67
- package/lib/components/Dropdowns/UserDropdown.js +111 -21
- package/lib/components/Dropdowns/index.js +27 -9
- package/lib/components/EntityOwnerList.js +52 -18
- package/lib/components/Error.js +106 -11
- package/lib/components/ErrorBoundary.js +134 -35
- package/lib/components/ErrorMessage.js +44 -9
- package/lib/components/Forms/DateField.js +61 -42
- package/lib/components/Forms/TimeField.js +81 -42
- package/lib/components/Forms/index.js +27 -4
- package/lib/components/Groups/CreateEditCopySaveButtons.js +114 -11
- package/lib/components/Groups/ExternalGroups/Attach.js +212 -148
- package/lib/components/Groups/ExternalGroups/Table.js +181 -45
- package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
- package/lib/components/Groups/RosterSyncInfo.js +147 -20
- package/lib/components/HOC/AccessibleAppComponent.js +98 -73
- package/lib/components/HOC/ActivityRequiredComponent.js +92 -49
- package/lib/components/HOC/AsyncComponent.js +54 -39
- package/lib/components/HOC/AuthenticatedComponent.js +58 -38
- package/lib/components/HOC/CollectionComponent.js +170 -110
- package/lib/components/HOC/CollectionFirstItemComponent.js +51 -38
- package/lib/components/HOC/CollectionItemComponent.js +168 -106
- package/lib/components/HOC/ConnectedModalComponent.js +109 -80
- package/lib/components/HOC/DataDependentComponent.js +29 -21
- package/lib/components/HOC/EntityComponent.js +71 -57
- package/lib/components/HOC/FullscreenModalComponent.js +163 -123
- package/lib/components/HOC/GroupActivityRequiredComponent.js +45 -31
- package/lib/components/HOC/GuidComponent.js +29 -22
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +41 -31
- package/lib/components/HOC/ModelErrorRedirectComponent.js +51 -47
- package/lib/components/HOC/SearchPersistorComponent.js +240 -166
- package/lib/components/HOC/UnauthenticatedComponent.js +37 -25
- package/lib/components/HOC/UserComponent.js +12 -7
- package/lib/components/Icons/IconAlphaList.js +33 -5
- package/lib/components/Icons/IconExternalUser.js +33 -5
- package/lib/components/Icons/IconImpersonation.js +33 -5
- package/lib/components/Icons/IconStopImpersonating.js +33 -5
- package/lib/components/Icons/IconTable.js +35 -7
- package/lib/components/Icons/IconTableDeleteCol.js +33 -5
- package/lib/components/Icons/IconTableDeleteRow.js +33 -5
- package/lib/components/Icons/IconTableInsertCol.js +33 -5
- package/lib/components/Icons/IconTableInsertRow.js +33 -5
- package/lib/components/Impersonation/Button.js +77 -13
- package/lib/components/Impersonation/Link.js +77 -13
- package/lib/components/Impersonation/UserDetail.js +66 -9
- package/lib/components/Loading.js +26 -4
- package/lib/components/LockDownBrowser/Check.js +194 -49
- package/lib/components/LockDownBrowser/ExitButton.js +26 -9
- package/lib/components/LockDownBrowser/Launch.js +70 -62
- package/lib/components/Lti/Confirm.js +152 -11
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -33
- package/lib/components/Lti/Launch.js +105 -24
- package/lib/components/Lti/LaunchGroup.js +85 -13
- package/lib/components/ManageTable.js +309 -87
- package/lib/components/ManageTableNoDataComponent.js +42 -4
- package/lib/components/NewVersionAlert.js +82 -46
- package/lib/components/NotFound.js +86 -10
- package/lib/components/Notifications.js +185 -126
- package/lib/components/PaginationNextButton.js +33 -6
- package/lib/components/PaginationPreviousButton.js +33 -6
- package/lib/components/Quill/CustomToolbar.js +432 -218
- package/lib/components/Quill/Formats/Image.js +73 -63
- package/lib/components/Quill/Formats/List.js +45 -45
- package/lib/components/Quill/Formats/Video.js +28 -24
- package/lib/components/Quill/ImageDropModule.js +147 -117
- package/lib/components/Quill/ImageWarning.js +47 -9
- package/lib/components/Quill/ImageWithAltTextModal.js +425 -86
- package/lib/components/Quill/Specs/CustomImageSpec.js +42 -34
- package/lib/components/Quill/Specs/CustomVideoSpec.js +34 -28
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +98 -98
- package/lib/components/Quill/TableModule/Blots/TableBlot.js +52 -47
- package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +53 -48
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +224 -221
- package/lib/components/Quill/TableModule/Blots/TableContainer.js +80 -83
- package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +75 -70
- package/lib/components/Quill/TableModule/constants.js +45 -41
- package/lib/components/Quill/TableModule/index.js +362 -301
- package/lib/components/Quill/TableModule/utils.js +42 -38
- package/lib/components/Quill/accessibilityFix.js +234 -232
- package/lib/components/Quill/index.js +34 -28
- package/lib/components/RefreshIndicator/Bordered.js +47 -6
- package/lib/components/RefreshIndicator/Inline.js +47 -8
- package/lib/components/RefreshIndicator/index.js +263 -59
- package/lib/components/SearchControls.js +216 -11
- package/lib/components/SentryRoute.js +11 -6
- package/lib/components/Tables/RoleFilter.js +69 -32
- package/lib/components/Tables/TextFilter.js +62 -13
- package/lib/components/UserRoles/Add.js +199 -96
- package/lib/components/UserRoles/Context.js +11 -7
- package/lib/components/UserRoles/RoleCell.js +181 -72
- package/lib/components/UserRoles/Select.js +157 -17
- package/lib/components/UserRoles/Table.js +221 -80
- package/lib/components/UserRoles/index.js +534 -384
- package/lib/config/eslint/index.js +32 -28
- package/lib/config/eslint/lib/order.js +26 -27
- package/lib/config/eslint/lib/prettier.js +20 -18
- package/lib/config/eslint/lib/typescript.js +93 -112
- package/lib/config/eslint/react.js +24 -14
- package/lib/constants/baseActivity.js +30 -26
- package/lib/constants/baseRole.js +14 -10
- package/lib/constants/configuration.js +33 -29
- package/lib/constants/externalProviderType.js +10 -6
- package/lib/constants/fetchErrorData.js +15 -11
- package/lib/constants/index.js +137 -14
- package/lib/constants/lockDownBrowser.js +28 -24
- package/lib/constants/mockData.js +382 -297
- package/lib/constants/modelStatus.js +15 -11
- package/lib/constants/notificationType.js +12 -8
- package/lib/constants/operatingSystem.js +12 -8
- package/lib/constants/shard.js +11 -7
- package/lib/constants/table.js +21 -21
- package/lib/constants/tier.js +12 -8
- package/lib/constants/userRole.js +15 -5
- package/lib/endpointMappings.js +197 -181
- package/lib/hooks/useCollection.js +82 -62
- package/lib/hooks/useCollectionConfiguration.js +228 -83
- package/lib/hooks/useCollectionItem.js +154 -54
- package/lib/hooks/useGuid.js +20 -8
- package/lib/hooks/usePrevious.js +19 -13
- package/lib/index.js +157 -25
- package/lib/redux/actionCreator.js +50 -28
- package/lib/redux/actions/AuthAction.js +44 -31
- package/lib/redux/actions/ModalAction.js +10 -6
- package/lib/redux/actions/ModelAction.js +77 -39
- package/lib/redux/actions/NotificationAction.js +10 -6
- package/lib/redux/actions/SearchAction.js +9 -5
- package/lib/redux/actions/index.js +60 -7
- package/lib/redux/configureReducers.js +60 -49
- package/lib/redux/configureStore.js +83 -87
- package/lib/redux/helpers.js +6 -2
- package/lib/redux/reducers/authReducer.js +50 -43
- package/lib/redux/reducers/index.js +41 -13
- package/lib/redux/reducers/modalsReducer.js +47 -29
- package/lib/redux/reducers/modelsReducer.js +178 -173
- package/lib/redux/reducers/notificationsReducer.js +24 -18
- package/lib/redux/reducers/searchReducer.js +25 -19
- package/lib/redux/sagas/appInsightsSaga.js +22 -18
- package/lib/redux/sagas/authSaga.js +253 -218
- package/lib/redux/sagas/caliperSaga.js +159 -143
- package/lib/redux/sagas/clockOffsetSaga.js +34 -31
- package/lib/redux/sagas/configurationSaga.js +11 -7
- package/lib/redux/sagas/downtimeApiErrorSaga.js +20 -17
- package/lib/redux/sagas/errorSaga.js +27 -21
- package/lib/redux/sagas/googleAnalyticsSaga.js +28 -24
- package/lib/redux/sagas/identityProviderSaga.js +22 -18
- package/lib/redux/sagas/initialDataLoadSaga.js +37 -28
- package/lib/redux/sagas/lockDownBrowserErrorSaga.js +29 -20
- package/lib/redux/sagas/modelFetchSaga.js +355 -322
- package/lib/redux/sagas/noStoreSaga.js +61 -48
- package/lib/redux/sagas/postLoginDataSaga.js +45 -34
- package/lib/redux/sagas/postLoginRedirectSaga.js +27 -27
- package/lib/redux/sagas/rootSaga.js +82 -57
- package/lib/redux/sagas/sentrySaga.js +29 -25
- package/lib/redux/sagas/userIdSaga.js +16 -12
- package/lib/services/codeProviderService.js +25 -19
- package/lib/services/dateService.js +12 -7
- package/lib/services/documentService.js +17 -12
- package/lib/services/fetchService.js +129 -112
- package/lib/services/persistenceService.js +33 -29
- package/lib/services/ticketProviderService.js +29 -23
- package/lib/services/tokenPersistenceService.js +12 -8
- package/lib/services/windowService.js +18 -14
- package/lib/startup.js +132 -114
- package/lib/types/AppConfiguration.js +5 -1
- package/lib/types/Artifact.js +11 -7
- package/lib/types/BaseReduxState.js +5 -1
- package/lib/types/Client.js +5 -1
- package/lib/types/Collection.js +5 -1
- package/lib/types/Configuration.js +5 -1
- package/lib/types/DeepLinkingResponseRequest.js +5 -1
- package/lib/types/DeletableModel.js +5 -1
- package/lib/types/Event.js +5 -1
- package/lib/types/ExternalGroup.js +5 -1
- package/lib/types/ExternalProvider.js +5 -1
- package/lib/types/ExternalTerm.js +5 -1
- package/lib/types/Group.js +5 -1
- package/lib/types/IdentityProvider.js +5 -1
- package/lib/types/LtiLaunch.js +5 -1
- package/lib/types/NameOnlyEntity.js +5 -1
- package/lib/types/Notification.js +5 -1
- package/lib/types/OptionalRecord.js +5 -1
- package/lib/types/OwnerSchedule.js +5 -1
- package/lib/types/PropertyOfType.js +5 -1
- package/lib/types/Quill.js +5 -1
- package/lib/types/RoleDescription.js +5 -1
- package/lib/types/Search.js +5 -1
- package/lib/types/SimpleLocation.js +5 -1
- package/lib/types/UniTime.js +5 -1
- package/lib/types/User.js +5 -1
- package/lib/types/UserRole.js +5 -1
- package/lib/types/auth/AuthState.js +5 -1
- package/lib/types/auth/CasV1LoginRequestBody.js +5 -1
- package/lib/types/auth/ClientCredentials.js +5 -1
- package/lib/types/auth/CodeProviderService.js +5 -1
- package/lib/types/auth/LocalLoginRequestBody.js +5 -1
- package/lib/types/auth/TicketProviderService.js +5 -1
- package/lib/types/auth/TokenPersistenceService.js +5 -1
- package/lib/types/auth/index.js +82 -9
- package/lib/types/externals.d.js +2 -0
- package/lib/types/index.js +313 -30
- package/lib/types/net/EndpointConfig.js +5 -1
- package/lib/types/net/EndpointMapping.js +5 -1
- package/lib/types/net/EndpointMappings.js +5 -1
- package/lib/types/net/ErrorHandler.js +5 -1
- package/lib/types/net/FetchConfig.js +5 -1
- package/lib/types/net/FetchErrorData.js +10 -6
- package/lib/types/net/FetchResult.js +5 -1
- package/lib/types/net/HTTPMethod.js +5 -1
- package/lib/types/net/HTTPStatusCode.js +16 -12
- package/lib/types/net/Metadata.js +5 -1
- package/lib/types/net/Model.js +5 -1
- package/lib/types/net/ModelCollection.js +5 -1
- package/lib/types/net/ModelsState.js +5 -1
- package/lib/types/net/OAuthToken.js +5 -1
- package/lib/types/net/OAuthTokenOrNull.js +5 -1
- package/lib/types/net/TokenAccessFunction.js +5 -1
- package/lib/types/net/index.js +181 -18
- package/lib/utils/baseActivity.js +133 -123
- package/lib/utils/baseRole.js +37 -33
- package/lib/utils/collection.js +425 -298
- package/lib/utils/cookies.js +22 -19
- package/lib/utils/date.js +303 -279
- package/lib/utils/dom.js +176 -165
- package/lib/utils/domainIdentifier.js +9 -5
- package/lib/utils/entityUserRole.js +6 -2
- package/lib/utils/error.js +17 -15
- package/lib/utils/events.js +40 -31
- package/lib/utils/externalGroup.js +22 -18
- package/lib/utils/externalProviders.js +8 -4
- package/lib/utils/externalTerms.js +10 -3
- package/lib/utils/fetch.js +179 -180
- package/lib/utils/group.js +18 -7
- package/lib/utils/groupDates.js +37 -33
- package/lib/utils/groupRoles.js +25 -21
- package/lib/utils/lockDownBrowser.js +15 -11
- package/lib/utils/logger.js +26 -22
- package/lib/utils/lti.js +9 -4
- package/lib/utils/model.js +36 -41
- package/lib/utils/number.js +21 -18
- package/lib/utils/promise.js +28 -21
- package/lib/utils/quill.js +65 -62
- package/lib/utils/route.js +58 -55
- package/lib/utils/search.js +76 -80
- package/lib/utils/shard.js +37 -37
- package/lib/utils/sort.js +50 -42
- package/lib/utils/string.js +13 -8
- package/lib/utils/table.js +38 -33
- package/lib/utils/timezone.js +10 -6
- package/lib/utils/url.js +142 -142
- package/lib/utils/user.js +58 -55
- package/lib/utils/userAgent.js +10 -10
- package/lib/utils/userRole.js +57 -49
- package/package.json +17 -3
|
@@ -1,249 +1,251 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
exports
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
4
6
|
exports.applyAccessibilityHacks = applyAccessibilityHacks;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
7
|
+
exports.applyAccessibilityToIcons = applyAccessibilityToIcons;
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
var _constants = require("./TableModule/constants");
|
|
10
|
+
/**
|
|
11
|
+
* Apply aria-labels to the icons from the quill text editor
|
|
12
|
+
* Imports the icons from Quill, recursively go through each icon and get the <svg /> html.
|
|
13
|
+
* Then it sets a <label /> between the <svg />
|
|
14
|
+
* Using css, it hides the label content.
|
|
15
|
+
*
|
|
16
|
+
* @param {*} icons The object that includes all the icons from Quill
|
|
14
17
|
*/
|
|
15
18
|
function applyAccessibilityToIcons(icons) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
19
|
+
(0, _lodash.forEach)(icons, (value, key) => {
|
|
20
|
+
// if the value is an object, recursively call this function
|
|
21
|
+
if ((0, _lodash.isPlainObject)(value)) {
|
|
22
|
+
applyAccessibilityToIcons(value);
|
|
23
|
+
}
|
|
24
|
+
// if the value is a string, i.e, "<svg></svg>", then it adds the label
|
|
25
|
+
if ((0, _lodash.isString)(value)) {
|
|
26
|
+
const regex = /^(.*) <\/svg>/g;
|
|
27
|
+
const match = regex.exec(value);
|
|
28
|
+
if (!match) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
let iconName;
|
|
32
|
+
if (key) {
|
|
33
|
+
iconName = key;
|
|
34
|
+
} else {
|
|
35
|
+
iconName = 'left';
|
|
36
|
+
}
|
|
37
|
+
const label = `<label class="hidden" aria-label="${iconName}">${iconName}</label>`;
|
|
38
|
+
icons[key] = match[1] + label + '</svg>';
|
|
39
|
+
}
|
|
40
|
+
});
|
|
39
41
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* @param
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Grabs the DOM from the toolbar reference and loop through each button, picker, and dropdowns adding accessibility values
|
|
45
|
+
* Help from: https://github.com/quilljs/quill/issues/1173
|
|
46
|
+
*
|
|
47
|
+
* @param toolbarRef: reference to the div containing our custom Quill toolbar
|
|
48
|
+
* @param editor: reference to the Quill editor
|
|
46
49
|
*/
|
|
47
50
|
function applyAccessibilityHacks(toolbarRef, editor) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
case 'script':
|
|
71
|
-
if (button.value === 'sub') {
|
|
72
|
-
button.setAttribute('aria-label', 'Toggle subscript');
|
|
73
|
-
}
|
|
74
|
-
if (button.value === 'super') {
|
|
75
|
-
button.setAttribute('aria-label', 'Toggle superscript');
|
|
76
|
-
}
|
|
77
|
-
break;
|
|
78
|
-
case 'blockquote':
|
|
79
|
-
button.setAttribute('aria-label', 'Toggle blockquote text');
|
|
80
|
-
break;
|
|
81
|
-
case 'list':
|
|
82
|
-
if (button.value === 'ordered') {
|
|
83
|
-
button.setAttribute('aria-label', 'Toggle ordered list');
|
|
84
|
-
}
|
|
85
|
-
if (button.value === 'bullet') {
|
|
86
|
-
button.setAttribute('aria-label', 'Toggle bulleted list');
|
|
87
|
-
}
|
|
88
|
-
break;
|
|
89
|
-
case 'header':
|
|
90
|
-
if (button.value === '1') {
|
|
91
|
-
button.setAttribute('aria-label', 'Toggle heading 1');
|
|
92
|
-
}
|
|
93
|
-
if (button.value === '2') {
|
|
94
|
-
button.setAttribute('aria-label', 'Toggle heading 2');
|
|
95
|
-
}
|
|
96
|
-
break;
|
|
97
|
-
case 'strike':
|
|
98
|
-
button.setAttribute('aria-label', 'Toggle strike text');
|
|
99
|
-
break;
|
|
100
|
-
case 'code-block':
|
|
101
|
-
button.setAttribute('aria-label', 'Toggle code block text');
|
|
102
|
-
break;
|
|
103
|
-
case 'indent':
|
|
104
|
-
if (button.value === '-1') {
|
|
105
|
-
button.setAttribute('aria-label', 'Indent left');
|
|
106
|
-
}
|
|
107
|
-
if (button.value === '+1') {
|
|
108
|
-
button.setAttribute('aria-label', 'Indent right');
|
|
109
|
-
}
|
|
110
|
-
break;
|
|
111
|
-
case 'link':
|
|
112
|
-
button.setAttribute('aria-label', 'Insert link');
|
|
113
|
-
break;
|
|
114
|
-
case 'image':
|
|
115
|
-
button.setAttribute('aria-label', 'Insert image');
|
|
116
|
-
break;
|
|
117
|
-
case 'video':
|
|
118
|
-
button.setAttribute('aria-label', 'Insert video');
|
|
119
|
-
break;
|
|
120
|
-
case 'formula':
|
|
121
|
-
button.setAttribute('aria-label', 'Insert formula');
|
|
122
|
-
break;
|
|
123
|
-
case 'clean':
|
|
124
|
-
button.setAttribute('aria-label', 'Clear formatting');
|
|
125
|
-
break;
|
|
126
|
-
case 'table':
|
|
127
|
-
switch (button.value) {
|
|
128
|
-
case constants_1.TABLE_ACTION.INSERT_ROW:
|
|
129
|
-
button.setAttribute('aria-label', 'Insert row');
|
|
130
|
-
break;
|
|
131
|
-
case constants_1.TABLE_ACTION.DELETE_ROW:
|
|
132
|
-
button.setAttribute('aria-label', 'Delete row');
|
|
133
|
-
break;
|
|
134
|
-
case constants_1.TABLE_ACTION.INSERT_COL:
|
|
135
|
-
button.setAttribute('aria-label', 'Insert column');
|
|
136
|
-
break;
|
|
137
|
-
case constants_1.TABLE_ACTION.DELETE_COL:
|
|
138
|
-
button.setAttribute('aria-label', 'Delete column');
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
break;
|
|
142
|
-
default:
|
|
143
|
-
break;
|
|
51
|
+
// Get ref to the toolbar, its not available through the quill api ughh
|
|
52
|
+
if (!toolbarRef.current) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const toolbar = toolbarRef.current;
|
|
56
|
+
// apply aria labels to base buttons
|
|
57
|
+
const buttons = toolbar.getElementsByTagName('button');
|
|
58
|
+
for (const button of Array.from(buttons)) {
|
|
59
|
+
const className = button.classList.value.split(' ').filter(v => v.includes('ql-')).map(v => v.replace('ql-', ''))[0];
|
|
60
|
+
switch (className) {
|
|
61
|
+
case 'bold':
|
|
62
|
+
button.setAttribute('aria-label', 'Toggle bold text');
|
|
63
|
+
break;
|
|
64
|
+
case 'italic':
|
|
65
|
+
button.setAttribute('aria-label', 'Toggle italic text');
|
|
66
|
+
break;
|
|
67
|
+
case 'underline':
|
|
68
|
+
button.setAttribute('aria-label', 'Toggle underline text');
|
|
69
|
+
break;
|
|
70
|
+
case 'script':
|
|
71
|
+
if (button.value === 'sub') {
|
|
72
|
+
button.setAttribute('aria-label', 'Toggle subscript');
|
|
144
73
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
button.setAttribute('title', ariaLabel);
|
|
74
|
+
if (button.value === 'super') {
|
|
75
|
+
button.setAttribute('aria-label', 'Toggle superscript');
|
|
148
76
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
77
|
+
break;
|
|
78
|
+
case 'blockquote':
|
|
79
|
+
button.setAttribute('aria-label', 'Toggle blockquote text');
|
|
80
|
+
break;
|
|
81
|
+
case 'list':
|
|
82
|
+
if (button.value === 'ordered') {
|
|
83
|
+
button.setAttribute('aria-label', 'Toggle ordered list');
|
|
156
84
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}
|
|
213
|
-
label.addEventListener('keyup', (e) => {
|
|
214
|
-
if (e.keyCode === 13) {
|
|
215
|
-
;
|
|
216
|
-
label.click();
|
|
217
|
-
picker.classList.add('ql-expanded');
|
|
218
|
-
optionsContainer.setAttribute('aria-hidden', 'false');
|
|
219
|
-
}
|
|
220
|
-
});
|
|
85
|
+
if (button.value === 'bullet') {
|
|
86
|
+
button.setAttribute('aria-label', 'Toggle bulleted list');
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
case 'header':
|
|
90
|
+
if (button.value === '1') {
|
|
91
|
+
button.setAttribute('aria-label', 'Toggle heading 1');
|
|
92
|
+
}
|
|
93
|
+
if (button.value === '2') {
|
|
94
|
+
button.setAttribute('aria-label', 'Toggle heading 2');
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
case 'strike':
|
|
98
|
+
button.setAttribute('aria-label', 'Toggle strike text');
|
|
99
|
+
break;
|
|
100
|
+
case 'code-block':
|
|
101
|
+
button.setAttribute('aria-label', 'Toggle code block text');
|
|
102
|
+
break;
|
|
103
|
+
case 'indent':
|
|
104
|
+
if (button.value === '-1') {
|
|
105
|
+
button.setAttribute('aria-label', 'Indent left');
|
|
106
|
+
}
|
|
107
|
+
if (button.value === '+1') {
|
|
108
|
+
button.setAttribute('aria-label', 'Indent right');
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
case 'link':
|
|
112
|
+
button.setAttribute('aria-label', 'Insert link');
|
|
113
|
+
break;
|
|
114
|
+
case 'image':
|
|
115
|
+
button.setAttribute('aria-label', 'Insert image');
|
|
116
|
+
break;
|
|
117
|
+
case 'video':
|
|
118
|
+
button.setAttribute('aria-label', 'Insert video');
|
|
119
|
+
break;
|
|
120
|
+
case 'formula':
|
|
121
|
+
button.setAttribute('aria-label', 'Insert formula');
|
|
122
|
+
break;
|
|
123
|
+
case 'clean':
|
|
124
|
+
button.setAttribute('aria-label', 'Clear formatting');
|
|
125
|
+
break;
|
|
126
|
+
case 'table':
|
|
127
|
+
switch (button.value) {
|
|
128
|
+
case _constants.TABLE_ACTION.INSERT_ROW:
|
|
129
|
+
button.setAttribute('aria-label', 'Insert row');
|
|
130
|
+
break;
|
|
131
|
+
case _constants.TABLE_ACTION.DELETE_ROW:
|
|
132
|
+
button.setAttribute('aria-label', 'Delete row');
|
|
133
|
+
break;
|
|
134
|
+
case _constants.TABLE_ACTION.INSERT_COL:
|
|
135
|
+
button.setAttribute('aria-label', 'Insert column');
|
|
136
|
+
break;
|
|
137
|
+
case _constants.TABLE_ACTION.DELETE_COL:
|
|
138
|
+
button.setAttribute('aria-label', 'Delete column');
|
|
139
|
+
break;
|
|
221
140
|
}
|
|
141
|
+
break;
|
|
142
|
+
default:
|
|
143
|
+
break;
|
|
222
144
|
}
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
145
|
+
const ariaLabel = button.getAttribute('aria-label');
|
|
146
|
+
if (ariaLabel) {
|
|
147
|
+
button.setAttribute('title', ariaLabel);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Put title tags to the dropdowns
|
|
151
|
+
const dropdowns = toolbar.getElementsByTagName('select');
|
|
152
|
+
for (const dropdown of Array.from(dropdowns)) {
|
|
153
|
+
const classNameAttribute = dropdown.getAttribute('class');
|
|
154
|
+
if (classNameAttribute) {
|
|
155
|
+
dropdown.setAttribute('title', classNameAttribute.toLowerCase());
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Make pickers work with keyboard and apply aria labels
|
|
160
|
+
const pickers = toolbar.getElementsByClassName('ql-picker');
|
|
161
|
+
for (const picker of Array.from(pickers)) {
|
|
162
|
+
const label = picker.getElementsByClassName('ql-picker-label')[0];
|
|
163
|
+
const optionsContainer = picker.getElementsByClassName('ql-picker-options')[0];
|
|
164
|
+
const options = optionsContainer.getElementsByClassName('ql-picker-item');
|
|
165
|
+
label.setAttribute('role', 'button');
|
|
166
|
+
label.setAttribute('aria-haspopup', 'true');
|
|
167
|
+
label.setAttribute('tabindex', '0');
|
|
168
|
+
if (!!label.parentElement && label.parentElement.classList.contains('ql-font')) {
|
|
169
|
+
label.setAttribute('title', 'Font face');
|
|
170
|
+
}
|
|
171
|
+
if (!!label.parentElement && label.parentElement.classList.contains('ql-size')) {
|
|
172
|
+
label.setAttribute('title', 'Font size');
|
|
173
|
+
}
|
|
174
|
+
if (!!label.parentElement && label.parentElement.classList.contains('ql-align')) {
|
|
175
|
+
label.setAttribute('title', 'Alignment');
|
|
176
|
+
}
|
|
177
|
+
if (!!label.parentElement && label.parentElement.classList.contains('ql-table')) {
|
|
178
|
+
label.setAttribute('title', 'Insert table');
|
|
179
|
+
}
|
|
180
|
+
optionsContainer.setAttribute('aria-hidden', 'true');
|
|
181
|
+
optionsContainer.setAttribute('aria-label', 'submenu');
|
|
182
|
+
for (const item of Array.from(options)) {
|
|
183
|
+
item.setAttribute('tabindex', '0');
|
|
184
|
+
item.setAttribute('role', 'button');
|
|
185
|
+
if (!(0, _lodash.includes)(picker.classList, 'ql-align')) {
|
|
186
|
+
// Read the css 'content' values and generate aria labels for font face/size
|
|
187
|
+
const content = window.getComputedStyle(item, ':before').content;
|
|
188
|
+
if (content) {
|
|
189
|
+
const contentLabels = content.split('"').join('');
|
|
190
|
+
item.setAttribute('aria-label', contentLabels);
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
// Add the title labels to the justification icons
|
|
194
|
+
const iconLabels = item.getElementsByTagName('label');
|
|
195
|
+
if (iconLabels.length === 1) {
|
|
196
|
+
const iconLabel = iconLabels[0].getAttribute('aria-label');
|
|
197
|
+
if (iconLabel) {
|
|
198
|
+
const iconTitle = iconLabel.charAt(0).toUpperCase() + iconLabel.slice(1);
|
|
199
|
+
item.setAttribute('title', iconTitle);
|
|
200
|
+
item.setAttribute('aria-label', iconLabel);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
229
203
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
204
|
+
item.addEventListener('keyup', e => {
|
|
205
|
+
if (e.keyCode === 13) {
|
|
206
|
+
;
|
|
207
|
+
item.click();
|
|
208
|
+
optionsContainer.setAttribute('aria-hidden', 'true');
|
|
209
|
+
picker.classList.remove('ql-expanded');
|
|
210
|
+
editor.focus();
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
label.addEventListener('keyup', e => {
|
|
215
|
+
if (e.keyCode === 13) {
|
|
216
|
+
;
|
|
217
|
+
label.click();
|
|
218
|
+
picker.classList.add('ql-expanded');
|
|
219
|
+
optionsContainer.setAttribute('aria-hidden', 'false');
|
|
234
220
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const tooltips = editor.container.getElementsByClassName('ql-tooltip');
|
|
225
|
+
for (const tooltip of Array.from(tooltips)) {
|
|
226
|
+
tooltip.setAttribute('tabindex', '-1');
|
|
227
|
+
const embedUrls = tooltip.getElementsByTagName('input');
|
|
228
|
+
for (const embedUrl of Array.from(embedUrls)) {
|
|
229
|
+
embedUrl.setAttribute('aria-label', 'Embed Url');
|
|
230
|
+
}
|
|
231
|
+
const previews = tooltip.getElementsByClassName('ql-preview');
|
|
232
|
+
for (const preview of Array.from(previews)) {
|
|
233
|
+
preview.setAttribute('aria-label', 'Preview');
|
|
234
|
+
preview.setAttribute('tabindex', '0');
|
|
235
|
+
}
|
|
236
|
+
const actions = tooltip.getElementsByClassName('ql-action');
|
|
237
|
+
const remove = tooltip.getElementsByClassName('ql-remove');
|
|
238
|
+
const allActions = Array.from(actions).concat(Array.from(remove));
|
|
239
|
+
for (const action of allActions) {
|
|
240
|
+
action.setAttribute('tabindex', '0');
|
|
241
|
+
action.setAttribute('role', 'button');
|
|
242
|
+
action.addEventListener('keyup', e => {
|
|
243
|
+
if (e.keyCode === 13) {
|
|
244
|
+
;
|
|
245
|
+
action.click();
|
|
247
246
|
}
|
|
247
|
+
});
|
|
248
248
|
}
|
|
249
|
+
}
|
|
249
250
|
}
|
|
251
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9jb25zdGFudHMiLCJhcHBseUFjY2Vzc2liaWxpdHlUb0ljb25zIiwiaWNvbnMiLCJmb3JFYWNoIiwidmFsdWUiLCJrZXkiLCJpc1BsYWluT2JqZWN0IiwiaXNTdHJpbmciLCJyZWdleCIsIm1hdGNoIiwiZXhlYyIsImljb25OYW1lIiwibGFiZWwiLCJhcHBseUFjY2Vzc2liaWxpdHlIYWNrcyIsInRvb2xiYXJSZWYiLCJlZGl0b3IiLCJjdXJyZW50IiwidG9vbGJhciIsImJ1dHRvbnMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImJ1dHRvbiIsIkFycmF5IiwiZnJvbSIsImNsYXNzTmFtZSIsImNsYXNzTGlzdCIsInNwbGl0IiwiZmlsdGVyIiwidiIsImluY2x1ZGVzIiwibWFwIiwicmVwbGFjZSIsInNldEF0dHJpYnV0ZSIsIlRBQkxFX0FDVElPTiIsIklOU0VSVF9ST1ciLCJERUxFVEVfUk9XIiwiSU5TRVJUX0NPTCIsIkRFTEVURV9DT0wiLCJhcmlhTGFiZWwiLCJnZXRBdHRyaWJ1dGUiLCJkcm9wZG93bnMiLCJkcm9wZG93biIsImNsYXNzTmFtZUF0dHJpYnV0ZSIsInRvTG93ZXJDYXNlIiwicGlja2VycyIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJwaWNrZXIiLCJvcHRpb25zQ29udGFpbmVyIiwib3B0aW9ucyIsInBhcmVudEVsZW1lbnQiLCJjb250YWlucyIsIml0ZW0iLCJjb250ZW50Iiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImNvbnRlbnRMYWJlbHMiLCJqb2luIiwiaWNvbkxhYmVscyIsImxlbmd0aCIsImljb25MYWJlbCIsImljb25UaXRsZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJhZGRFdmVudExpc3RlbmVyIiwiZSIsImtleUNvZGUiLCJjbGljayIsInJlbW92ZSIsImZvY3VzIiwiYWRkIiwidG9vbHRpcHMiLCJjb250YWluZXIiLCJ0b29sdGlwIiwiZW1iZWRVcmxzIiwiZW1iZWRVcmwiLCJwcmV2aWV3cyIsInByZXZpZXciLCJhY3Rpb25zIiwiYWxsQWN0aW9ucyIsImNvbmNhdCIsImFjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1F1aWxsL2FjY2Vzc2liaWxpdHlGaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yRWFjaCwgaW5jbHVkZXMsIGlzUGxhaW5PYmplY3QsIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoJ1xyXG5pbXBvcnQgeyBRdWlsbCB9IGZyb20gJ3JlYWN0LXF1aWxsJ1xyXG5pbXBvcnQgeyBUQUJMRV9BQ1RJT04gfSBmcm9tICcuL1RhYmxlTW9kdWxlL2NvbnN0YW50cydcclxuXHJcbi8qKlxyXG4gKiBBcHBseSBhcmlhLWxhYmVscyB0byB0aGUgaWNvbnMgZnJvbSB0aGUgcXVpbGwgdGV4dCBlZGl0b3JcclxuICogSW1wb3J0cyB0aGUgaWNvbnMgZnJvbSBRdWlsbCwgcmVjdXJzaXZlbHkgZ28gdGhyb3VnaCBlYWNoIGljb24gYW5kIGdldCB0aGUgPHN2ZyAvPiBodG1sLlxyXG4gKiBUaGVuIGl0IHNldHMgYSA8bGFiZWwgLz4gYmV0d2VlbiB0aGUgPHN2ZyAvPlxyXG4gKiBVc2luZyBjc3MsIGl0IGhpZGVzIHRoZSBsYWJlbCBjb250ZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0geyp9IGljb25zIFRoZSBvYmplY3QgdGhhdCBpbmNsdWRlcyBhbGwgdGhlIGljb25zIGZyb20gUXVpbGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhcHBseUFjY2Vzc2liaWxpdHlUb0ljb25zKGljb25zOiBhbnkpIHtcclxuXHRmb3JFYWNoKGljb25zLCAodmFsdWUsIGtleSkgPT4ge1xyXG5cdFx0Ly8gaWYgdGhlIHZhbHVlIGlzIGFuIG9iamVjdCwgcmVjdXJzaXZlbHkgY2FsbCB0aGlzIGZ1bmN0aW9uXHJcblx0XHRpZiAoaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcclxuXHRcdFx0YXBwbHlBY2Nlc3NpYmlsaXR5VG9JY29ucyh2YWx1ZSlcclxuXHRcdH1cclxuXHRcdC8vIGlmIHRoZSB2YWx1ZSBpcyBhIHN0cmluZywgaS5lLCBcIjxzdmc+PC9zdmc+XCIsIHRoZW4gaXQgYWRkcyB0aGUgbGFiZWxcclxuXHRcdGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcclxuXHRcdFx0Y29uc3QgcmVnZXggPSAvXiguKikgPFxcL3N2Zz4vZ1xyXG5cdFx0XHRjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWModmFsdWUpXHJcblx0XHRcdGlmICghbWF0Y2gpIHtcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHRsZXQgaWNvbk5hbWVcclxuXHRcdFx0aWYgKGtleSkge1xyXG5cdFx0XHRcdGljb25OYW1lID0ga2V5XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0aWNvbk5hbWUgPSAnbGVmdCdcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBsYWJlbCA9IGA8bGFiZWwgY2xhc3M9XCJoaWRkZW5cIiBhcmlhLWxhYmVsPVwiJHtpY29uTmFtZX1cIj4ke2ljb25OYW1lfTwvbGFiZWw+YFxyXG5cdFx0XHRpY29uc1trZXldID0gbWF0Y2hbMV0gKyBsYWJlbCArICc8L3N2Zz4nXHJcblx0XHR9XHJcblx0fSlcclxufVxyXG5cclxuLyoqXHJcbiAqIEdyYWJzIHRoZSBET00gZnJvbSB0aGUgdG9vbGJhciByZWZlcmVuY2UgYW5kIGxvb3AgdGhyb3VnaCBlYWNoIGJ1dHRvbiwgcGlja2VyLCBhbmQgZHJvcGRvd25zIGFkZGluZyBhY2Nlc3NpYmlsaXR5IHZhbHVlc1xyXG4gKiBIZWxwIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9xdWlsbGpzL3F1aWxsL2lzc3Vlcy8xMTczXHJcbiAqXHJcbiAqIEBwYXJhbSB0b29sYmFyUmVmOiByZWZlcmVuY2UgdG8gdGhlIGRpdiBjb250YWluaW5nIG91ciBjdXN0b20gUXVpbGwgdG9vbGJhclxyXG4gKiBAcGFyYW0gZWRpdG9yOiByZWZlcmVuY2UgdG8gdGhlIFF1aWxsIGVkaXRvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5QWNjZXNzaWJpbGl0eUhhY2tzKHRvb2xiYXJSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4sIGVkaXRvcjogUXVpbGwpIHtcclxuXHQvLyBHZXQgcmVmIHRvIHRoZSB0b29sYmFyLCBpdHMgbm90IGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBxdWlsbCBhcGkgdWdoaFxyXG5cdGlmICghdG9vbGJhclJlZi5jdXJyZW50KSB7XHJcblx0XHRyZXR1cm5cclxuXHR9XHJcblx0Y29uc3QgdG9vbGJhciA9IHRvb2xiYXJSZWYuY3VycmVudFxyXG5cdC8vIGFwcGx5IGFyaWEgbGFiZWxzIHRvIGJhc2UgYnV0dG9uc1xyXG5cdGNvbnN0IGJ1dHRvbnMgPSB0b29sYmFyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdidXR0b24nKVxyXG5cclxuXHRmb3IgKGNvbnN0IGJ1dHRvbiBvZiBBcnJheS5mcm9tKGJ1dHRvbnMpKSB7XHJcblx0XHRjb25zdCBjbGFzc05hbWUgPSBidXR0b24uY2xhc3NMaXN0LnZhbHVlXHJcblx0XHRcdC5zcGxpdCgnICcpXHJcblx0XHRcdC5maWx0ZXIodiA9PiB2LmluY2x1ZGVzKCdxbC0nKSlcclxuXHRcdFx0Lm1hcCh2ID0+IHYucmVwbGFjZSgncWwtJywgJycpKVswXVxyXG5cdFx0c3dpdGNoIChjbGFzc05hbWUpIHtcclxuXHRcdFx0Y2FzZSAnYm9sZCc6XHJcblx0XHRcdFx0YnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdUb2dnbGUgYm9sZCB0ZXh0JylcclxuXHRcdFx0XHRicmVha1xyXG5cdFx0XHRjYXNlICdpdGFsaWMnOlxyXG5cdFx0XHRcdGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnVG9nZ2xlIGl0YWxpYyB0ZXh0JylcclxuXHRcdFx0XHRicmVha1xyXG5cdFx0XHRjYXNlICd1bmRlcmxpbmUnOlxyXG5cdFx0XHRcdGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnVG9nZ2xlIHVuZGVybGluZSB0ZXh0JylcclxuXHRcdFx0XHRicmVha1xyXG5cdFx0XHRjYXNlICdzY3JpcHQnOlxyXG5cdFx0XHRcdGlmIChidXR0b24udmFsdWUgPT09ICdzdWInKSB7XHJcblx0XHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ1RvZ2dsZSBzdWJzY3JpcHQnKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoYnV0dG9uLnZhbHVlID09PSAnc3VwZXInKSB7XHJcblx0XHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ1RvZ2dsZSBzdXBlcnNjcmlwdCcpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGJyZWFrXHJcblx0XHRcdGNhc2UgJ2Jsb2NrcXVvdGUnOlxyXG5cdFx0XHRcdGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnVG9nZ2xlIGJsb2NrcXVvdGUgdGV4dCcpXHJcblx0XHRcdFx0YnJlYWtcclxuXHRcdFx0Y2FzZSAnbGlzdCc6XHJcblx0XHRcdFx0aWYgKGJ1dHRvbi52YWx1ZSA9PT0gJ29yZGVyZWQnKSB7XHJcblx0XHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ1RvZ2dsZSBvcmRlcmVkIGxpc3QnKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoYnV0dG9uLnZhbHVlID09PSAnYnVsbGV0Jykge1xyXG5cdFx0XHRcdFx0YnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdUb2dnbGUgYnVsbGV0ZWQgbGlzdCcpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGJyZWFrXHJcblx0XHRcdGNhc2UgJ2hlYWRlcic6XHJcblx0XHRcdFx0aWYgKGJ1dHRvbi52YWx1ZSA9PT0gJzEnKSB7XHJcblx0XHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ1RvZ2dsZSBoZWFkaW5nIDEnKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoYnV0dG9uLnZhbHVlID09PSAnMicpIHtcclxuXHRcdFx0XHRcdGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnVG9nZ2xlIGhlYWRpbmcgMicpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGJyZWFrXHJcblx0XHRcdGNhc2UgJ3N0cmlrZSc6XHJcblx0XHRcdFx0YnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdUb2dnbGUgc3RyaWtlIHRleHQnKVxyXG5cdFx0XHRcdGJyZWFrXHJcblx0XHRcdGNhc2UgJ2NvZGUtYmxvY2snOlxyXG5cdFx0XHRcdGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnVG9nZ2xlIGNvZGUgYmxvY2sgdGV4dCcpXHJcblx0XHRcdFx0YnJlYWtcclxuXHRcdFx0Y2FzZSAnaW5kZW50JzpcclxuXHRcdFx0XHRpZiAoYnV0dG9uLnZhbHVlID09PSAnLTEnKSB7XHJcblx0XHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0luZGVudCBsZWZ0JylcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGJ1dHRvbi52YWx1ZSA9PT0gJysxJykge1xyXG5cdFx0XHRcdFx0YnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdJbmRlbnQgcmlnaHQnKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRicmVha1xyXG5cdFx0XHRjYXNlICdsaW5rJzpcclxuXHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0luc2VydCBsaW5rJylcclxuXHRcdFx0XHRicmVha1xyXG5cdFx0XHRjYXNlICdpbWFnZSc6XHJcblx0XHRcdFx0YnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdJbnNlcnQgaW1hZ2UnKVxyXG5cdFx0XHRcdGJyZWFrXHJcblx0XHRcdGNhc2UgJ3ZpZGVvJzpcclxuXHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0luc2VydCB2aWRlbycpXHJcblx0XHRcdFx0YnJlYWtcclxuXHRcdFx0Y2FzZSAnZm9ybXVsYSc6XHJcblx0XHRcdFx0YnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdJbnNlcnQgZm9ybXVsYScpXHJcblx0XHRcdFx0YnJlYWtcclxuXHRcdFx0Y2FzZSAnY2xlYW4nOlxyXG5cdFx0XHRcdGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnQ2xlYXIgZm9ybWF0dGluZycpXHJcblx0XHRcdFx0YnJlYWtcclxuXHRcdFx0Y2FzZSAndGFibGUnOlxyXG5cdFx0XHRcdHN3aXRjaCAoYnV0dG9uLnZhbHVlKSB7XHJcblx0XHRcdFx0XHRjYXNlIFRBQkxFX0FDVElPTi5JTlNFUlRfUk9XOlxyXG5cdFx0XHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0luc2VydCByb3cnKVxyXG5cdFx0XHRcdFx0XHRicmVha1xyXG5cdFx0XHRcdFx0Y2FzZSBUQUJMRV9BQ1RJT04uREVMRVRFX1JPVzpcclxuXHRcdFx0XHRcdFx0YnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdEZWxldGUgcm93JylcclxuXHRcdFx0XHRcdFx0YnJlYWtcclxuXHRcdFx0XHRcdGNhc2UgVEFCTEVfQUNUSU9OLklOU0VSVF9DT0w6XHJcblx0XHRcdFx0XHRcdGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnSW5zZXJ0IGNvbHVtbicpXHJcblx0XHRcdFx0XHRcdGJyZWFrXHJcblx0XHRcdFx0XHRjYXNlIFRBQkxFX0FDVElPTi5ERUxFVEVfQ09MOlxyXG5cdFx0XHRcdFx0XHRidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0RlbGV0ZSBjb2x1bW4nKVxyXG5cdFx0XHRcdFx0XHRicmVha1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRicmVha1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdGJyZWFrXHJcblx0XHR9XHJcblx0XHRjb25zdCBhcmlhTGFiZWwgPSBidXR0b24uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJylcclxuXHRcdGlmIChhcmlhTGFiZWwpIHtcclxuXHRcdFx0YnV0dG9uLnNldEF0dHJpYnV0ZSgndGl0bGUnLCBhcmlhTGFiZWwpXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUHV0IHRpdGxlIHRhZ3MgdG8gdGhlIGRyb3Bkb3duc1xyXG5cdFx0Y29uc3QgZHJvcGRvd25zID0gdG9vbGJhci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylcclxuXHRcdGZvciAoY29uc3QgZHJvcGRvd24gb2YgQXJyYXkuZnJvbShkcm9wZG93bnMpKSB7XHJcblx0XHRcdGNvbnN0IGNsYXNzTmFtZUF0dHJpYnV0ZSA9IGRyb3Bkb3duLmdldEF0dHJpYnV0ZSgnY2xhc3MnKVxyXG5cdFx0XHRpZiAoY2xhc3NOYW1lQXR0cmlidXRlKSB7XHJcblx0XHRcdFx0ZHJvcGRvd24uc2V0QXR0cmlidXRlKCd0aXRsZScsIGNsYXNzTmFtZUF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gTWFrZSBwaWNrZXJzIHdvcmsgd2l0aCBrZXlib2FyZCBhbmQgYXBwbHkgYXJpYSBsYWJlbHNcclxuXHRcdGNvbnN0IHBpY2tlcnMgPSB0b29sYmFyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3FsLXBpY2tlcicpXHJcblx0XHRmb3IgKGNvbnN0IHBpY2tlciBvZiBBcnJheS5mcm9tKHBpY2tlcnMpKSB7XHJcblx0XHRcdGNvbnN0IGxhYmVsID0gcGlja2VyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3FsLXBpY2tlci1sYWJlbCcpWzBdXHJcblx0XHRcdGNvbnN0IG9wdGlvbnNDb250YWluZXIgPSBwaWNrZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncWwtcGlja2VyLW9wdGlvbnMnKVswXVxyXG5cdFx0XHRjb25zdCBvcHRpb25zID0gb3B0aW9uc0NvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbC1waWNrZXItaXRlbScpXHJcblx0XHRcdGxhYmVsLnNldEF0dHJpYnV0ZSgncm9sZScsICdidXR0b24nKVxyXG5cdFx0XHRsYWJlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGFzcG9wdXAnLCAndHJ1ZScpXHJcblx0XHRcdGxhYmVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpXHJcblx0XHRcdGlmICghIWxhYmVsLnBhcmVudEVsZW1lbnQgJiYgbGFiZWwucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3FsLWZvbnQnKSkge1xyXG5cdFx0XHRcdGxhYmVsLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnRm9udCBmYWNlJylcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoISFsYWJlbC5wYXJlbnRFbGVtZW50ICYmIGxhYmVsLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdxbC1zaXplJykpIHtcclxuXHRcdFx0XHRsYWJlbC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ0ZvbnQgc2l6ZScpXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKCEhbGFiZWwucGFyZW50RWxlbWVudCAmJiBsYWJlbC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygncWwtYWxpZ24nKSkge1xyXG5cdFx0XHRcdGxhYmVsLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnQWxpZ25tZW50JylcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoISFsYWJlbC5wYXJlbnRFbGVtZW50ICYmIGxhYmVsLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdxbC10YWJsZScpKSB7XHJcblx0XHRcdFx0bGFiZWwuc2V0QXR0cmlidXRlKCd0aXRsZScsICdJbnNlcnQgdGFibGUnKVxyXG5cdFx0XHR9XHJcblx0XHRcdG9wdGlvbnNDb250YWluZXIuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJylcclxuXHRcdFx0b3B0aW9uc0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnc3VibWVudScpXHJcblxyXG5cdFx0XHRmb3IgKGNvbnN0IGl0ZW0gb2YgQXJyYXkuZnJvbShvcHRpb25zKSkge1xyXG5cdFx0XHRcdGl0ZW0uc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJylcclxuXHRcdFx0XHRpdGVtLnNldEF0dHJpYnV0ZSgncm9sZScsICdidXR0b24nKVxyXG5cclxuXHRcdFx0XHRpZiAoIWluY2x1ZGVzKHBpY2tlci5jbGFzc0xpc3QsICdxbC1hbGlnbicpKSB7XHJcblx0XHRcdFx0XHQvLyBSZWFkIHRoZSBjc3MgJ2NvbnRlbnQnIHZhbHVlcyBhbmQgZ2VuZXJhdGUgYXJpYSBsYWJlbHMgZm9yIGZvbnQgZmFjZS9zaXplXHJcblx0XHRcdFx0XHRjb25zdCBjb250ZW50ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoaXRlbSwgJzpiZWZvcmUnKS5jb250ZW50XHJcblx0XHRcdFx0XHRpZiAoY29udGVudCkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBjb250ZW50TGFiZWxzID0gY29udGVudC5zcGxpdCgnXCInKS5qb2luKCcnKVxyXG5cdFx0XHRcdFx0XHRpdGVtLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGNvbnRlbnRMYWJlbHMpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdC8vIEFkZCB0aGUgdGl0bGUgbGFiZWxzIHRvIHRoZSBqdXN0aWZpY2F0aW9uIGljb25zXHJcblx0XHRcdFx0XHRjb25zdCBpY29uTGFiZWxzID0gaXRlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbGFiZWwnKVxyXG5cdFx0XHRcdFx0aWYgKGljb25MYWJlbHMubGVuZ3RoID09PSAxKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGljb25MYWJlbCA9IGljb25MYWJlbHNbMF0uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJylcclxuXHRcdFx0XHRcdFx0aWYgKGljb25MYWJlbCkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGljb25UaXRsZSA9IGljb25MYWJlbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGljb25MYWJlbC5zbGljZSgxKVxyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uc2V0QXR0cmlidXRlKCd0aXRsZScsIGljb25UaXRsZSlcclxuXHRcdFx0XHRcdFx0XHRpdGVtLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGljb25MYWJlbClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aXRlbS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdGlmIChlLmtleUNvZGUgPT09IDEzKSB7XHJcblx0XHRcdFx0XHRcdDsoaXRlbSBhcyBIVE1MRWxlbWVudCkuY2xpY2soKVxyXG5cdFx0XHRcdFx0XHRvcHRpb25zQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpXHJcblx0XHRcdFx0XHRcdHBpY2tlci5jbGFzc0xpc3QucmVtb3ZlKCdxbC1leHBhbmRlZCcpXHJcblx0XHRcdFx0XHRcdGVkaXRvci5mb2N1cygpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bGFiZWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKGUua2V5Q29kZSA9PT0gMTMpIHtcclxuXHRcdFx0XHRcdDsobGFiZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKClcclxuXHRcdFx0XHRcdHBpY2tlci5jbGFzc0xpc3QuYWRkKCdxbC1leHBhbmRlZCcpXHJcblx0XHRcdFx0XHRvcHRpb25zQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAnZmFsc2UnKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNvbnN0IHRvb2x0aXBzOiBIVE1MQ29sbGVjdGlvbk9mPEVsZW1lbnQ+ID0gKGVkaXRvciBhcyBhbnkpLmNvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbC10b29sdGlwJylcclxuXHRmb3IgKGNvbnN0IHRvb2x0aXAgb2YgQXJyYXkuZnJvbSh0b29sdGlwcykpIHtcclxuXHRcdHRvb2x0aXAuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpXHJcblx0XHRjb25zdCBlbWJlZFVybHMgPSB0b29sdGlwLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpXHJcblx0XHRmb3IgKGNvbnN0IGVtYmVkVXJsIG9mIEFycmF5LmZyb20oZW1iZWRVcmxzKSkge1xyXG5cdFx0XHRlbWJlZFVybC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnRW1iZWQgVXJsJylcclxuXHRcdH1cclxuXHRcdGNvbnN0IHByZXZpZXdzID0gdG9vbHRpcC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbC1wcmV2aWV3JylcclxuXHRcdGZvciAoY29uc3QgcHJldmlldyBvZiBBcnJheS5mcm9tKHByZXZpZXdzKSkge1xyXG5cdFx0XHRwcmV2aWV3LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdQcmV2aWV3JylcclxuXHRcdFx0cHJldmlldy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKVxyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYWN0aW9ucyA9IHRvb2x0aXAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncWwtYWN0aW9uJylcclxuXHRcdGNvbnN0IHJlbW92ZSA9IHRvb2x0aXAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncWwtcmVtb3ZlJylcclxuXHRcdGNvbnN0IGFsbEFjdGlvbnMgPSBBcnJheS5mcm9tKGFjdGlvbnMpLmNvbmNhdChBcnJheS5mcm9tKHJlbW92ZSkpXHJcblx0XHRmb3IgKGNvbnN0IGFjdGlvbiBvZiBhbGxBY3Rpb25zKSB7XHJcblx0XHRcdGFjdGlvbi5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKVxyXG5cdFx0XHRhY3Rpb24uc2V0QXR0cmlidXRlKCdyb2xlJywgJ2J1dHRvbicpXHJcblx0XHRcdGFjdGlvbi5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAoZS5rZXlDb2RlID09PSAxMykge1xyXG5cdFx0XHRcdFx0OyhhY3Rpb24gYXMgSFRNTEVsZW1lbnQpLmNsaWNrKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTRSx5QkFBeUJBLENBQUNDLEtBQVUsRUFBRTtFQUNyRCxJQUFBQyxlQUFPLEVBQUNELEtBQUssRUFBRSxDQUFDRSxLQUFLLEVBQUVDLEdBQUcsS0FBSztJQUM5QjtJQUNBLElBQUksSUFBQUMscUJBQWEsRUFBQ0YsS0FBSyxDQUFDLEVBQUU7TUFDekJILHlCQUF5QixDQUFDRyxLQUFLLENBQUM7SUFDakM7SUFDQTtJQUNBLElBQUksSUFBQUcsZ0JBQVEsRUFBQ0gsS0FBSyxDQUFDLEVBQUU7TUFDcEIsTUFBTUksS0FBSyxHQUFHLGdCQUFnQjtNQUM5QixNQUFNQyxLQUFLLEdBQUdELEtBQUssQ0FBQ0UsSUFBSSxDQUFDTixLQUFLLENBQUM7TUFDL0IsSUFBSSxDQUFDSyxLQUFLLEVBQUU7UUFDWDtNQUNEO01BQ0EsSUFBSUUsUUFBUTtNQUNaLElBQUlOLEdBQUcsRUFBRTtRQUNSTSxRQUFRLEdBQUdOLEdBQUc7TUFDZixDQUFDLE1BQU07UUFDTk0sUUFBUSxHQUFHLE1BQU07TUFDbEI7TUFDQSxNQUFNQyxLQUFLLEdBQUcscUNBQXFDRCxRQUFRLEtBQUtBLFFBQVEsVUFBVTtNQUNsRlQsS0FBSyxDQUFDRyxHQUFHLENBQUMsR0FBR0ksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHRyxLQUFLLEdBQUcsUUFBUTtJQUN6QztFQUNELENB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
|
|
@@ -1,36 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.supportedFileExtensions = exports.registerQuill = exports.buildFileSelector = void 0;
|
|
8
|
+
var _quillBlotFormatter = _interopRequireDefault(require("quill-blot-formatter"));
|
|
9
|
+
var _reactQuill = require("react-quill");
|
|
10
|
+
var _accessibilityFix = require("./accessibilityFix");
|
|
11
|
+
var _Image = require("./Formats/Image");
|
|
12
|
+
var _List = require("./Formats/List");
|
|
13
|
+
var _Video = require("./Formats/Video");
|
|
14
|
+
var _ImageDropModule = require("./ImageDropModule");
|
|
15
|
+
var _TableModule = require("./TableModule");
|
|
13
16
|
const registerQuill = () => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
_reactQuill.Quill.register('modules/blotFormatter', _quillBlotFormatter.default);
|
|
18
|
+
// replace image format
|
|
19
|
+
_reactQuill.Quill.register('formats/image', _Image.Image, true);
|
|
20
|
+
// replace list format with new extended version
|
|
21
|
+
_reactQuill.Quill.register('formats/list/item', _List.ListItem, true);
|
|
22
|
+
_reactQuill.Quill.register('formats/list', _List.List, true);
|
|
23
|
+
// replace image format
|
|
24
|
+
_reactQuill.Quill.register('formats/video', _Video.Video, true);
|
|
25
|
+
_reactQuill.Quill.register('modules/table', _TableModule.TableModule);
|
|
26
|
+
_reactQuill.Quill.register('modules/imageDrop', _ImageDropModule.ImageDropModule);
|
|
27
|
+
|
|
28
|
+
// apply the accessibility label issues to each icons
|
|
29
|
+
(0, _accessibilityFix.applyAccessibilityToIcons)(_reactQuill.Quill.import('ui/icons'));
|
|
26
30
|
};
|
|
27
31
|
exports.registerQuill = registerQuill;
|
|
28
|
-
exports.supportedFileExtensions = ['.png', '.jpeg', '.jpg', '.gif', '.bmp'];
|
|
32
|
+
const supportedFileExtensions = exports.supportedFileExtensions = ['.png', '.jpeg', '.jpg', '.gif', '.bmp'];
|
|
33
|
+
|
|
29
34
|
// Get the file dialog upload programmatically
|
|
30
35
|
const buildFileSelector = () => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
const fileSelector = document.createElement('input');
|
|
37
|
+
fileSelector.setAttribute('type', 'file');
|
|
38
|
+
fileSelector.setAttribute('accept', supportedFileExtensions.join(', '));
|
|
39
|
+
return fileSelector;
|
|
35
40
|
};
|
|
36
41
|
exports.buildFileSelector = buildFileSelector;
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcXVpbGxCbG90Rm9ybWF0dGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3RRdWlsbCIsIl9hY2Nlc3NpYmlsaXR5Rml4IiwiX0ltYWdlIiwiX0xpc3QiLCJfVmlkZW8iLCJfSW1hZ2VEcm9wTW9kdWxlIiwiX1RhYmxlTW9kdWxlIiwicmVnaXN0ZXJRdWlsbCIsIlF1aWxsIiwicmVnaXN0ZXIiLCJCbG90Rm9ybWF0dGVyIiwiSW1hZ2UiLCJMaXN0SXRlbSIsIkxpc3QiLCJWaWRlbyIsIlRhYmxlTW9kdWxlIiwiSW1hZ2VEcm9wTW9kdWxlIiwiYXBwbHlBY2Nlc3NpYmlsaXR5VG9JY29ucyIsImltcG9ydCIsImV4cG9ydHMiLCJzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9ucyIsImJ1aWxkRmlsZVNlbGVjdG9yIiwiZmlsZVNlbGVjdG9yIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiam9pbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1F1aWxsL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCbG90Rm9ybWF0dGVyIGZyb20gJ3F1aWxsLWJsb3QtZm9ybWF0dGVyJ1xyXG5pbXBvcnQgeyBRdWlsbCB9IGZyb20gJ3JlYWN0LXF1aWxsJ1xyXG5pbXBvcnQgeyBhcHBseUFjY2Vzc2liaWxpdHlUb0ljb25zIH0gZnJvbSAnLi9hY2Nlc3NpYmlsaXR5Rml4J1xyXG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gJy4vRm9ybWF0cy9JbWFnZSdcclxuaW1wb3J0IHsgTGlzdCwgTGlzdEl0ZW0gfSBmcm9tICcuL0Zvcm1hdHMvTGlzdCdcclxuaW1wb3J0IHsgVmlkZW8gfSBmcm9tICcuL0Zvcm1hdHMvVmlkZW8nXHJcbmltcG9ydCB7IEltYWdlRHJvcE1vZHVsZSB9IGZyb20gJy4vSW1hZ2VEcm9wTW9kdWxlJ1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJy4vVGFibGVNb2R1bGUnXHJcblxyXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJRdWlsbCA9ICgpID0+IHtcclxuXHRRdWlsbC5yZWdpc3RlcignbW9kdWxlcy9ibG90Rm9ybWF0dGVyJywgQmxvdEZvcm1hdHRlcilcclxuXHQvLyByZXBsYWNlIGltYWdlIGZvcm1hdFxyXG5cdFF1aWxsLnJlZ2lzdGVyKCdmb3JtYXRzL2ltYWdlJywgSW1hZ2UsIHRydWUpXHJcblx0Ly8gcmVwbGFjZSBsaXN0IGZvcm1hdCB3aXRoIG5ldyBleHRlbmRlZCB2ZXJzaW9uXHJcblx0UXVpbGwucmVnaXN0ZXIoJ2Zvcm1hdHMvbGlzdC9pdGVtJywgTGlzdEl0ZW0sIHRydWUpXHJcblx0UXVpbGwucmVnaXN0ZXIoJ2Zvcm1hdHMvbGlzdCcsIExpc3QsIHRydWUpXHJcblx0Ly8gcmVwbGFjZSBpbWFnZSBmb3JtYXRcclxuXHRRdWlsbC5yZWdpc3RlcignZm9ybWF0cy92aWRlbycsIFZpZGVvLCB0cnVlKVxyXG5cdFF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL3RhYmxlJywgVGFibGVNb2R1bGUpXHJcblx0UXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VEcm9wJywgSW1hZ2VEcm9wTW9kdWxlKVxyXG5cclxuXHQvLyBhcHBseSB0aGUgYWNjZXNzaWJpbGl0eSBsYWJlbCBpc3N1ZXMgdG8gZWFjaCBpY29uc1xyXG5cdGFwcGx5QWNjZXNzaWJpbGl0eVRvSWNvbnMoUXVpbGwuaW1wb3J0KCd1aS9pY29ucycpKVxyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnMgPSBbJy5wbmcnLCAnLmpwZWcnLCAnLmpwZycsICcuZ2lmJywgJy5ibXAnXVxyXG5cclxuLy8gR2V0IHRoZSBmaWxlIGRpYWxvZyB1cGxvYWQgcHJvZ3JhbW1hdGljYWxseVxyXG5leHBvcnQgY29uc3QgYnVpbGRGaWxlU2VsZWN0b3IgPSAoKSA9PiB7XHJcblx0Y29uc3QgZmlsZVNlbGVjdG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKVxyXG5cdGZpbGVTZWxlY3Rvci5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpXHJcblx0ZmlsZVNlbGVjdG9yLnNldEF0dHJpYnV0ZSgnYWNjZXB0Jywgc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnMuam9pbignLCAnKSlcclxuXHRyZXR1cm4gZmlsZVNlbGVjdG9yXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsbUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxnQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBUCxPQUFBO0FBRU8sTUFBTVEsYUFBYSxHQUFHQSxDQUFBLEtBQU07RUFDbENDLGlCQUFLLENBQUNDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRUMsMkJBQWEsQ0FBQztFQUN0RDtFQUNBRixpQkFBSyxDQUFDQyxRQUFRLENBQUMsZUFBZSxFQUFFRSxZQUFLLEVBQUUsSUFBSSxDQUFDO0VBQzVDO0VBQ0FILGlCQUFLLENBQUNDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRUcsY0FBUSxFQUFFLElBQUksQ0FBQztFQUNuREosaUJBQUssQ0FBQ0MsUUFBUSxDQUFDLGNBQWMsRUFBRUksVUFBSSxFQUFFLElBQUksQ0FBQztFQUMxQztFQUNBTCxpQkFBSyxDQUFDQyxRQUFRLENBQUMsZUFBZSxFQUFFSyxZQUFLLEVBQUUsSUFBSSxDQUFDO0VBQzVDTixpQkFBSyxDQUFDQyxRQUFRLENBQUMsZUFBZSxFQUFFTSx3QkFBVyxDQUFDO0VBQzVDUCxpQkFBSyxDQUFDQyxRQUFRLENBQUMsbUJBQW1CLEVBQUVPLGdDQUFlLENBQUM7O0VBRXBEO0VBQ0EsSUFBQUMsMkNBQXlCLEVBQUNULGlCQUFLLENBQUNVLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBQUFDLE9BQUEsQ0FBQVosYUFBQSxHQUFBQSxhQUFBO0FBRU0sTUFBTWEsdUJBQXVCLEdBQUFELE9BQUEsQ0FBQUMsdUJBQUEsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7O0FBRWhGO0FBQ08sTUFBTUMsaUJBQWlCLEdBQUdBLENBQUEsS0FBTTtFQUN0QyxNQUFNQyxZQUFZLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLE9BQU8sQ0FBQztFQUNwREYsWUFBWSxDQUFDRyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztFQUN6Q0gsWUFBWSxDQUFDRyxZQUFZLENBQUMsUUFBUSxFQUFFTCx1QkFBdUIsQ0FBQ00sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0VBQ3ZFLE9BQU9KLFlBQVk7QUFDcEIsQ0FBQztBQUFBSCxPQUFBLENBQUFFLGlCQUFBLEdBQUFBLGlCQUFBIiwiaWdub3JlTGlzdCI6W119
|