@corva/ui 3.78.0-9 → 3.78.0-rc.1
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/MCP_README.md +11 -3
- package/cjs-bundle/clients/api/apiCore.js +1 -1
- package/cjs-bundle/clients/api/apiCore.js.map +1 -1
- package/cjs-bundle/clients/subscriptions/socket-client.v2.js +1 -1
- package/cjs-bundle/clients/subscriptions/socket-client.v2.js.map +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-auth-recovery.js +2 -0
- package/cjs-bundle/clients/subscriptions/subscriptions-auth-recovery.js.map +1 -0
- package/cjs-bundle/clients/subscriptions/subscriptions-client.dummy.js +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-client.dummy.js.map +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-client.factory.js +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-client.factory.js.map +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-client.js +1 -1
- package/cjs-bundle/clients/subscriptions/subscriptions-client.js.map +1 -1
- package/cjs-bundle/components/AssetsMultipleSelector/AssetsMultipleSelector.js.map +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.js +1 -1
- package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/Input/Input.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/Input/Input.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.scss.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/utils.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/utils.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/Hotkey.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/Hotkey.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/CapsLock.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/CapsLock.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Command.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Command.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/LMB.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/LMB.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/MacControl.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/MacControl.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Option.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Option.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/RMB.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/RMB.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Shift.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Shift.js.map +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxLabel/RadioAndCheckboxLabel.scss.js +1 -1
- package/cjs-bundle/icons/customIcons/icons/Search.js.map +1 -1
- package/clients/api/apiCore.d.ts +2 -0
- package/clients/api/apiCore.d.ts.map +1 -1
- package/clients/api/apiCore.js +1 -1
- package/clients/api/apiCore.js.map +1 -1
- package/clients/subscriptions/__tests__/subscriptions-auth-recovery.test.d.ts +2 -0
- package/clients/subscriptions/__tests__/subscriptions-auth-recovery.test.d.ts.map +1 -0
- package/clients/subscriptions/socket-client.v2.d.ts +8 -0
- package/clients/subscriptions/socket-client.v2.d.ts.map +1 -1
- package/clients/subscriptions/socket-client.v2.js +1 -1
- package/clients/subscriptions/socket-client.v2.js.map +1 -1
- package/clients/subscriptions/subscriptions-auth-recovery.d.ts +53 -0
- package/clients/subscriptions/subscriptions-auth-recovery.d.ts.map +1 -0
- package/clients/subscriptions/subscriptions-auth-recovery.js +2 -0
- package/clients/subscriptions/subscriptions-auth-recovery.js.map +1 -0
- package/clients/subscriptions/subscriptions-client.d.ts +6 -1
- package/clients/subscriptions/subscriptions-client.d.ts.map +1 -1
- package/clients/subscriptions/subscriptions-client.dummy.d.ts +2 -1
- package/clients/subscriptions/subscriptions-client.dummy.d.ts.map +1 -1
- package/clients/subscriptions/subscriptions-client.dummy.js +1 -1
- package/clients/subscriptions/subscriptions-client.dummy.js.map +1 -1
- package/clients/subscriptions/subscriptions-client.factory.d.ts +8 -0
- package/clients/subscriptions/subscriptions-client.factory.d.ts.map +1 -1
- package/clients/subscriptions/subscriptions-client.factory.js +1 -1
- package/clients/subscriptions/subscriptions-client.factory.js.map +1 -1
- package/clients/subscriptions/subscriptions-client.js +1 -1
- package/clients/subscriptions/subscriptions-client.js.map +1 -1
- package/clients/subscriptions/types.d.ts +5 -0
- package/clients/subscriptions/types.d.ts.map +1 -1
- package/components/AssetsMultipleSelector/AssetsMultipleSelector.d.ts.map +1 -1
- package/components/AssetsMultipleSelector/AssetsMultipleSelector.js.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.d.ts.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/components/Drillstring/BHAComponentDetail/constants.d.ts +2 -2
- package/componentsV2/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/componentsV2/Autocomplete/Autocomplete.js +1 -1
- package/componentsV2/Autocomplete/Autocomplete.js.map +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/componentsV2/ColorPicker/ColorPicker.d.ts +3 -0
- package/componentsV2/ColorPicker/ColorPicker.d.ts.map +1 -1
- package/componentsV2/ColorPicker/ColorPicker.js +1 -1
- package/componentsV2/ColorPicker/ColorPicker.js.map +1 -1
- package/componentsV2/DatePicker/DatePickerNext.stories.d.ts.map +1 -1
- package/componentsV2/DatePicker/Input/Input.js +1 -1
- package/componentsV2/DatePicker/Input/Input.js.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.d.ts.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.scss.js +1 -1
- package/componentsV2/DatePicker/utils.js +1 -1
- package/componentsV2/DatePicker/utils.js.map +1 -1
- package/componentsV2/Hotkey/Hotkey.d.ts +4 -0
- package/componentsV2/Hotkey/Hotkey.d.ts.map +1 -1
- package/componentsV2/Hotkey/Hotkey.js +1 -1
- package/componentsV2/Hotkey/Hotkey.js.map +1 -1
- package/componentsV2/Hotkey/Hotkey.stories.d.ts +1 -0
- package/componentsV2/Hotkey/Hotkey.stories.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/CapsLock.d.ts +2 -0
- package/componentsV2/Hotkey/icons/CapsLock.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/CapsLock.js +2 -0
- package/componentsV2/Hotkey/icons/CapsLock.js.map +1 -0
- package/componentsV2/Hotkey/icons/Command.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Command.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Command.js +1 -1
- package/componentsV2/Hotkey/icons/Command.js.map +1 -1
- package/componentsV2/Hotkey/icons/LMB.d.ts +2 -0
- package/componentsV2/Hotkey/icons/LMB.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/LMB.js +2 -0
- package/componentsV2/Hotkey/icons/LMB.js.map +1 -0
- package/componentsV2/Hotkey/icons/MacControl.d.ts +2 -0
- package/componentsV2/Hotkey/icons/MacControl.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/MacControl.js +2 -0
- package/componentsV2/Hotkey/icons/MacControl.js.map +1 -0
- package/componentsV2/Hotkey/icons/Option.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Option.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Option.js +1 -1
- package/componentsV2/Hotkey/icons/Option.js.map +1 -1
- package/componentsV2/Hotkey/icons/RMB.d.ts +2 -0
- package/componentsV2/Hotkey/icons/RMB.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/RMB.js +2 -0
- package/componentsV2/Hotkey/icons/RMB.js.map +1 -0
- package/componentsV2/Hotkey/icons/Shift.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Shift.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Shift.js +1 -1
- package/componentsV2/Hotkey/icons/Shift.js.map +1 -1
- package/componentsV2/Hotkey/icons/index.d.ts +4 -0
- package/componentsV2/Hotkey/icons/index.d.ts.map +1 -1
- package/componentsV2/Hotkey/index.d.ts +1 -1
- package/componentsV2/Hotkey/index.d.ts.map +1 -1
- package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js +1 -1
- package/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js +1 -1
- package/componentsV2/RadioAndCheckboxLabel/RadioAndCheckboxLabel.scss.js +1 -1
- package/icons/customIcons/icons/Search.d.ts +1 -1
- package/icons/customIcons/icons/Search.js.map +1 -1
- package/mcp-server/server.mjs +887 -11002
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions-client.js","sources":["../../../src/clients/subscriptions/subscriptions-client.ts"],"sourcesContent":["import { Socket } from 'socket.io-client';\nimport { getHrefDebugField } from './constants';\nimport {\n SubcriptionsClient,\n SubscriptionsClientV2Events,\n SubscriptionsClientV2ServerEvents,\n AcknowledgeCb,\n OnDataReceive,\n OnConnectionChange,\n} from './types';\n\nexport class SubscriptionsClientV2 implements SubcriptionsClient {\n constructor(\n private readonly _socket: Socket
|
|
1
|
+
{"version":3,"file":"subscriptions-client.js","sources":["../../../src/clients/subscriptions/subscriptions-client.ts"],"sourcesContent":["import { Socket } from 'socket.io-client';\nimport { getHrefDebugField } from './constants';\nimport { SocketAuthRecovery } from './subscriptions-auth-recovery';\nimport {\n SubcriptionsClient,\n SubscriptionsClientV2Events,\n SubscriptionsClientV2ServerEvents,\n AcknowledgeCb,\n OnDataReceive,\n OnConnectionChange,\n} from './types';\n\nexport class SubscriptionsClientV2 implements SubcriptionsClient {\n /** Listeners this client put on the Manager; `socket.removeAllListeners()` does not reach those. */\n private readonly _managerListeners = new Set<() => void>();\n\n constructor(\n // Keep the name: corva-web-frontend's Sentry integration reaches the raw socket through it.\n private readonly _socket: Socket<\n SubscriptionsClientV2Events,\n SubscriptionsClientV2ServerEvents\n >,\n private readonly _recovery?: SocketAuthRecovery\n ) {}\n\n subscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb) {\n this._validateArgs(channel, onData, ack);\n\n this._socket.on(`data#${channel}`, onData);\n\n this._emit('subscribe', channel, ack);\n\n const unsubscribe = () => this.unsubscribe(channel, onData, ack);\n\n Object.defineProperty(unsubscribe, 'name', {\n value: `unsubscribe_${channel.replace(/[^\\w]/g, '_')}`,\n writable: false,\n });\n\n return unsubscribe;\n }\n\n unsubscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb) {\n this._validateArgs(channel, onData, ack);\n\n this._emit('unsubscribe', channel, ack);\n\n this._socket.off(`data#${channel}`, onData);\n }\n\n disconnect() {\n this._recovery?.dispose();\n this._socket.disconnect();\n this._socket.removeAllListeners();\n this._managerListeners.forEach(listener => this._socket.io?.off('reconnect_attempt', listener));\n this._managerListeners.clear();\n\n return this;\n }\n\n ensureConnected() {\n if (this._recovery) {\n this._recovery.ensureConnected();\n return;\n }\n\n if (!this._socket.connected && !this._socket.active) {\n this._socket.connect();\n }\n }\n\n onConnectionChange: (handler: OnConnectionChange) => () => void = handler => {\n const onConnect = () => handler({ status: 'connected' });\n const onDisconnect = (reason?: string) => handler({ status: 'disconnected', reason });\n const onReconnectAttempt = () => handler({ status: 'reconnecting' });\n const onConnectError = (err?: any) =>\n handler({ status: 'error', reason: err?.message || String(err) });\n\n // Reconnection events belong to the Manager (`socket.io`), not the Socket: a `reconnect*`\n // listener on the Socket never fires in socket.io v4.\n const manager = this._socket.io;\n\n this._socket.on('connect', onConnect as any);\n this._socket.on('disconnect', onDisconnect as any);\n manager?.on('reconnect_attempt', onReconnectAttempt);\n this._managerListeners.add(onReconnectAttempt);\n this._socket.on('connect_error', onConnectError as any);\n\n return () => {\n this._socket.off('connect', onConnect as any);\n this._socket.off('disconnect', onDisconnect as any);\n manager?.off('reconnect_attempt', onReconnectAttempt);\n this._managerListeners.delete(onReconnectAttempt);\n this._socket.off('connect_error', onConnectError as any);\n };\n };\n\n private _validateArgs(channel: unknown, onData: unknown, ack?: unknown) {\n if (typeof channel !== 'string' || !channel) {\n throw new Error('Channel must be a non-empty string');\n }\n if (typeof onData !== 'function') {\n throw new Error('onData handler must be a function');\n }\n\n if (ack !== undefined && typeof ack !== 'function') {\n throw new Error('ack must be a function');\n }\n }\n\n private _shouldEmitToServer(channel: string) {\n // emit when the only present listener is a current one\n return this._socket.listeners(`data#${channel}`).length === 1;\n }\n\n private _emit(event: 'subscribe' | 'unsubscribe', channel: string, ack?: AcknowledgeCb) {\n if (!this._shouldEmitToServer(channel)) {\n return ack?.();\n }\n\n if (!ack) {\n this._socket.emit(event, { channel, ...getHrefDebugField() });\n\n return;\n }\n\n void this._socket.emitWithAck(\n event,\n { channel, ...getHrefDebugField() },\n (res: { ok: boolean; error?: string }) => {\n if (res.ok) {\n return ack();\n }\n\n return ack(new Error(`Failed to ${event} to channel ${channel}: ${res.error}`));\n }\n );\n }\n}\n"],"names":["SubscriptionsClientV2","_socket","_recovery","_this","this","_classCallCheck","_defineProperty","Set","handler","onConnect","status","onDisconnect","reason","onReconnectAttempt","onConnectError","err","message","String","manager","io","on","_managerListeners","add","off","delete","_createClass","key","value","channel","onData","ack","_this2","_validateArgs","_emit","unsubscribe","Object","defineProperty","concat","replace","writable","_this$_recovery","_this3","dispose","disconnect","removeAllListeners","forEach","listener","_this3$_socket$io","clear","ensureConnected","connected","active","connect","Error","undefined","listeners","length","event","_shouldEmitToServer","emitWithAck","_objectSpread","getHrefDebugField","res","ok","error","emit"],"mappings":"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"}
|
|
@@ -35,6 +35,11 @@ export interface SubcriptionsClient {
|
|
|
35
35
|
subscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): () => void;
|
|
36
36
|
unsubscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): void;
|
|
37
37
|
disconnect(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Reconnect if the socket has given up (after an auth rejection, or a manual disconnect). No-op
|
|
40
|
+
* while connected or while socket.io is already retrying. Call when the tab becomes visible.
|
|
41
|
+
*/
|
|
42
|
+
ensureConnected(): void;
|
|
38
43
|
onConnectionChange(handler: OnConnectionChange): () => void;
|
|
39
44
|
}
|
|
40
45
|
export type ConnectionStatus = 'connected' | 'disconnected' | 'reconnecting' | 'error';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,KAAK,EAAE,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC;CAChC;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,CACT,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1D,GAAG,CAAC,EAAE,aAAa,KAChB,IAAI,CAAC;IACV,WAAW,EAAE,CACX,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1D,GAAG,CAAC,EAAE,aAAa,KAChB,IAAI,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,IAAI,CAAC;IACzF,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrF,UAAU,IAAI,IAAI,CAAC;IACnB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAC;CAC7D;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,OAAO,CAAC;AACvF,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/clients/subscriptions/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,KAAK,EAAE,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC;CAChC;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,CACT,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1D,GAAG,CAAC,EAAE,aAAa,KAChB,IAAI,CAAC;IACV,WAAW,EAAE,CACX,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1D,GAAG,CAAC,EAAE,aAAa,KAChB,IAAI,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,IAAI,CAAC;IACzF,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrF,UAAU,IAAI,IAAI,CAAC;IACnB;;;OAGG;IACH,eAAe,IAAI,IAAI,CAAC;IACxB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAC;CAC7D;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,OAAO,CAAC;AACvF,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsMultipleSelector.d.ts","sourceRoot":"","sources":["../../../src/components/AssetsMultipleSelector/AssetsMultipleSelector.tsx"],"names":[],"mappings":"AAwCA,KAAK,KAAK,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpE,MAAM,MAAM,2BAA2B,GAAG;IACxC;;OAEG;IACH,cAAc,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;IAC7B;;MAEE;IACF,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC;;MAEE;IACF,KAAK,EAAE,MAAM,CAAC;IACd;;MAEE;IACF,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAC;IACrF;;MAEE;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;MAEE;IACF,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACnD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,CAAC;IACF;;MAEE;IACF,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,CAAC;AAEF,QAAA,MAAM,sBAAsB,iIASvB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"AssetsMultipleSelector.d.ts","sourceRoot":"","sources":["../../../src/components/AssetsMultipleSelector/AssetsMultipleSelector.tsx"],"names":[],"mappings":"AAwCA,KAAK,KAAK,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpE,MAAM,MAAM,2BAA2B,GAAG;IACxC;;OAEG;IACH,cAAc,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;IAC7B;;MAEE;IACF,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC;;MAEE;IACF,KAAK,EAAE,MAAM,CAAC;IACd;;MAEE;IACF,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAC;IACrF;;MAEE;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;MAEE;IACF,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACnD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,CAAC;IACF;;MAEE;IACF,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,CAAC;AAEF,QAAA,MAAM,sBAAsB,iIASvB,2BAA2B,6CAyI/B,CAAC;eAEa,sBAAsB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsMultipleSelector.js","sources":["../../../src/components/AssetsMultipleSelector/AssetsMultipleSelector.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\nimport { sortBy } from 'lodash';\n\nimport { Search } from '../Search';\n\nimport { mapAssetGetRequest } from '~/clients/jsonApi';\nimport { jsonaDataFormatter } from '~/utils';\nimport useLoadedData from '~/effects/useLoadedData';\n\nconst useStyles = makeStyles(theme => ({\n listbox: {\n maxHeight: 360,\n },\n paper: {\n width: 364,\n },\n footer: {\n fontSize: 12,\n color: theme.palette.primary.text6,\n lineHeight: '16.872px',\n padding: '8px 16px',\n },\n}));\n\nconst getDataFromResponseFn = (response: {\n data: unknown;\n headers?: { get(name: string): string | null };\n}) => {\n return {\n data: jsonaDataFormatter.deserialize(response.data as string) as Asset[],\n total: Number(response.headers?.get('total')) || 0,\n };\n};\nconst initialSelectedAssets: Asset[] = [];\nconst defaultQueryParams = {};\nconst DEFAULT_ASSETS_PER_PAGE = 50;\nconst initialData: { data: Asset[]; total: number } = { data: [], total: 0 };\n\ntype Asset = { id: string; name: string } & Record<string, unknown>;\nexport type AssetsMultipleSelectorProps = {\n /**\n array of asset objects with required id and name fields.\n */\n selectedAssets: [] | Asset[];\n /**\n callback fires on asset selection with array of all selected assets.\n */\n onChange: (assets: Asset[] | []) => void;\n /**\n label for autocomplete input.\n */\n label: string;\n /**\n type of asset.\n */\n type: 'program' | 'rig' | 'well' | 'frac_fleet' | 'drillout_unit' | 'pad' | 'assets';\n /**\n css for root component.\n */\n className?: string;\n /**\n custom query params for assets request like fields, per_page.\n */\n customRequestQueryParams?: Record<string, unknown> & {\n fields?: string[];\n per_page?: number | string;\n };\n /**\n material ui autocomplete classes.\n */\n classes?: any;\n};\n\nconst AssetsMultipleSelector = memo(\n ({\n selectedAssets = initialSelectedAssets,\n onChange,\n label,\n className,\n type,\n customRequestQueryParams,\n classes = {},\n }: AssetsMultipleSelectorProps) => {\n const styles = useStyles();\n\n const { isLoading, setIsLoading, data, loadData } = useLoadedData({\n loadFn: mapAssetGetRequest(type, true),\n initialData: initialData as any,\n getDataFromResponseFn,\n isCacheEnabled: true,\n });\n const { data: assetsData, total } = data ?? initialData;\n const [searchValue, setSearchValue] = useState('');\n\n useEffect(() => {\n loadAssets('', customRequestQueryParams);\n }, []);\n\n const selectedOptions: AssetsMultipleSelectorProps['selectedAssets'] & {} = useMemo(\n () =>\n selectedAssets.map(asset => ({\n ...asset,\n id: asset.id,\n label: asset.name,\n })),\n [selectedAssets]\n );\n\n const options: (Asset & { label: string })[] = useMemo(() => {\n const optionsMap: Record<string, Asset & { label: string }> = {};\n const allOptions = selectedOptions.length ? assetsData.concat(selectedOptions) : assetsData;\n allOptions.forEach((asset: Asset) => {\n optionsMap[asset.id] = {\n ...asset,\n id: asset.id,\n label: asset.name,\n };\n });\n\n return Object.values(sortBy(optionsMap, 'label'));\n }, [assetsData, selectedAssets, searchValue]);\n\n const loadAssets = useCallback(\n (\n search: string,\n customRequestQueryParams: AssetsMultipleSelectorProps['customRequestQueryParams'] = {}\n ) => {\n const params = {\n ...defaultQueryParams,\n per_page: DEFAULT_ASSETS_PER_PAGE,\n ...customRequestQueryParams,\n fields: [`${type}.name`].concat(customRequestQueryParams?.fields || []),\n };\n\n loadData({\n search,\n ...params,\n });\n },\n []\n );\n\n const handleChange = (_event: unknown, visibleSelectedOptions: Asset[], reason?: string) => {\n if (reason === 'reset') return;\n\n const newAssets = visibleSelectedOptions.map(option => {\n return {\n ...option,\n name: option.label as string,\n };\n });\n\n onChange(newAssets);\n };\n\n const onInputReset = () => {\n setSearchValue('');\n loadAssets('', customRequestQueryParams);\n };\n\n const handleInputChange = (value: string, reason: string) => {\n if (reason === 'reset' || value === '') {\n onInputReset();\n return;\n }\n\n if (value.trimStart() !== searchValue) {\n setSearchValue(value.trimStart());\n setIsLoading(true);\n loadAssets(value.trimStart(), customRequestQueryParams);\n }\n };\n\n const countNotShowedAssets = () => {\n const optionsCount = total - assetsData?.length;\n if (optionsCount === 0) return null;\n\n return optionsCount;\n };\n\n const paperFooter = useMemo(() => {\n const notShowedAssetsQuantity = countNotShowedAssets();\n return notShowedAssetsQuantity && !isLoading && searchValue ? (\n <div className={styles.footer}>\n {notShowedAssetsQuantity} additional items not displayed. Continue typing for more refined\n results.\n </div>\n ) : null;\n }, [assetsData, isLoading, !!searchValue, total]);\n\n const { listbox, paper, ...restClasses } = classes;\n\n return (\n <Search\n data-testid=\"offsetPadDropdown\"\n value={selectedOptions}\n onChange={handleChange}\n TextFieldProps={{ label }}\n // @ts-ignore\n className={className}\n classes={{\n listbox: classnames(styles.listbox, listbox),\n paper: classnames(styles.paper, paper),\n ...restClasses,\n }}\n loading={isLoading}\n options={options}\n placeholder=\"\"\n multiple\n filterSelectedOptions={false}\n AutocompleteProps={{ forcePopupIcon: true }}\n isHiddenAllOption\n onInputChangeCallback={handleInputChange}\n onInputReset={onInputReset}\n paperFooter={paperFooter}\n getOptionSelected={(option, value) => +option.id === +value.id}\n isPrioritizedSelectedOptions\n />\n );\n }\n);\n\nexport default AssetsMultipleSelector;\n"],"names":["useStyles","makeStyles","theme","listbox","maxHeight","paper","width","footer","fontSize","color","palette","primary","text6","lineHeight","padding","getDataFromResponseFn","response","_response$headers","data","jsonaDataFormatter","deserialize","total","Number","headers","get","initialSelectedAssets","defaultQueryParams","initialData","AssetsMultipleSelector","memo","_ref","_ref$selectedAssets","selectedAssets","onChange","label","className","type","customRequestQueryParams","_ref$classes","classes","styles","_useLoadedData","useLoadedData","loadFn","mapAssetGetRequest","isCacheEnabled","isLoading","setIsLoading","loadData","_ref2","assetsData","useState","_useState2","_slicedToArray","_useState","searchValue","setSearchValue","useEffect","loadAssets","selectedOptions","useMemo","map","asset","_objectSpread","id","name","options","optionsMap","length","concat","forEach","Object","values","sortBy","useCallback","search","arguments","undefined","params","per_page","fields","onInputReset","paperFooter","optionsCount","notShowedAssetsQuantity","_jsxs","children","restClasses","_excluded","_jsx","Search","value","_event","visibleSelectedOptions","reason","newAssets","option","TextFieldProps","classnames","loading","placeholder","multiple","filterSelectedOptions","AutocompleteProps","forcePopupIcon","isHiddenAllOption","onInputChangeCallback","trimStart","getOptionSelected","isPrioritizedSelectedOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetsMultipleSelector.js","sources":["../../../src/components/AssetsMultipleSelector/AssetsMultipleSelector.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\nimport { sortBy } from 'lodash';\n\nimport { Search } from '../Search';\n\nimport { mapAssetGetRequest } from '~/clients/jsonApi';\nimport { jsonaDataFormatter } from '~/utils';\nimport useLoadedData from '~/effects/useLoadedData';\n\nconst useStyles = makeStyles(theme => ({\n listbox: {\n maxHeight: 360,\n },\n paper: {\n width: 364,\n },\n footer: {\n fontSize: 12,\n color: theme.palette.primary.text6,\n lineHeight: '16.872px',\n padding: '8px 16px',\n },\n}));\n\nconst getDataFromResponseFn = (response: {\n data: unknown;\n headers?: { get(name: string): string | null };\n}) => {\n return {\n data: jsonaDataFormatter.deserialize(response.data as string) as Asset[],\n total: Number(response.headers?.get('total')) || 0,\n };\n};\nconst initialSelectedAssets: Asset[] = [];\nconst defaultQueryParams = {};\nconst DEFAULT_ASSETS_PER_PAGE = 50;\nconst initialData: { data: Asset[]; total: number } = { data: [], total: 0 };\n\ntype Asset = { id: string; name: string } & Record<string, unknown>;\nexport type AssetsMultipleSelectorProps = {\n /**\n array of asset objects with required id and name fields.\n */\n selectedAssets: [] | Asset[];\n /**\n callback fires on asset selection with array of all selected assets.\n */\n onChange: (assets: Asset[] | []) => void;\n /**\n label for autocomplete input.\n */\n label: string;\n /**\n type of asset.\n */\n type: 'program' | 'rig' | 'well' | 'frac_fleet' | 'drillout_unit' | 'pad' | 'assets';\n /**\n css for root component.\n */\n className?: string;\n /**\n custom query params for assets request like fields, per_page.\n */\n customRequestQueryParams?: Record<string, unknown> & {\n fields?: string[];\n per_page?: number | string;\n };\n /**\n material ui autocomplete classes.\n */\n classes?: any;\n};\n\nconst AssetsMultipleSelector = memo(\n ({\n selectedAssets = initialSelectedAssets,\n onChange,\n label,\n className,\n type,\n customRequestQueryParams,\n classes = {},\n }: AssetsMultipleSelectorProps) => {\n const styles = useStyles();\n\n const { isLoading, setIsLoading, data, loadData } = useLoadedData({\n loadFn: mapAssetGetRequest(type, true),\n initialData: initialData as any,\n getDataFromResponseFn,\n isCacheEnabled: true,\n });\n const { data: assetsData, total } = data ?? initialData;\n const [searchValue, setSearchValue] = useState('');\n\n useEffect(() => {\n loadAssets('', customRequestQueryParams);\n }, []);\n\n const selectedOptions: AssetsMultipleSelectorProps['selectedAssets'] & {} = useMemo(\n () =>\n selectedAssets.map(asset => ({\n ...asset,\n id: asset.id,\n label: asset.name,\n })),\n [selectedAssets]\n );\n\n const options: (Asset & { label: string })[] = useMemo(() => {\n const optionsMap: Record<string, Asset & { label: string }> = {};\n const allOptions = selectedOptions.length ? assetsData.concat(selectedOptions) : assetsData;\n allOptions.forEach((asset: Asset) => {\n optionsMap[asset.id] = {\n ...asset,\n id: asset.id,\n label: asset.name,\n };\n });\n\n return Object.values(sortBy(optionsMap, 'label'));\n }, [assetsData, selectedAssets, searchValue]);\n\n const loadAssets = useCallback(\n (\n search: string,\n customRequestQueryParams: AssetsMultipleSelectorProps['customRequestQueryParams'] = {}\n ) => {\n const params = {\n ...defaultQueryParams,\n per_page: DEFAULT_ASSETS_PER_PAGE,\n ...customRequestQueryParams,\n fields: [`${type}.name`].concat(customRequestQueryParams?.fields || []),\n };\n\n loadData({\n search,\n ...params,\n });\n },\n []\n );\n\n const handleChange = (_event: unknown, visibleSelectedOptions: Asset[], reason?: string) => {\n if (reason === 'reset') return;\n\n const newAssets = visibleSelectedOptions.map(option => {\n return {\n ...option,\n name: option.label as string,\n };\n });\n\n onChange(newAssets);\n };\n\n const onInputReset = () => {\n setSearchValue('');\n loadAssets('', customRequestQueryParams);\n };\n\n const handleInputChange = (value: string, reason: string) => {\n if (reason === 'reset' || value === '') {\n onInputReset();\n return;\n }\n\n if (value.trimStart() !== searchValue) {\n setSearchValue(value.trimStart());\n setIsLoading(true);\n loadAssets(value.trimStart(), customRequestQueryParams);\n }\n };\n\n const countNotShowedAssets = () => {\n const optionsCount = total - assetsData?.length;\n if (optionsCount === 0) return null;\n\n return optionsCount;\n };\n\n const paperFooter = useMemo(() => {\n const notShowedAssetsQuantity = countNotShowedAssets();\n return notShowedAssetsQuantity && !isLoading && searchValue ? (\n <div className={styles.footer}>\n {notShowedAssetsQuantity} additional items not displayed. Continue typing for more refined\n results.\n </div>\n ) : null;\n }, [assetsData, isLoading, !!searchValue, total]);\n\n const { listbox, paper, ...restClasses } = classes;\n\n return (\n <Search\n data-testid=\"offsetPadDropdown\"\n value={selectedOptions}\n onChange={handleChange}\n TextFieldProps={{ label }}\n className={className}\n classes={{\n listbox: classnames(styles.listbox, listbox),\n paper: classnames(styles.paper, paper),\n ...restClasses,\n }}\n loading={isLoading}\n options={options}\n placeholder=\"\"\n multiple\n filterSelectedOptions={false}\n AutocompleteProps={{ forcePopupIcon: true }}\n isHiddenAllOption\n onInputChangeCallback={handleInputChange}\n onInputReset={onInputReset}\n paperFooter={paperFooter}\n getOptionSelected={(option, value) => +option.id === +value.id}\n isPrioritizedSelectedOptions\n />\n );\n }\n);\n\nexport default AssetsMultipleSelector;\n"],"names":["useStyles","makeStyles","theme","listbox","maxHeight","paper","width","footer","fontSize","color","palette","primary","text6","lineHeight","padding","getDataFromResponseFn","response","_response$headers","data","jsonaDataFormatter","deserialize","total","Number","headers","get","initialSelectedAssets","defaultQueryParams","initialData","AssetsMultipleSelector","memo","_ref","_ref$selectedAssets","selectedAssets","onChange","label","className","type","customRequestQueryParams","_ref$classes","classes","styles","_useLoadedData","useLoadedData","loadFn","mapAssetGetRequest","isCacheEnabled","isLoading","setIsLoading","loadData","_ref2","assetsData","useState","_useState2","_slicedToArray","_useState","searchValue","setSearchValue","useEffect","loadAssets","selectedOptions","useMemo","map","asset","_objectSpread","id","name","options","optionsMap","length","concat","forEach","Object","values","sortBy","useCallback","search","arguments","undefined","params","per_page","fields","onInputReset","paperFooter","optionsCount","notShowedAssetsQuantity","_jsxs","children","restClasses","_excluded","_jsx","Search","value","_event","visibleSelectedOptions","reason","newAssets","option","TextFieldProps","classnames","loading","placeholder","multiple","filterSelectedOptions","AutocompleteProps","forcePopupIcon","isHiddenAllOption","onInputChangeCallback","trimStart","getOptionSelected","isPrioritizedSelectedOptions"],"mappings":"ivFAWA,IAAMA,EAAYC,GAAW,SAAAC,GAAK,MAAK,CACrCC,QAAS,CACPC,UAAW,KAEbC,MAAO,CACLC,MAAO,KAETC,OAAQ,CACNC,SAAU,GACVC,MAAOP,EAAMQ,QAAQC,QAAQC,MAC7BC,WAAY,WACZC,QAAS,YAEZ,IAEKC,EAAwB,SAACC,GAGzB,IAAAC,EACJ,MAAO,CACLC,KAAMC,EAAmBC,YAAYJ,EAASE,MAC9CG,MAAOC,OAAO,QAAAN,EAAAA,EAASO,eAAT,IAAAN,OAAA,EAAAA,EAAkBO,IAAI,WAAa,EAErD,EACMC,EAAiC,GACjCC,EAAqB,CAAA,EAErBC,EAAgD,CAAET,KAAM,GAAIG,MAAO,GAqCnEO,EAAyBC,GAC7B,SAQmCC,GAAA,IAAAC,EAAAD,EAPjCE,eAAAA,aAAiBP,EAAqBM,EACtCE,IAAAA,SACAC,IAAAA,MACAC,IAAAA,UACAC,IAAAA,KACAC,IAAAA,yBAAwBC,EAAAR,EACxBS,QAAAA,OAAO,IAAAD,EAAG,CAAA,EAAEA,EAENE,EAASxC,IAEfyC,EAAoDC,EAAc,CAChEC,OAAQC,EAAmBR,GAAM,GACjCT,YAAaA,EACbZ,sBAAAA,EACA8B,gBAAgB,IAJVC,IAAAA,UAAWC,IAAAA,aAAc7B,IAAAA,KAAM8B,IAAAA,SAMvCC,EAAoC/B,QAAAA,EAAQS,EAA9BuB,IAANhC,KAAkBG,IAAAA,MACY8B,EAAAA,EAAS,IAAGC,EAAAC,EAAAC,EAAA,GAA3CC,EAAWH,EAAA,GAAEI,EAAcJ,EAAA,GAElCK,GAAU,WACRC,EAAW,GAAIrB,EAChB,GAAE,IAEH,IAAMsB,EAAsEC,GAC1E,WAAA,OACE5B,EAAe6B,KAAI,SAAAC,GAAK,OAAAC,EAAAA,EAAA,CAAA,EACnBD,GAAK,CAAA,EAAA,CACRE,GAAIF,EAAME,GACV9B,MAAO4B,EAAMG,MAAI,MAErB,CAACjC,IAGGkC,EAAyCN,GAAQ,WACrD,IAAMO,EAAwD,CAAA,EAU9D,OATmBR,EAAgBS,OAASlB,EAAWmB,OAAOV,GAAmBT,GACtEoB,SAAQ,SAACR,GAClBK,EAAWL,EAAME,WACZF,GAAK,GAAA,CACRE,GAAIF,EAAME,GACV9B,MAAO4B,EAAMG,MAEjB,IAEOM,OAAOC,OAAOC,EAAON,EAAY,SACzC,GAAE,CAACjB,EAAYlB,EAAgBuB,IAE1BG,EAAagB,GACjB,SACEC,GAEG,IADHtC,EAAoFuC,UAAAR,OAAA,QAAAS,IAAAD,UAAA,GAAAA,UAAA,GAAA,CAAA,EAE9EE,WACDpD,GAAkB,GAAA,CACrBqD,SA9FsB,IA+FnB1C,GAAwB,GAAA,CAC3B2C,OAAQ,CAAI5C,GAAAA,OAAAA,EAAY,UAACiC,QAAOhC,aAAAA,EAAAA,EAA0B2C,SAAU,MAGtEhC,EAAQe,EAAA,CACNY,OAAAA,GACGG,GAEN,GACD,IAgBIG,EAAe,WACnBzB,EAAe,IACfE,EAAW,GAAIrB,IAuBX6C,EAActB,GAAQ,WAC1B,IAPMuB,EAOAC,EANe,KADfD,EAAe9D,GAAQ6B,aAAU,EAAVA,EAAYkB,SACV,KAExBe,EAKP,OAAOC,IAA4BtC,GAAaS,EAC9C8B,EAAA,MAAA,CAAKlD,UAAWK,EAAOjC,OAAO+E,SAAA,CAC3BF,EAAuB,gFAGxB,IACN,GAAG,CAAClC,EAAYJ,IAAaS,EAAalC,IAElClB,EAAmCoC,EAAnCpC,QAASE,EAA0BkC,EAA1BlC,MAAUkF,IAAgBhD,EAAOiD,GAElD,OACEC,EAACC,EAAM,CACL,cAAY,oBACZC,MAAOhC,EACP1B,SAtDiB,SAAC2D,EAAiBC,EAAiCC,GACtE,GAAe,UAAXA,EAAJ,CAEA,IAAMC,EAAYF,EAAuBhC,KAAI,SAAAmC,GAC3C,OAAAjC,EAAAA,EAAA,CAAA,EACKiC,GAAM,CAAA,EAAA,CACT/B,KAAM+B,EAAO9D,OAEjB,IAEAD,EAAS8D,EATe,GAsDtBE,eAAgB,CAAE/D,MAAAA,GAClBC,UAAWA,EACXI,QAAOwB,EAAA,CACL5D,QAAS+F,EAAW1D,EAAOrC,QAASA,GACpCE,MAAO6F,EAAW1D,EAAOnC,MAAOA,IAC7BkF,GAELY,QAASrD,EACToB,QAASA,EACTkC,YAAY,GACZC,UAAQ,EACRC,uBAAuB,EACvBC,kBAAmB,CAAEC,gBAAgB,GACrCC,mBAAiB,EACjBC,sBAnDsB,SAACf,EAAeG,GACzB,UAAXA,GAAgC,KAAVH,EAKtBA,EAAMgB,cAAgBpD,IACxBC,EAAemC,EAAMgB,aACrB5D,GAAa,GACbW,EAAWiC,EAAMgB,YAAatE,IAP9B4C,KAkDAA,aAAcA,EACdC,YAAaA,EACb0B,kBAAmB,SAACZ,EAAQL,GAAK,OAAMK,EAAOhC,KAAQ2B,EAAM3B,EAAG,EAC/D6C,8BAA4B,GAGlC"}
|
package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedAppPage.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,YAAY,CAAC;AAmBnC,OAAO,uBAAuB,CAAC;AAoB/B;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,eAAsB,EACtB,cAAqB,EACrB,wBAA+B,GAChC;;;;CAAA,+
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedAppPage.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,YAAY,CAAC;AAmBnC,OAAO,uBAAuB,CAAC;AAoB/B;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,eAAsB,EACtB,cAAqB,EACrB,wBAA+B,GAChC;;;;CAAA,+BAuGA;yBA3Ge,wBAAwB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/objectWithoutProperties";import{makeStyles as i}from"@material-ui/core";import n from"classnames";import t from"moment-timezone";import c from"prop-types";import{useLayoutEffect as r,useEffect as e}from"react";import{MemoryRouter as m}from"react-router-dom";import{ISOLATED_PAGE_APP_CONTAINER_ID as p}from"./constants.js";import{useXProps as a}from"./effects/useXProps.js";import{getDashboardCapturingHandler as l}from"./utils/dashboardCapturing.js";import{replaceUndefinedValuesWithNull as u}from"./utils/replaceUndefinedValuesWithNull.js";import{LOCAL_STORAGE_APP_THEME_KEY as j}from"../../../CLI/hocs/constants.js";import{isPDFReportView as I}from"../../../CLI/hocs/utils.js";import"@babel/runtime/helpers/toConsumableArray";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../clients/jsonApi/index.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../clients/api/apiCore.js";import"../../../clients/constants.js";import"../../../clients/sso/auth0.js";import"../../../clients/sso/oauth2.js";import{apiRequestsRateLimiter as d}from"../../../clients/api/rateLimiter.js";import f from"../AppContext.js";import C from"../DevCenterAppContainer/DevCenterAppContainer.js";import{IsInsideIsolatedDcAppProvider as h}from"../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js";import{THEMES as b}from"../../../constants/theme.js";import g from"../../../hocs/withMUIProvidersHOC.js";import"../../../hocs/withAssetEditorLockHOC.js";import"@icon-park/react/es/all";import{jsx as v}from"react/jsx-runtime";import{IconParkProvider as O}from"../../../icons/IconParkProvider.js";import"../../../icons/customIcons/icons/AddMessage.js";import"../../../icons/customIcons/icons/DragOne.js";import"../../../icons/customIcons/icons/Attention.js";import"../../../icons/customIcons/icons/Collapse.js";import"../../../icons/customIcons/icons/Dashboard.js";import"../../../icons/customIcons/icons/Expand.js";import"../../../icons/customIcons/icons/FolderClosed.js";import"../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../icons/customIcons/icons/FolderOpened.js";import"../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../icons/customIcons/icons/LessOrEqual.js";import"../../../icons/customIcons/icons/Search.js";import"../../../icons/customIcons/icons/SearchOne.js";import"../../../icons/customIcons/icons/Wellhub.js";import"../../../icons/customIcons/icons/MultiRuler.js";import"../../../icons/customIcons/icons/Checkbox.js";import"../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../icons/customIcons/icons/Radio.js";import"../../../icons/customIcons/icons/RadioChecked.js";import"../../../icons/customIcons/icons/SimulFrac.js";import"../../../icons/customIcons/icons/ZipperFrac.js";import"../../../icons/customIcons/icons/CautionFilled.js";import"../../../icons/customIcons/icons/InfoRounded.js";import"../../../icons/customIcons/icons/FlameFilled.js";import"../../../icons/customIcons/icons/MoreApp.js";import"../../../icons/customIcons/icons/Pad.js";import"../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../icons/customIcons/icons/FracFleet.js";import"../../../icons/customIcons/icons/Global.js";import"../../../icons/customIcons/icons/Program.js";import"../../../icons/customIcons/icons/Rig.js";import"../../../icons/customIcons/icons/Well.js";import"../../../icons/customIcons/icons/Gap.js";import"../../../icons/customIcons/icons/Pin.js";import"../../../icons/customIcons/icons/PinOne.js";import"../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../icons/customIcons/icons/AttentionFilled.js";import"../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../icons/customIcons/icons/Archive.js";import"../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../icons/customIcons/icons/Unarchive.js";import"../../../icons/customIcons/icons/Archived.js";import"../../../icons/customIcons/icons/InterventionUnit.js";import"../../../icons/customIcons/icons/CloudDelete.js";import"../../../icons/customIcons/icons/Lasso.js";import"../../../icons/customIcons/icons/Radius.js";import"../../../icons/customIcons/icons/ErrorOps.js";import"../../../icons/customIcons/icons/DataTypeOps.js";import"../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../icons/customIcons/icons/CalibrationOps.js";import"../../../icons/customIcons/icons/CriticalOps.js";import"../../../icons/customIcons/icons/Company.js";import"../../../icons/customIcons/icons/ArchiveOne.js";import"../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../icons/customIcons/icons/Connect.js";import"../../../icons/customIcons/icons/PuzzleOne.js";import"../../../icons/customIcons/icons/Feed.js";import"../../../icons/customIcons/icons/Prompt.js";import"../../../icons/customIcons/icons/Companies.js";import"../../../icons/customIcons/icons/ClipboardAi.js";import"../../../icons/customIcons/icons/Key.js";import"../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../icons/customIcons/icons/MappingManual.js";import"../../../icons/customIcons/icons/Mapping.js";import"../../../icons/customIcons/icons/Metrics.js";import"../../../icons/customIcons/icons/Drops.js";import"../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../icons/customIcons/icons/Template.js";import"../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../icons/customIcons/icons/UnitConversion.js";import"../../../icons/customIcons/icons/NPT.js";import"../../../icons/customIcons/icons/GuidedFrac.js";import{PermissionsContext as A}from"../../../permissions/PermissionsContext.js";import"../../../styles/iconPark.global.css.js";import"../../../styles/index.global.css.js";import"../../../styles/reactVirtualized.global.css.js";import"../../../styles/emojiMart.global.css.js";import"../../../styles/mapbox.global.css.js";import"../../../styles/lightbox.global.css.js";import"../../../styles/generatedThemesVariables.global.css.js";import"../../../styles/customScrollbars.global.css.js";import{updateUserUnits as P}from"../../../utils/index.js";import{setThemeVariables as y}from"../../../utils/themeVariables.js";var x=["appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException"];function L(o,s){var i=Object.keys(o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(o);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),i.push.apply(i,n)}return i}function S(s){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?L(Object(n),!0).forEach((function(i){o(s,i,n[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))}))}return s}var w=g(C),D=i((function(){return{"@global":{body:{backgroundColor:"transparent",overflow:"hidden"}}}}));function F(o){var i,c,C,g,L,F,
|
|
1
|
+
import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/objectWithoutProperties";import{makeStyles as i}from"@material-ui/core";import n from"classnames";import t from"moment-timezone";import c from"prop-types";import{useLayoutEffect as r,useEffect as e}from"react";import{MemoryRouter as m}from"react-router-dom";import{ISOLATED_PAGE_APP_CONTAINER_ID as p}from"./constants.js";import{useXProps as a}from"./effects/useXProps.js";import{getDashboardCapturingHandler as l}from"./utils/dashboardCapturing.js";import{replaceUndefinedValuesWithNull as u}from"./utils/replaceUndefinedValuesWithNull.js";import{LOCAL_STORAGE_APP_THEME_KEY as j}from"../../../CLI/hocs/constants.js";import{isPDFReportView as I}from"../../../CLI/hocs/utils.js";import"@babel/runtime/helpers/toConsumableArray";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../clients/jsonApi/index.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../clients/api/apiCore.js";import"../../../clients/constants.js";import"../../../clients/sso/auth0.js";import"../../../clients/sso/oauth2.js";import{apiRequestsRateLimiter as d}from"../../../clients/api/rateLimiter.js";import f from"../AppContext.js";import C from"../DevCenterAppContainer/DevCenterAppContainer.js";import{IsInsideIsolatedDcAppProvider as h}from"../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js";import{THEMES as b}from"../../../constants/theme.js";import g from"../../../hocs/withMUIProvidersHOC.js";import"../../../hocs/withAssetEditorLockHOC.js";import"@icon-park/react/es/all";import{jsx as v}from"react/jsx-runtime";import{IconParkProvider as O}from"../../../icons/IconParkProvider.js";import"../../../icons/customIcons/icons/AddMessage.js";import"../../../icons/customIcons/icons/DragOne.js";import"../../../icons/customIcons/icons/Attention.js";import"../../../icons/customIcons/icons/Collapse.js";import"../../../icons/customIcons/icons/Dashboard.js";import"../../../icons/customIcons/icons/Expand.js";import"../../../icons/customIcons/icons/FolderClosed.js";import"../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../icons/customIcons/icons/FolderOpened.js";import"../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../icons/customIcons/icons/LessOrEqual.js";import"../../../icons/customIcons/icons/Search.js";import"../../../icons/customIcons/icons/SearchOne.js";import"../../../icons/customIcons/icons/Wellhub.js";import"../../../icons/customIcons/icons/MultiRuler.js";import"../../../icons/customIcons/icons/Checkbox.js";import"../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../icons/customIcons/icons/Radio.js";import"../../../icons/customIcons/icons/RadioChecked.js";import"../../../icons/customIcons/icons/SimulFrac.js";import"../../../icons/customIcons/icons/ZipperFrac.js";import"../../../icons/customIcons/icons/CautionFilled.js";import"../../../icons/customIcons/icons/InfoRounded.js";import"../../../icons/customIcons/icons/FlameFilled.js";import"../../../icons/customIcons/icons/MoreApp.js";import"../../../icons/customIcons/icons/Pad.js";import"../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../icons/customIcons/icons/FracFleet.js";import"../../../icons/customIcons/icons/Global.js";import"../../../icons/customIcons/icons/Program.js";import"../../../icons/customIcons/icons/Rig.js";import"../../../icons/customIcons/icons/Well.js";import"../../../icons/customIcons/icons/Gap.js";import"../../../icons/customIcons/icons/Pin.js";import"../../../icons/customIcons/icons/PinOne.js";import"../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../icons/customIcons/icons/AttentionFilled.js";import"../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../icons/customIcons/icons/Archive.js";import"../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../icons/customIcons/icons/Unarchive.js";import"../../../icons/customIcons/icons/Archived.js";import"../../../icons/customIcons/icons/InterventionUnit.js";import"../../../icons/customIcons/icons/CloudDelete.js";import"../../../icons/customIcons/icons/Lasso.js";import"../../../icons/customIcons/icons/Radius.js";import"../../../icons/customIcons/icons/ErrorOps.js";import"../../../icons/customIcons/icons/DataTypeOps.js";import"../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../icons/customIcons/icons/CalibrationOps.js";import"../../../icons/customIcons/icons/CriticalOps.js";import"../../../icons/customIcons/icons/Company.js";import"../../../icons/customIcons/icons/ArchiveOne.js";import"../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../icons/customIcons/icons/Connect.js";import"../../../icons/customIcons/icons/PuzzleOne.js";import"../../../icons/customIcons/icons/Feed.js";import"../../../icons/customIcons/icons/Prompt.js";import"../../../icons/customIcons/icons/Companies.js";import"../../../icons/customIcons/icons/ClipboardAi.js";import"../../../icons/customIcons/icons/Key.js";import"../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../icons/customIcons/icons/MappingManual.js";import"../../../icons/customIcons/icons/Mapping.js";import"../../../icons/customIcons/icons/Metrics.js";import"../../../icons/customIcons/icons/Drops.js";import"../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../icons/customIcons/icons/Template.js";import"../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../icons/customIcons/icons/UnitConversion.js";import"../../../icons/customIcons/icons/NPT.js";import"../../../icons/customIcons/icons/GuidedFrac.js";import{PermissionsContext as A}from"../../../permissions/PermissionsContext.js";import"../../../styles/iconPark.global.css.js";import"../../../styles/index.global.css.js";import"../../../styles/reactVirtualized.global.css.js";import"../../../styles/emojiMart.global.css.js";import"../../../styles/mapbox.global.css.js";import"../../../styles/lightbox.global.css.js";import"../../../styles/generatedThemesVariables.global.css.js";import"../../../styles/customScrollbars.global.css.js";import{updateUserUnits as P}from"../../../utils/index.js";import{setThemeVariables as y}from"../../../utils/themeVariables.js";var x=["appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException"];function L(o,s){var i=Object.keys(o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(o);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),i.push.apply(i,n)}return i}function S(s){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?L(Object(n),!0).forEach((function(i){o(s,i,n[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))}))}return s}var w=g(C),D=i((function(){return{"@global":{body:{backgroundColor:"transparent",overflow:"hidden"}}}}));function F(o){var i,c,C,g,L,F,R=o.CLIAppComponent,k=void 0===R?null:R,E=o.CLIAppSettings,T=void 0===E?null:E,M=o.containerReportClassName,U=void 0===M?null:M;D();var z=a(),V=z.appContextValue,N=z.globalMixpanelEventTracker,G=z.globalNotificationToastsAPI,W=z.onSettingChange,H=z.onSettingsChange,K=z.permissionsContextValue,q=z.timezone,B=z.userUnits,X=z.trackApiRateLimiterException,Z=s(z,x),J=Z.location.pathname.startsWith("/reports/")||I,Q=new URLSearchParams(Z.location.search).get("printTheme"),Y=null==Z||null===(i=Z.app)||void 0===i?void 0:i.id,$=localStorage.getItem(j)||(null===(c=Z.currentUser)||void 0===c||null===(C=c.settings)||void 0===C||null===(g=C.uiSettings)||void 0===g?void 0:g.theme)||b.DARK,_=J?Q===b.DARK:$!==b.LIGHT;return r((function(){y(_)}),[_]),r((function(){B&&P({userUnits:B})}),[B]),r((function(){return q&&t.tz.setDefault(q),function(){return t.tz.setDefault(null)}}),[q]),e((function(){window[Symbol.for("notificationToasts")]=G,window[Symbol.for("logToMixpanel")]=N,window[Symbol.for("corvaAPI.rateLimiterReport")]=X}),[G,N,X]),e((function(){d.updateConfig(Z.apiRateLimiterConfig)}),[Z.apiRateLimiterConfig]),e((function(){var o=l(Y);return window.addEventListener("message",o),function(){return window.removeEventListener("message",o)}}),[Y]),v(m,{initialEntries:[((null===(L=Z.location)||void 0===L?void 0:L.pathname)||"/")+((null===(F=Z.location)||void 0===F?void 0:F.search)||"")],children:v(A.Provider,{value:K,children:v(f.Provider,{value:V,children:v(h,{value:!0,children:v(O,{children:v("div",{id:p,className:n(J&&U),children:v(w,S(S({},Z),{},{theme:_?b.DARK:b.LIGHT,onSettingsChange:function(o){return H(u(o))},onSettingChange:function(o,s){return W(o,u(s))},CLIAppComponent:k,CLIAppSettings:T,trackApiRateLimiterException:X}))})})})})})})}F.propTypes={CLIAppComponent:c.func,CLIAppSettings:c.func,containerReportClassName:c.string};export{F as DevCenterIsolatedAppPage};
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedAppPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { useEffect, useLayoutEffect } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useXProps } from './effects/useXProps';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\n\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { apiRequestsRateLimiter } from '~/clients';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { THEMES } from '~/constants/theme';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport { IconParkProvider } from '~/icons';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport '~/styles/globalStyles';\nimport { updateUserUnits } from '~/utils';\nimport { setThemeVariables } from '~/utils/themeVariables';\n\nconst DevCenterAppContainerWithMUI = withMUIProvidersHOC(DevCenterAppContainer);\n\n/**\n * It's important to keep these global styles in js, to apply only\n * when the component is actually used, if moved to CSS - they'll be\n * applied to whatever somehow imports the code\n */\nconst useStyles = makeStyles(() => ({\n '@global': {\n body: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n },\n}));\n\n/**\n * Root component that is rendered inside of app's iframe.\n * Receives CLIAppComponent, CLIAppSettings when used\n * in local development\n */\nexport function DevCenterIsolatedAppPage({\n CLIAppComponent = null,\n CLIAppSettings = null,\n containerReportClassName = null,\n}) {\n useStyles();\n\n const {\n appContextValue,\n globalMixpanelEventTracker,\n globalNotificationToastsAPI,\n onSettingChange,\n onSettingsChange,\n permissionsContextValue,\n timezone,\n userUnits,\n trackApiRateLimiterException,\n ...xProps\n } = useXProps();\n const isReportsPage = xProps.location.pathname.startsWith('/reports/') || isPDFReportView;\n const appId = xProps?.app?.id;\n\n // Force light theme for PDF reports view\n const selectedTheme =\n localStorage.getItem(LOCAL_STORAGE_APP_THEME_KEY) ||\n xProps.currentUser?.settings?.uiSettings?.theme ||\n THEMES.DARK;\n const isDarkTheme = !isReportsPage && selectedTheme !== THEMES.LIGHT;\n\n useLayoutEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n // Apply userUnits and/or timezone before paint so that the first render\n // (including PDF reports) uses the correct unit system.\n // useLayoutEffect runs synchronously after DOM mutations but before the browser paints,\n // and re-runs whenever userUnits changes — fixing the production race where the iframe mounts\n // before the parent has finished loading the dashboard's unit_system.\n useLayoutEffect(() => {\n if (userUnits) {\n updateUserUnits({ userUnits });\n }\n }, [userUnits]);\n\n useLayoutEffect(() => {\n if (timezone) {\n moment.tz.setDefault(timezone);\n }\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n useEffect(() => {\n window[Symbol.for('notificationToasts')] = globalNotificationToastsAPI;\n window[Symbol.for('logToMixpanel')] = globalMixpanelEventTracker;\n window[Symbol.for('corvaAPI.rateLimiterReport')] = trackApiRateLimiterException;\n }, [globalNotificationToastsAPI, globalMixpanelEventTracker, trackApiRateLimiterException]);\n\n useEffect(() => {\n apiRequestsRateLimiter.updateConfig(xProps.apiRateLimiterConfig);\n }, [xProps.apiRateLimiterConfig]);\n\n useEffect(() => {\n const dashboardCapturingHandler = getDashboardCapturingHandler(appId);\n window.addEventListener('message', dashboardCapturingHandler);\n return () => window.removeEventListener('message', dashboardCapturingHandler);\n }, [appId]);\n\n return (\n <MemoryRouter\n initialEntries={[(xProps.location?.pathname || '/') + (xProps.location?.search || '')]}\n >\n <PermissionsContext.Provider value={permissionsContextValue}>\n <AppContext.Provider value={appContextValue}>\n <IsInsideIsolatedDcAppProvider value>\n <IconParkProvider>\n <div\n id={ISOLATED_PAGE_APP_CONTAINER_ID}\n className={classNames(isReportsPage && containerReportClassName)}\n >\n <DevCenterAppContainerWithMUI\n {...xProps}\n theme={isDarkTheme ? THEMES.DARK : THEMES.LIGHT}\n // zoid serializes passed arguments using JSON.stringify.\n // All undefined values are removed as they are not valid JSON values\n // so we replace undefined values with null to not drop them\n // Any future cb function that passes arbitrary objects as args\n // also should be wrapped in this mapper\n // ⚠️⚠️⚠️ When refactoring this to referentially stable callbacks, remove `useStableCallback` from\n // /src/componentsV2/AppCommonsProvider/AppCommonsProvider.tsx\n onSettingsChange={nextSettings =>\n onSettingsChange(replaceUndefinedValuesWithNull(nextSettings))\n }\n onSettingChange={(key, value) =>\n onSettingChange(key, replaceUndefinedValuesWithNull(value))\n }\n CLIAppComponent={CLIAppComponent}\n CLIAppSettings={CLIAppSettings}\n trackApiRateLimiterException={trackApiRateLimiterException}\n />\n </div>\n </IconParkProvider>\n </IsInsideIsolatedDcAppProvider>\n </AppContext.Provider>\n </PermissionsContext.Provider>\n </MemoryRouter>\n );\n}\n\nDevCenterIsolatedAppPage.propTypes = {\n CLIAppComponent: PropTypes.func,\n CLIAppSettings: PropTypes.func,\n containerReportClassName: PropTypes.string,\n};\n"],"names":["DevCenterAppContainerWithMUI","withMUIProvidersHOC","DevCenterAppContainer","useStyles","makeStyles","body","backgroundColor","overflow","DevCenterIsolatedAppPage","_ref","_xProps$app","_xProps$currentUser","_xProps$currentUser$s","_xProps$currentUser$s2","_xProps$location","_xProps$location2","_ref$CLIAppComponent","CLIAppComponent","_ref$CLIAppSettings","CLIAppSettings","_ref$containerReportC","containerReportClassName","_useXProps","useXProps","appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException","xProps","_objectWithoutProperties","_excluded","isReportsPage","location","pathname","startsWith","isPDFReportView","appId","app","id","selectedTheme","localStorage","getItem","LOCAL_STORAGE_APP_THEME_KEY","currentUser","settings","uiSettings","theme","THEMES","DARK","isDarkTheme","LIGHT","useLayoutEffect","setThemeVariables","updateUserUnits","moment","tz","setDefault","useEffect","window","Symbol","for","apiRequestsRateLimiter","updateConfig","apiRateLimiterConfig","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { useEffect, useLayoutEffect } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useXProps } from './effects/useXProps';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\n\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { apiRequestsRateLimiter } from '~/clients';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { THEMES } from '~/constants/theme';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport { IconParkProvider } from '~/icons';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport '~/styles/globalStyles';\nimport { updateUserUnits } from '~/utils';\nimport { setThemeVariables } from '~/utils/themeVariables';\n\nconst DevCenterAppContainerWithMUI = withMUIProvidersHOC(DevCenterAppContainer);\n\n/**\n * It's important to keep these global styles in js, to apply only\n * when the component is actually used, if moved to CSS - they'll be\n * applied to whatever somehow imports the code\n */\nconst useStyles = makeStyles(() => ({\n '@global': {\n body: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n },\n}));\n\n/**\n * Root component that is rendered inside of app's iframe.\n * Receives CLIAppComponent, CLIAppSettings when used\n * in local development\n */\nexport function DevCenterIsolatedAppPage({\n CLIAppComponent = null,\n CLIAppSettings = null,\n containerReportClassName = null,\n}) {\n useStyles();\n\n const {\n appContextValue,\n globalMixpanelEventTracker,\n globalNotificationToastsAPI,\n onSettingChange,\n onSettingsChange,\n permissionsContextValue,\n timezone,\n userUnits,\n trackApiRateLimiterException,\n ...xProps\n } = useXProps();\n const isReportsPage = xProps.location.pathname.startsWith('/reports/') || isPDFReportView;\n const printTheme = new URLSearchParams(xProps.location.search).get('printTheme');\n const appId = xProps?.app?.id;\n\n // Reports use light theme by default unless dark mode is explicitly requested.\n const selectedTheme =\n localStorage.getItem(LOCAL_STORAGE_APP_THEME_KEY) ||\n xProps.currentUser?.settings?.uiSettings?.theme ||\n THEMES.DARK;\n const isDarkTheme = isReportsPage ? printTheme === THEMES.DARK : selectedTheme !== THEMES.LIGHT;\n\n useLayoutEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n // Apply userUnits and/or timezone before paint so that the first render\n // (including PDF reports) uses the correct unit system.\n // useLayoutEffect runs synchronously after DOM mutations but before the browser paints,\n // and re-runs whenever userUnits changes — fixing the production race where the iframe mounts\n // before the parent has finished loading the dashboard's unit_system.\n useLayoutEffect(() => {\n if (userUnits) {\n updateUserUnits({ userUnits });\n }\n }, [userUnits]);\n\n useLayoutEffect(() => {\n if (timezone) {\n moment.tz.setDefault(timezone);\n }\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n useEffect(() => {\n window[Symbol.for('notificationToasts')] = globalNotificationToastsAPI;\n window[Symbol.for('logToMixpanel')] = globalMixpanelEventTracker;\n window[Symbol.for('corvaAPI.rateLimiterReport')] = trackApiRateLimiterException;\n }, [globalNotificationToastsAPI, globalMixpanelEventTracker, trackApiRateLimiterException]);\n\n useEffect(() => {\n apiRequestsRateLimiter.updateConfig(xProps.apiRateLimiterConfig);\n }, [xProps.apiRateLimiterConfig]);\n\n useEffect(() => {\n const dashboardCapturingHandler = getDashboardCapturingHandler(appId);\n window.addEventListener('message', dashboardCapturingHandler);\n return () => window.removeEventListener('message', dashboardCapturingHandler);\n }, [appId]);\n\n return (\n <MemoryRouter\n initialEntries={[(xProps.location?.pathname || '/') + (xProps.location?.search || '')]}\n >\n <PermissionsContext.Provider value={permissionsContextValue}>\n <AppContext.Provider value={appContextValue}>\n <IsInsideIsolatedDcAppProvider value>\n <IconParkProvider>\n <div\n id={ISOLATED_PAGE_APP_CONTAINER_ID}\n className={classNames(isReportsPage && containerReportClassName)}\n >\n <DevCenterAppContainerWithMUI\n {...xProps}\n theme={isDarkTheme ? THEMES.DARK : THEMES.LIGHT}\n // zoid serializes passed arguments using JSON.stringify.\n // All undefined values are removed as they are not valid JSON values\n // so we replace undefined values with null to not drop them\n // Any future cb function that passes arbitrary objects as args\n // also should be wrapped in this mapper\n // ⚠️⚠️⚠️ When refactoring this to referentially stable callbacks, remove `useStableCallback` from\n // /src/componentsV2/AppCommonsProvider/AppCommonsProvider.tsx\n onSettingsChange={nextSettings =>\n onSettingsChange(replaceUndefinedValuesWithNull(nextSettings))\n }\n onSettingChange={(key, value) =>\n onSettingChange(key, replaceUndefinedValuesWithNull(value))\n }\n CLIAppComponent={CLIAppComponent}\n CLIAppSettings={CLIAppSettings}\n trackApiRateLimiterException={trackApiRateLimiterException}\n />\n </div>\n </IconParkProvider>\n </IsInsideIsolatedDcAppProvider>\n </AppContext.Provider>\n </PermissionsContext.Provider>\n </MemoryRouter>\n );\n}\n\nDevCenterIsolatedAppPage.propTypes = {\n CLIAppComponent: PropTypes.func,\n CLIAppSettings: PropTypes.func,\n containerReportClassName: PropTypes.string,\n};\n"],"names":["DevCenterAppContainerWithMUI","withMUIProvidersHOC","DevCenterAppContainer","useStyles","makeStyles","body","backgroundColor","overflow","DevCenterIsolatedAppPage","_ref","_xProps$app","_xProps$currentUser","_xProps$currentUser$s","_xProps$currentUser$s2","_xProps$location","_xProps$location2","_ref$CLIAppComponent","CLIAppComponent","_ref$CLIAppSettings","CLIAppSettings","_ref$containerReportC","containerReportClassName","_useXProps","useXProps","appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException","xProps","_objectWithoutProperties","_excluded","isReportsPage","location","pathname","startsWith","isPDFReportView","printTheme","URLSearchParams","search","get","appId","app","id","selectedTheme","localStorage","getItem","LOCAL_STORAGE_APP_THEME_KEY","currentUser","settings","uiSettings","theme","THEMES","DARK","isDarkTheme","LIGHT","useLayoutEffect","setThemeVariables","updateUserUnits","moment","tz","setDefault","useEffect","window","Symbol","for","apiRequestsRateLimiter","updateConfig","apiRateLimiterConfig","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string"],"mappings":"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"}
|
|
@@ -106,10 +106,10 @@ export declare const BHA_COMPONENT_TYPES: ({
|
|
|
106
106
|
})[];
|
|
107
107
|
})[];
|
|
108
108
|
export declare const BHA_GENERAL_FIELD_TYPES: ({
|
|
109
|
+
unit?: undefined;
|
|
109
110
|
name: string;
|
|
110
111
|
label: string;
|
|
111
112
|
cond?: undefined;
|
|
112
|
-
unit?: undefined;
|
|
113
113
|
col_size?: undefined;
|
|
114
114
|
family?: undefined;
|
|
115
115
|
} | {
|
|
@@ -134,8 +134,8 @@ export declare const BHA_GENERAL_FIELD_TYPES: ({
|
|
|
134
134
|
col_size: number;
|
|
135
135
|
family?: undefined;
|
|
136
136
|
} | {
|
|
137
|
-
cond?: undefined;
|
|
138
137
|
unit?: undefined;
|
|
138
|
+
cond?: undefined;
|
|
139
139
|
name: string;
|
|
140
140
|
label: string;
|
|
141
141
|
col_size: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,IAAI,2BAA2B,EACvD,uBAAuB,IAAI,0BAA0B,EAErD,6BAA6B,EAG9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,
|
|
1
|
+
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/toConsumableArray";import n from"@babel/runtime/helpers/typeof";import i from"@babel/runtime/helpers/slicedToArray";import{createFilterOptions as t,Autocomplete as c}from"@material-ui/lab";import{useState as e,useMemo as r,useCallback as l}from"react";import m from"classnames";import{Popper as u}from"../Popper/Popper.js";import{DownIcon as p,CloseSmallIcon as a}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/DragOne.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/InfoRounded.js";import"../../icons/customIcons/icons/FlameFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/PinOne.js";import"../../icons/customIcons/icons/PinOneCrossed.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/CloudDelete.js";import"../../icons/customIcons/icons/Lasso.js";import"../../icons/customIcons/icons/Radius.js";import"../../icons/customIcons/icons/ErrorOps.js";import"../../icons/customIcons/icons/DataTypeOps.js";import"../../icons/customIcons/icons/FalsePositiveOps.js";import"../../icons/customIcons/icons/CalibrationOps.js";import"../../icons/customIcons/icons/CriticalOps.js";import"../../icons/customIcons/icons/Company.js";import"../../icons/customIcons/icons/ArchiveOne.js";import"../../icons/customIcons/icons/ParseBotFusion.js";import"../../icons/customIcons/icons/Connect.js";import"../../icons/customIcons/icons/PuzzleOne.js";import"../../icons/customIcons/icons/Feed.js";import"../../icons/customIcons/icons/Prompt.js";import"../../icons/customIcons/icons/Companies.js";import"../../icons/customIcons/icons/ClipboardAi.js";import"../../icons/customIcons/icons/Key.js";import"../../icons/customIcons/icons/AtSignCrossed.js";import"../../icons/customIcons/icons/MappingManual.js";import"../../icons/customIcons/icons/Mapping.js";import"../../icons/customIcons/icons/Metrics.js";import"../../icons/customIcons/icons/Drops.js";import"../../icons/customIcons/icons/ClipboardSearch.js";import"../../icons/customIcons/icons/Template.js";import"../../icons/customIcons/icons/ClipboardMetrics.js";import"../../icons/customIcons/icons/ClipboardBuilder.js";import"../../icons/customIcons/icons/UnitConversion.js";import"../../icons/customIcons/icons/NPT.js";import"../../icons/customIcons/icons/GuidedFrac.js";import{AutocompleteInput as d}from"./AutocompleteInput/AutocompleteInput.js";import{AutocompletePaper as j}from"./AutocompletePaper.js";import{renderSelectedValue as f,renderSelectedValueChips as I,isRealOption as O,CreateOptionMark as b,AllOptionMark as h,renderOptionDefault as v}from"./utils.js";import{AutocompleteMenuItem as C}from"./AutocompleteMenuItem.js";import{AutocompleteListBox as g}from"./AutocompleteListBox.js";import y from"./Autocomplete.scss.js";import{Menu as A}from"../Menu/Menu.js";import{jsx as P,jsxs as x}from"react/jsx-runtime";function F(o,s){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);s&&(i=i.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),n.push.apply(n,i)}return n}function D(s){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?F(Object(i),!0).forEach((function(n){o(s,n,i[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):F(Object(i)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(i,o))}))}return s}var N=function(I){var F=I.label,N=I.options,w=void 0===N?[]:N,M=I.value,S=I.onChange,z=I.multiple,T=I.renderOption,k=void 0===T?v:T,B=I.optionSize,R=void 0===B?"medium":B,E=I.showPopupIcon,G=void 0===E||E,L=I.clearable,V=void 0===L||L,U=I.loading,q=I.noOptionsMessage,W=I.filterOptions,K=I.prefix,Z=I.disabled,H=I.getOptionDisabled,J=I.renderSelected,Q=void 0===J?f:J,X=I.onInputChange,Y=I.className,$=I.testId,_=I.status,oo=I.message,so=I.useAllOption,no=void 0!==so&&so,io=I.useOnlyOptionButton,to=void 0!==io&&io,co=I.groupBy,eo=I.renderGroup,ro=I.disableFiltering,lo=I.onCreate,mo=I.dropdownClassName,uo=I.popperProps,po=I.placeholder,ao=I.focusOnClear,jo=void 0===ao||ao,fo=I.listboxComponent,Io=I.size,Oo=void 0===Io?"small":Io,bo=I.labelPlacement,ho=void 0===bo?"top":bo,vo=I.elementsClassNames,Co=I.htmlAttributes,go=I.onOpen,yo=I.onClose,Ao=I.type,Po=I.spacing,xo=I.isNext,Fo=e(""),Do=i(Fo,2),No=Do[0],wo=Do[1],Mo=r((function(){if(void 0===M||M instanceof Array&&0===M.length)return z?[]:null;var o=M instanceof Array?M:[M];if(z){var i=o.filter((function(o){return"object"!==n(o)})),t=o.filter((function(o){return"object"===n(o)})).map((function(o){return{id:o.id,title:o.title}})),c=w.filter((function(o){return i.includes(o.id)}));return[].concat(s(c),s(t))}return"object"===n(o[0])?o[0]:w.find((function(s){return o[0]===s.id}))||null}),[z,M,w]),So=Mo instanceof Array&&Mo.length>0,zo=Mo instanceof Array&&Mo.length===w.length,To=U?"Loading ...":"No options",ko=!V||!Mo||Mo instanceof Array&&!(null!=Mo&&Mo.length),Bo=l((function(o){return P(d,D(D({},o),{},{label:F,loading:U,prefix:K,status:_,message:oo,readOnly:ro,placeholder:po,size:Oo,labelPlacement:ho,elementsClassNames:vo,htmlAttributes:Co,type:Ao,spacing:Po,isNext:xo}))}),[F,U,K,_,oo,ro,po,Oo,ho,vo,Co,Ao,Po,xo]),Ro=l((function(o,s,n){if("clear"!==n||jo||(o.stopPropagation(),o.preventDefault()),lo&&s){var i=(s instanceof Array?s:[s]).find((function(o){return!O(o)&&!!o[b]}));if(i)return void lo(i.newOptionTitle||"")}if(z&&s instanceof Array&&s.some((function(o){return!O(o)&&!!o[h]})))return void(Mo instanceof Array&&Mo.length<w.length?null==S||S(w.filter(O),n,o):null==S||S([],n,o));null==S||S(s||void 0,n,o)}),[jo,lo,z,S,Mo,w]),Eo=l((function(o,s){return null==S?void 0:S([o],"select-only-option",s)}),[S]),Go=l((function(o,s){var n=s.selected;return O(o)?P(C,{size:R,selected:n,prefix:o.prefix,multiple:z,useOnlyButton:to,option:o,onSelectOnly:Eo,children:k(o)}):o[h]?x("div",{className:y.allOptionContainer,children:[P(C,{size:R,selected:So,indeterminate:So&&!zo,multiple:!0,children:o.title}),P(A.Divider,{className:y.allOptionDivider})]}):P(C,{size:R,selected:So,children:o.title})}),[R,z,to,Eo,k,So,zo]),Lo=l((function(n,i){var c,e=W?W(n,i.inputValue):t()(n,i),r=no&&z&&e.length&&n.length>1?[o({title:"All"},h,!0)].concat(s(e)):e;return lo&&""!==i.inputValue.trim()?[].concat(s(r),[(c={title:'Add "'.concat(i.inputValue,'"')},o(c,b,!0),o(c,"newOptionTitle",i.inputValue),c)]):r}),[W,lo,no,z]),Vo=l((function(o){return O(o)&&!(null==H||!H(o))}),[H]),Uo=l((function(o){return o.title}),[]),qo=l((function(o,s){var n=o.filter(O).map((function(o,n){return{option:o,onDelete:s({index:n}).onDelete}}));return Q(n,{useAllOption:no,allOptions:w})}),[Q,no,w]),Wo=l((function(o,s,n){o&&"blur"===o.type?wo(""):"reset"!==n&&wo(s),"reset"!==n&&(null==X||X(s,o))}),[X]),Ko=r((function(){if(co)return function(o){return O(o)?co(o):""}}),[co]),Zo=r((function(){return{paper:mo}}),[mo]),Ho=l((function(o,s){return!(!O(o)||!O(s))&&o.id===s.id}),[]),Jo=c,Qo=l((function(o){return P(u,D(D(D({},o),uo),{},{className:m(null==o?void 0:o.className,null==uo?void 0:uo.className)}))}),[uo]),Xo=l((function(){null==go||go()}),[go]),Yo=l((function(o,s){null==yo||yo(s)}),[yo]);return P("div",{className:m(y.root,G&&y.withArrow,!ko&&y.withClear,Y),"data-testid":$,children:P(Jo,{value:Mo,options:w,getOptionLabel:Uo,renderInput:Bo,PopperComponent:Qo,PaperComponent:j,multiple:z,disableCloseOnSelect:z,blurOnSelect:!z,onChange:Ro,renderOption:Go,popupIcon:P(p,{size:16}),forcePopupIcon:!!G,closeIcon:P(a,{size:16}),disableClearable:ko,clearText:"",noOptionsText:q||To,filterOptions:Lo,disabled:Z,getOptionDisabled:Vo,renderTags:qo,inputValue:z?No:void 0,onInputChange:Wo,groupBy:Ko,renderGroup:eo,clearOnBlur:!0,selectOnFocus:!ro,classes:Zo,getOptionSelected:Ho,ListboxComponent:null!=fo?fo:g,onOpen:Xo,onClose:Yo})})},w=function(o){return N(D(D({},o),{},{isNext:!1}))},M=function(o){return N(D(D({},o),{},{isNext:!0}))};M.selectedValueRenderers={default:f,chipsMultiline:I};export{w as Autocomplete,M as AutocompleteNext};
|
|
1
|
+
import o from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/toConsumableArray";import s from"@babel/runtime/helpers/typeof";import i from"@babel/runtime/helpers/slicedToArray";import{createFilterOptions as t,Autocomplete as c}from"@material-ui/lab";import{useState as e,useRef as r,useCallback as l,useMemo as m}from"react";import u from"classnames";import{Popper as p}from"../Popper/Popper.js";import{DownIcon as a,CloseSmallIcon as d}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/DragOne.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/InfoRounded.js";import"../../icons/customIcons/icons/FlameFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/PinOne.js";import"../../icons/customIcons/icons/PinOneCrossed.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/CloudDelete.js";import"../../icons/customIcons/icons/Lasso.js";import"../../icons/customIcons/icons/Radius.js";import"../../icons/customIcons/icons/ErrorOps.js";import"../../icons/customIcons/icons/DataTypeOps.js";import"../../icons/customIcons/icons/FalsePositiveOps.js";import"../../icons/customIcons/icons/CalibrationOps.js";import"../../icons/customIcons/icons/CriticalOps.js";import"../../icons/customIcons/icons/Company.js";import"../../icons/customIcons/icons/ArchiveOne.js";import"../../icons/customIcons/icons/ParseBotFusion.js";import"../../icons/customIcons/icons/Connect.js";import"../../icons/customIcons/icons/PuzzleOne.js";import"../../icons/customIcons/icons/Feed.js";import"../../icons/customIcons/icons/Prompt.js";import"../../icons/customIcons/icons/Companies.js";import"../../icons/customIcons/icons/ClipboardAi.js";import"../../icons/customIcons/icons/Key.js";import"../../icons/customIcons/icons/AtSignCrossed.js";import"../../icons/customIcons/icons/MappingManual.js";import"../../icons/customIcons/icons/Mapping.js";import"../../icons/customIcons/icons/Metrics.js";import"../../icons/customIcons/icons/Drops.js";import"../../icons/customIcons/icons/ClipboardSearch.js";import"../../icons/customIcons/icons/Template.js";import"../../icons/customIcons/icons/ClipboardMetrics.js";import"../../icons/customIcons/icons/ClipboardBuilder.js";import"../../icons/customIcons/icons/UnitConversion.js";import"../../icons/customIcons/icons/NPT.js";import"../../icons/customIcons/icons/GuidedFrac.js";import{AutocompleteInput as j}from"./AutocompleteInput/AutocompleteInput.js";import{AutocompletePaper as f}from"./AutocompletePaper.js";import{renderSelectedValue as I,renderSelectedValueChips as O,isRealOption as b,CreateOptionMark as v,AllOptionMark as h,renderOptionDefault as g}from"./utils.js";import{AutocompleteMenuItem as C}from"./AutocompleteMenuItem.js";import{AutocompleteListBox as y}from"./AutocompleteListBox.js";import A from"./Autocomplete.scss.js";import{Menu as P}from"../Menu/Menu.js";import{jsx as x,jsxs as F}from"react/jsx-runtime";function D(o,n){var s=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable}))),s.push.apply(s,i)}return s}function N(n){for(var s=1;s<arguments.length;s++){var i=null!=arguments[s]?arguments[s]:{};s%2?D(Object(i),!0).forEach((function(s){o(n,s,i[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):D(Object(i)).forEach((function(o){Object.defineProperty(n,o,Object.getOwnPropertyDescriptor(i,o))}))}return n}var w=function(O){var D=O.label,w=O.options,M=void 0===w?[]:w,S=O.value,z=O.onChange,T=O.multiple,k=O.renderOption,B=void 0===k?g:k,E=O.optionSize,L=void 0===E?"medium":E,R=O.showPopupIcon,V=void 0===R||R,G=O.clearable,U=void 0===G||G,q=O.loading,K=O.noOptionsMessage,W=O.filterOptions,Z=O.prefix,H=O.disabled,J=O.getOptionDisabled,Q=O.renderSelected,X=void 0===Q?I:Q,Y=O.onInputChange,$=O.className,_=O.testId,oo=O.status,no=O.message,so=O.useAllOption,io=void 0!==so&&so,to=O.useOnlyOptionButton,co=void 0!==to&&to,eo=O.groupBy,ro=O.renderGroup,lo=O.disableFiltering,mo=O.onCreate,uo=O.dropdownClassName,po=O.popperProps,ao=O.placeholder,jo=O.focusOnClear,fo=void 0===jo||jo,Io=O.listboxComponent,Oo=O.size,bo=void 0===Oo?"small":Oo,vo=O.labelPlacement,ho=void 0===vo?"top":vo,go=O.elementsClassNames,Co=O.htmlAttributes,yo=O.onOpen,Ao=O.onClose,Po=O.type,xo=O.spacing,Fo=O.isNext,Do=e(""),No=i(Do,2),wo=No[0],Mo=No[1],So=e(!1),zo=i(So,2),To=zo[0],ko=zo[1],Bo=r(""),Eo=l((function(){ko(!0),null==yo||yo()}),[yo]),Lo=l((function(o,n){ko(!1),null==Ao||Ao(n)}),[Ao]),Ro=m((function(){return new Map(M.map((function(o){return[o.id,o]})))}),[M]),Vo=m((function(){if(void 0===S||S instanceof Array&&0===S.length)return T?[]:null;var o=S instanceof Array?S:[S];return T?o.map((function(o){return"object"===s(o)?{id:o.id,title:o.title}:Ro.get(o)})).filter((function(o){return void 0!==o})):"object"===s(o[0])?o[0]:M.find((function(n){return o[0]===n.id}))||null}),[T,S,M,Ro]),Go=Vo instanceof Array&&Vo.length>0,Uo=Vo instanceof Array&&Vo.length===M.length,qo=q?"Loading ...":"No options",Ko=!U||!Vo||Vo instanceof Array&&!(null!=Vo&&Vo.length),Wo=l((function(o,n,s){if("clear"!==s||fo||(o.stopPropagation(),o.preventDefault()),mo&&n){var i=(n instanceof Array?n:[n]).find((function(o){return!b(o)&&!!o[v]}));if(i)return Lo(void 0,"select-option"),void mo(i.newOptionTitle||"")}if(T&&n instanceof Array&&n.some((function(o){return!b(o)&&!!o[h]})))return void(Vo instanceof Array&&Vo.length<M.length?null==z||z(M.filter(b),s,o):null==z||z([],s,o));null==z||z(n||void 0,s,o)}),[fo,mo,T,z,Vo,M,Lo]),Zo=l((function(o,n){return null==z?void 0:z([o],"select-only-option",n)}),[z]),Ho=l((function(o,n){var s=n.selected;return b(o)?x(C,{size:L,selected:s,prefix:o.prefix,multiple:T,useOnlyButton:co,option:o,onSelectOnly:Zo,children:B(o)}):o[h]?F("div",{className:A.allOptionContainer,children:[x(C,{size:L,selected:Go,indeterminate:Go&&!Uo,multiple:!0,children:o.title}),x(P.Divider,{className:A.allOptionDivider})]}):x(C,{size:L,selected:Go,children:o.title})}),[L,T,co,Zo,B,Go,Uo]),Jo=l((function(s,i){var c,e=W?W(s,i.inputValue):t()(s,i),r=io&&T&&e.length&&s.length>1?[o({title:"All"},h,!0)].concat(n(e)):e;return mo&&""!==i.inputValue.trim()?[].concat(n(r),[(c={title:'Add "'.concat(i.inputValue,'"')},o(c,v,!0),o(c,"newOptionTitle",i.inputValue),c)]):r}),[W,mo,io,T]),Qo=l((function(o){return b(o)&&!(null==J||!J(o))}),[J]),Xo=l((function(o){return o.title}),[]),Yo=l((function(o,n){var s=o.filter(b).map((function(o,s){return{option:o,onDelete:n({index:s}).onDelete}}));return X(s,{useAllOption:io,allOptions:M})}),[X,io,M]),$o=l((function(o,n,s){o&&"blur"===o.type?(Mo(""),Bo.current=n):"reset"!==s&&(Mo(n),Bo.current=n),"reset"!==s&&(null==Y||Y(n,o))}),[Y]),_o=m((function(){if(eo)return function(o){return b(o)?eo(o):""}}),[eo]),on=m((function(){return{paper:uo}}),[uo]),nn=l((function(o,n){return!(!b(o)||!b(n))&&o.id===n.id}),[]),sn=c,tn=l((function(o){return x(p,N(N(N({},o),po),{},{className:u(null==o?void 0:o.className,null==po?void 0:po.className)}))}),[po]),cn=l((function(o){if("Enter"===o.code&&mo){var n,s,i=Jo(M,{inputValue:Bo.current,getOptionLabel:Xo});if(1===i.length&&!b(i[0])&&i[0][v])Lo(void 0,"select-option"),mo(i[0].newOptionTitle||""),null===(n=document.activeElement)||void 0===n||null===(s=n.blur)||void 0===s||s.call(n)}}),[mo,Jo,Xo,Lo,M]),en=l((function(o){return x(j,N(N({},o),{},{label:D,loading:q,prefix:Z,status:oo,message:no,readOnly:lo,placeholder:ao,size:bo,labelPlacement:ho,elementsClassNames:go,htmlAttributes:Co,type:Po,spacing:xo,isNext:Fo,onKeyUp:cn}))}),[D,q,Z,oo,no,lo,ao,bo,ho,go,Co,Po,xo,Fo,cn]);return x("div",{className:u(A.root,V&&A.withArrow,!Ko&&A.withClear,$),"data-testid":_,children:x(sn,{value:Vo,options:M,getOptionLabel:Xo,renderInput:en,PopperComponent:tn,PaperComponent:f,multiple:T,disableCloseOnSelect:T,blurOnSelect:!T,onChange:Wo,renderOption:Ho,popupIcon:x(a,{size:16}),forcePopupIcon:V,closeIcon:x(d,{size:16}),disableClearable:Ko,clearText:"",noOptionsText:K||qo,filterOptions:Jo,disabled:H,getOptionDisabled:Qo,renderTags:Yo,inputValue:T?wo:void 0,onInputChange:$o,groupBy:_o,renderGroup:ro,clearOnBlur:!0,selectOnFocus:!lo,classes:on,getOptionSelected:nn,ListboxComponent:null!=Io?Io:y,onOpen:Eo,onClose:Lo,open:To})})},M=function(o){return w(N(N({},o),{},{isNext:!1}))},S=function(o){return w(N(N({},o),{},{isNext:!0}))};S.selectedValueRenderers={default:I,chipsMultiline:O};export{M as Autocomplete,S as AutocompleteNext};
|
|
2
2
|
//# sourceMappingURL=Autocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","sources":["../../../src/componentsV2/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import {\n Autocomplete as MuiAutocomplete,\n AutocompleteChangeReason as MuiAutocompleteChangeReason,\n AutocompleteCloseReason as MuiAutocompleteCloseReason,\n AutocompleteProps as MuiAutocompleteBaseProps,\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n createFilterOptions,\n} from '@material-ui/lab';\nimport {\n ChangeEvent,\n ComponentType,\n HTMLAttributes,\n MouseEventHandler,\n ReactNode,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { Popper, PopperProps } from '../Popper';\nimport { MenuItemProps } from '../Menu/MenuItem';\nimport { CloseSmallIcon, DownIcon } from '../../icons';\nimport { TextInputNextProps } from '../TextInputNext';\nimport { TextInputProps } from '../TextInput';\n\nimport { AutocompleteInput } from './AutocompleteInput';\nimport { AutocompletePaper } from './AutocompletePaper';\nimport {\n AllOptionMark,\n AutocompleteOption,\n CreateOptionMark,\n InternalOption,\n isRealOption,\n OwnAddedOption,\n renderOptionDefault,\n renderSelectedValue,\n renderSelectedValueChips,\n} from './utils';\nimport { AutocompleteMenuItem } from './AutocompleteMenuItem';\nimport { AutocompleteListBox } from './AutocompleteListBox';\n\nimport styles from './Autocomplete.scss';\nimport { Menu } from '../Menu';\n\ntype MuiAutocompleteProps<T extends AutocompleteOption> = Required<\n MuiAutocompleteBaseProps<InternalOption<T>, boolean, false, false>\n>;\n\ntype ChangeReason =\n | MuiAutocompleteChangeReason\n | 'select-option-all'\n | 'remove-option-all'\n | 'select-only-option';\ntype AutocompletePopperProps = Omit<PopperProps, 'open' | 'anchorEl' | 'children'>;\n\ntype AutocompleteBaseProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = {\n /**\n * Options to allow selection from. Has to be assignable to `{ id: string | number; title: string; prefix?: ReactNode; }[]`\n */\n options?: T[];\n /**\n * Selected value. If `multiple` is `false | undefined`, and the value is an array, only the first element will be used\n *\n * There's a [bug in TS](https://github.com/microsoft/TypeScript/issues/47599) which causes `onChange` prop\n * to have incorrect typing if we mix T and T['id'] in `value`. Therefore, we can't use the \"correct\" typing\n * ```\n * value?: T['id'] | T | (T['id'] | T)[];\n * ```\n *\n * You may need to provide additional typings\n */\n value?: string | number | T | (string | number | T)[];\n /**\n * If `true`, the component will support multiple selection\n */\n multiple?: Multiple;\n /**\n * Selection change handler\n * Receives an array of options if `multiple` is `true`, a single selected option or `undefined` otherwise\n */\n onChange?: (\n value: Multiple extends undefined | false ? T | undefined : T[],\n reason: ChangeReason,\n event?: ChangeEvent<unknown>\n ) => void;\n label?: ReactNode;\n placeholder?: string;\n /**\n * Controls the size of the options rendered\n */\n optionSize?: MenuItemProps['size'];\n disabled?: boolean;\n /**\n * If exists - allows user to create own options. Called when 'Add \"whatever\"' option is selected\n */\n onCreate?: (title: string) => void;\n\n prefix?: ReactNode;\n loading?: boolean;\n showPopupIcon?: boolean;\n /**\n * Controls the \"Clear\" button that's shown to the right if there is a value\n */\n clearable?: boolean;\n /**\n * Controls if the field should keep/gain focus after \"Clear\" button is clicked\n */\n focusOnClear?: boolean;\n /**\n * Triggered when user types something\n */\n onInputChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;\n status?: TextInputNextProps['status'];\n message?: TextInputNextProps['message'];\n size?: TextInputNextProps['size'];\n labelPlacement?: TextInputNextProps['labelPlacement'];\n /**\n * Makes internal text field readonly, effectively turning component into a simple `<select/>`\n */\n disableFiltering?: boolean;\n\n renderOption?: (item: T) => ReactNode;\n /**\n * Message to show when there are no options\n */\n noOptionsMessage?: ReactNode;\n spacing?: TextInputProps['spacing'];\n /**\n * Function that filters options based on input value\n */\n filterOptions?: (options: T[], inputValue: string) => T[];\n /**\n * Function that determines if an option is disabled. Used to override the default\n * @param option\n */\n getOptionDisabled?: (option: T) => boolean;\n /**\n * If `multiple === true` shows an \"All\" option that selects/deselects all options\n */\n useAllOption?: boolean;\n /**\n * If `multiple === true` shows a \"Select Only\" button on option that selects only the corresponding option\n */\n useOnlyOptionButton?: boolean;\n\n /**\n * Used to render selected values when `multiple === true`\n */\n renderSelected?: (\n data: { option: T; onDelete: MouseEventHandler }[],\n options: { useAllOption: boolean; allOptions: T[] }\n ) => ReactNode;\n\n /**\n * Defines option grouping\n */\n groupBy?: (option: T) => string;\n /**\n * Group render override\n */\n renderGroup?: (props: AutocompleteRenderGroupParams) => ReactNode;\n\n /**\n * A classname that will be applied to dropdown (`<Paper/>` component)\n */\n dropdownClassName?: string;\n /**\n * Escape hatch to customize dropdown popper behavior.\n * `open`, `anchorEl`, and `children` are controlled internally.\n */\n popperProps?: Partial<AutocompletePopperProps>;\n\n type?: 'default' | 'search';\n\n className?: string;\n testId?: string;\n\n /**\n * Called when the dropdown is opened\n */\n onOpen?: () => void;\n /**\n * Called when the dropdown is closed\n */\n onClose?: (reason: MuiAutocompleteCloseReason) => void;\n\n /**\n * Escape hatch to fine-tune the styling of underlying elements\n */\n elementsClassNames?: TextInputNextProps['elementsClassNames'];\n\n /** HTML attributes forwarded to the underlying input. */\n htmlAttributes?: TextInputNextProps['htmlAttributes'];\n\n /**\n * Custom listbox component for rendering options (e.g., virtualized list)\n */\n listboxComponent?: ComponentType<HTMLAttributes<HTMLElement>>;\n\n // TODO Remove when making next a new baseline\n isNext?: boolean;\n};\n\nexport type AutocompleteChangeHandler<\n Option extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Required<AutocompleteBaseProps<Option, Multiple>>['onChange'];\n\nconst AutocompleteBase = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>({\n label,\n options = [],\n value,\n onChange,\n multiple,\n renderOption = renderOptionDefault,\n optionSize = 'medium',\n showPopupIcon = true,\n clearable = true,\n loading,\n noOptionsMessage,\n filterOptions,\n prefix,\n disabled,\n getOptionDisabled,\n renderSelected = renderSelectedValue,\n onInputChange,\n className,\n testId,\n status,\n message,\n useAllOption = false,\n useOnlyOptionButton = false,\n groupBy,\n renderGroup,\n disableFiltering,\n onCreate,\n dropdownClassName,\n popperProps,\n placeholder,\n focusOnClear = true,\n listboxComponent,\n size = 'small',\n labelPlacement = 'top',\n elementsClassNames,\n htmlAttributes,\n onOpen,\n onClose,\n\n // Old props\n type,\n spacing,\n isNext,\n}: AutocompleteBaseProps<T, Multiple>) => {\n const [inputValue, setInputValue] = useState('');\n\n const muiValue = useMemo(() => {\n if (value === undefined || (value instanceof Array && value.length === 0)) {\n return multiple ? [] : null;\n }\n\n // Array of either ids or actual values\n const mixedValues = value instanceof Array ? value : [value];\n\n if (multiple) {\n const valuesArray = mixedValues.filter(value => typeof value !== 'object');\n const objectValues = mixedValues\n .filter(value => typeof value === 'object')\n // MUI Autocomplete doesn't like react nodes in value, so we strip everything from the object to the bare minimum\n .map(({ id, title }) => ({ id, title }));\n const optionsById = options.filter(option => valuesArray.includes(option.id));\n\n return [...optionsById, ...objectValues];\n } else {\n return typeof mixedValues[0] === 'object'\n ? mixedValues[0]\n : options.find(option => mixedValues[0] === option.id) || null;\n }\n }, [multiple, value, options]) as MuiAutocompleteBaseProps<T, Multiple, false, false>['value'];\n\n const hasMultiSelected = muiValue instanceof Array && muiValue.length > 0;\n const hasAllMultiSelected = muiValue instanceof Array && muiValue.length === options.length;\n const defaultNoOptionsText = loading ? 'Loading ...' : 'No options';\n const disableClearable =\n !clearable || !muiValue || (muiValue instanceof Array && !muiValue?.length);\n\n const renderInput = useCallback(\n (inputProps: AutocompleteRenderInputParams) => (\n <AutocompleteInput\n {...inputProps}\n label={label}\n loading={loading}\n prefix={prefix}\n status={status}\n message={message}\n readOnly={disableFiltering}\n placeholder={placeholder}\n size={size}\n labelPlacement={labelPlacement}\n elementsClassNames={elementsClassNames}\n htmlAttributes={htmlAttributes}\n // Old props\n type={type}\n spacing={spacing}\n isNext={isNext}\n />\n ),\n [\n label,\n loading,\n prefix,\n status,\n message,\n disableFiltering,\n placeholder,\n size,\n labelPlacement,\n elementsClassNames,\n htmlAttributes,\n type,\n spacing,\n isNext,\n ]\n );\n\n const actualOnChange = useCallback<MuiAutocompleteProps<T>['onChange']>(\n (event, optionOrArray, reason) => {\n if (reason === 'clear' && !focusOnClear) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n // Handling of \"Add\" option\n if (onCreate && optionOrArray) {\n const optionArray = optionOrArray instanceof Array ? optionOrArray : [optionOrArray];\n const foundAddOption: OwnAddedOption | undefined = optionArray.find(\n option => !isRealOption(option) && !!option[CreateOptionMark]\n );\n\n if (foundAddOption) {\n onCreate(foundAddOption.newOptionTitle || '');\n return;\n }\n }\n\n // Handling of \"All\" option - only multiselect\n if (multiple && optionOrArray instanceof Array) {\n const allOptionExists = optionOrArray.some(\n option => !isRealOption(option) && !!option[AllOptionMark]\n );\n\n if (allOptionExists) {\n // Selecting \"All\"\n if (muiValue instanceof Array && muiValue.length < options.length) {\n onChange?.(options.filter(isRealOption) as never, reason, event);\n }\n // Deselecting \"All\"\n else {\n onChange?.([] as never, reason, event);\n }\n return;\n }\n }\n\n onChange?.((optionOrArray || undefined) as never, reason, event);\n },\n [focusOnClear, onCreate, multiple, onChange, muiValue, options]\n );\n\n const onSelectOnly = useCallback(\n (option: T, event: ChangeEvent<object>) =>\n onChange?.([option] as never, 'select-only-option', event),\n [onChange]\n );\n\n const actualRenderOption = useCallback<MuiAutocompleteProps<T>['renderOption']>(\n (option: InternalOption<T>, { selected }) => {\n if (isRealOption(option)) {\n return (\n <AutocompleteMenuItem\n size={optionSize}\n selected={selected}\n prefix={option.prefix}\n multiple={multiple}\n useOnlyButton={useOnlyOptionButton}\n option={option}\n onSelectOnly={onSelectOnly}\n >\n {renderOption(option)}\n </AutocompleteMenuItem>\n );\n } else if (option[AllOptionMark]) {\n return (\n <div className={styles.allOptionContainer}>\n <AutocompleteMenuItem\n size={optionSize}\n selected={hasMultiSelected}\n indeterminate={hasMultiSelected && !hasAllMultiSelected}\n multiple\n >\n {option.title}\n </AutocompleteMenuItem>\n <Menu.Divider className={styles.allOptionDivider} />\n </div>\n );\n } else {\n return (\n <AutocompleteMenuItem size={optionSize} selected={hasMultiSelected}>\n {option.title}\n </AutocompleteMenuItem>\n );\n }\n },\n [\n optionSize,\n multiple,\n useOnlyOptionButton,\n onSelectOnly,\n renderOption,\n hasMultiSelected,\n hasAllMultiSelected,\n ]\n );\n\n const actualFilterOptions = useCallback<MuiAutocompleteProps<T>['filterOptions']>(\n (options, params): InternalOption<T>[] => {\n const filteredOptions = filterOptions\n ? filterOptions(options as T[], params.inputValue)\n : createFilterOptions<T>()(options as T[], params);\n\n // Adding \"All\" option if needed\n const optionsWithAll =\n useAllOption && multiple && filteredOptions.length && options.length > 1\n ? [{ title: 'All', [AllOptionMark]: true }, ...filteredOptions]\n : filteredOptions;\n\n // Adding \"Add\" option if needed\n return onCreate && params.inputValue.trim() !== ''\n ? [\n ...optionsWithAll,\n {\n title: `Add \"${params.inputValue}\"`,\n [CreateOptionMark]: true,\n newOptionTitle: params.inputValue,\n },\n ]\n : optionsWithAll;\n },\n [filterOptions, onCreate, useAllOption, multiple]\n );\n\n const actualGetOptionDisabled = useCallback<MuiAutocompleteProps<T>['getOptionDisabled']>(\n option => isRealOption(option) && !!getOptionDisabled?.(option),\n [getOptionDisabled]\n );\n\n const getOptionLabel = useCallback<MuiAutocompleteProps<T>['getOptionLabel']>(\n option => option.title,\n []\n );\n\n const renderTags = useCallback<MuiAutocompleteProps<T>['renderTags']>(\n (tags, getTagProps) => {\n const tagsArray = tags.filter(isRealOption).map((option, index) => {\n // Untyped in MUI, so we have to do it ourselves\n const { onDelete } = getTagProps({ index }) as { onDelete: MouseEventHandler };\n return { option, onDelete };\n });\n\n return renderSelected(tagsArray, { useAllOption, allOptions: options });\n },\n [renderSelected, useAllOption, options]\n );\n\n const actualOnInputChange = useCallback<MuiAutocompleteProps<T>['onInputChange']>(\n (event, value, reason) => {\n if (event && event.type === 'blur') {\n setInputValue('');\n } else if (reason !== 'reset') {\n setInputValue(value);\n }\n\n if (reason !== 'reset') {\n onInputChange?.(value, event as ChangeEvent<HTMLInputElement>);\n }\n },\n [onInputChange]\n );\n\n const actualGroupBy = useMemo<MuiAutocompleteProps<T>['groupBy'] | undefined>(() => {\n if (groupBy) {\n return option => {\n if (isRealOption(option)) {\n return groupBy(option);\n }\n\n return '';\n };\n }\n\n return undefined;\n }, [groupBy]);\n\n const classes = useMemo(() => ({ paper: dropdownClassName }), [dropdownClassName]);\n\n const getOptionSelected = useCallback((a: InternalOption<T>, b: InternalOption<T>) => {\n return isRealOption(a) && isRealOption(b) ? a.id === b.id : false;\n }, []);\n\n const Component = MuiAutocomplete<InternalOption<T>, Multiple, boolean, false>;\n\n const PopperComponent = useCallback(\n (props: PopperProps) => (\n <Popper\n {...props}\n {...popperProps}\n className={classNames(props?.className, popperProps?.className)}\n />\n ),\n [popperProps]\n ) as NonNullable<MuiAutocompleteProps<T>['PopperComponent']>;\n\n const actualOnOpen = useCallback<MuiAutocompleteProps<T>['onOpen']>(() => {\n onOpen?.();\n }, [onOpen]);\n\n const actualOnClose = useCallback<MuiAutocompleteProps<T>['onClose']>(\n (_e, reason) => {\n onClose?.(reason);\n },\n [onClose]\n );\n\n return (\n <div\n className={classNames(\n styles.root,\n showPopupIcon && styles.withArrow,\n !disableClearable && styles.withClear,\n className\n )}\n data-testid={testId}\n >\n <Component\n value={muiValue}\n options={options}\n getOptionLabel={getOptionLabel}\n renderInput={renderInput}\n PopperComponent={PopperComponent}\n PaperComponent={AutocompletePaper}\n multiple={multiple}\n disableCloseOnSelect={multiple}\n blurOnSelect={!multiple}\n onChange={actualOnChange}\n renderOption={actualRenderOption}\n popupIcon={<DownIcon size={16} />}\n forcePopupIcon={!!showPopupIcon}\n closeIcon={<CloseSmallIcon size={16} />}\n disableClearable={disableClearable}\n clearText=\"\"\n noOptionsText={noOptionsMessage || defaultNoOptionsText}\n filterOptions={actualFilterOptions}\n disabled={disabled}\n getOptionDisabled={actualGetOptionDisabled}\n renderTags={renderTags}\n inputValue={multiple ? inputValue : undefined}\n onInputChange={actualOnInputChange}\n groupBy={actualGroupBy}\n renderGroup={renderGroup}\n clearOnBlur\n selectOnFocus={!disableFiltering}\n classes={classes}\n getOptionSelected={getOptionSelected}\n ListboxComponent={listboxComponent ?? AutocompleteListBox}\n onOpen={actualOnOpen}\n onClose={actualOnClose}\n />\n </div>\n );\n};\n\n// Old version\n/**\n * @deprecated use `AutocompleteNext`, and see migration guide for `TextInputNext` for details\n */\nexport type AutocompleteProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Omit<\n AutocompleteBaseProps<T, Multiple>,\n 'size' | 'labelPlacement' | 'elementsClassNames' | 'htmlAttributes' | 'isNext'\n>;\n\n/**\n * @deprecated use `AutocompleteNext`, and see migration guide for `TextInputNext` for details\n */\nexport const Autocomplete = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>(\n props: AutocompleteProps<T, Multiple>\n) => AutocompleteBase<T, Multiple>({ ...props, isNext: false });\n\n// New version\nexport type AutocompleteNextProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Omit<AutocompleteBaseProps<T, Multiple>, 'type' | 'spacing' | 'isNext'>;\n\nexport const AutocompleteNext = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>(\n props: AutocompleteNextProps<T, Multiple>\n) => AutocompleteBase<T, Multiple>({ ...props, isNext: true });\n\nAutocompleteNext.selectedValueRenderers = {\n default: renderSelectedValue,\n chipsMultiline: renderSelectedValueChips,\n};\n"],"names":["AutocompleteBase","_ref","label","_ref$options","options","value","onChange","multiple","_ref$renderOption","renderOption","renderOptionDefault","_ref$optionSize","optionSize","_ref$showPopupIcon","showPopupIcon","_ref$clearable","clearable","loading","noOptionsMessage","filterOptions","prefix","disabled","getOptionDisabled","_ref$renderSelected","renderSelected","renderSelectedValue","onInputChange","className","testId","status","message","_ref$useAllOption","useAllOption","_ref$useOnlyOptionBut","useOnlyOptionButton","groupBy","renderGroup","disableFiltering","onCreate","dropdownClassName","popperProps","placeholder","_ref$focusOnClear","focusOnClear","listboxComponent","_ref$size","size","_ref$labelPlacement","labelPlacement","elementsClassNames","htmlAttributes","onOpen","onClose","type","spacing","isNext","useState","_useState2","_slicedToArray","_useState","inputValue","setInputValue","muiValue","useMemo","undefined","Array","length","mixedValues","valuesArray","filter","_typeof","objectValues","map","_ref2","id","title","optionsById","option","includes","find","hasMultiSelected","hasAllMultiSelected","defaultNoOptionsText","disableClearable","renderInput","useCallback","inputProps","_jsx","AutocompleteInput","_objectSpread","readOnly","actualOnChange","event","optionOrArray","reason","stopPropagation","preventDefault","foundAddOption","isRealOption","CreateOptionMark","newOptionTitle","some","AllOptionMark","onSelectOnly","actualRenderOption","_ref3","selected","AutocompleteMenuItem","useOnlyButton","children","_jsxs","styles","allOptionContainer","indeterminate","Menu","Divider","allOptionDivider","actualFilterOptions","params","_ref5","filteredOptions","createFilterOptions","optionsWithAll","_defineProperty","trim","concat","_toConsumableArray","actualGetOptionDisabled","getOptionLabel","renderTags","tags","getTagProps","tagsArray","index","onDelete","allOptions","actualOnInputChange","actualGroupBy","classes","paper","getOptionSelected","a","b","Component","MuiAutocomplete","PopperComponent","props","Popper","classNames","actualOnOpen","actualOnClose","_e","root","withArrow","withClear","PaperComponent","AutocompletePaper","disableCloseOnSelect","blurOnSelect","popupIcon","DownIcon","forcePopupIcon","closeIcon","CloseSmallIcon","clearText","noOptionsText","clearOnBlur","selectOnFocus","ListboxComponent","AutocompleteListBox","Autocomplete","AutocompleteNext","selectedValueRenderers","default","chipsMultiline","renderSelectedValueChips"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","sources":["../../../src/componentsV2/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import {\n Autocomplete as MuiAutocomplete,\n AutocompleteChangeReason as MuiAutocompleteChangeReason,\n AutocompleteCloseReason as MuiAutocompleteCloseReason,\n AutocompleteProps as MuiAutocompleteBaseProps,\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n createFilterOptions,\n} from '@material-ui/lab';\nimport {\n ChangeEvent,\n ComponentType,\n HTMLAttributes,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { Popper, PopperProps } from '../Popper';\nimport { MenuItemProps } from '../Menu/MenuItem';\nimport { CloseSmallIcon, DownIcon } from '../../icons';\nimport { TextInputNextProps } from '../TextInputNext';\nimport { TextInputProps } from '../TextInput';\n\nimport { AutocompleteInput } from './AutocompleteInput';\nimport { AutocompletePaper } from './AutocompletePaper';\nimport {\n AllOptionMark,\n AutocompleteOption,\n CreateOptionMark,\n InternalOption,\n isRealOption,\n OwnAddedOption,\n renderOptionDefault,\n renderSelectedValue,\n renderSelectedValueChips,\n} from './utils';\nimport { AutocompleteMenuItem } from './AutocompleteMenuItem';\nimport { AutocompleteListBox } from './AutocompleteListBox';\n\nimport styles from './Autocomplete.scss';\nimport { Menu } from '../Menu';\n\ntype MuiAutocompleteProps<T extends AutocompleteOption> = Required<\n MuiAutocompleteBaseProps<InternalOption<T>, boolean, false, false>\n>;\n\ntype ChangeReason =\n | MuiAutocompleteChangeReason\n | 'select-option-all'\n | 'remove-option-all'\n | 'select-only-option';\ntype AutocompletePopperProps = Omit<PopperProps, 'open' | 'anchorEl' | 'children'>;\n\ntype AutocompleteBaseProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = {\n /**\n * Options to allow selection from. Has to be assignable to `{ id: string | number; title: string; prefix?: ReactNode; }[]`\n */\n options?: T[];\n /**\n * Selected value. If `multiple` is `false | undefined`, and the value is an array, only the first element will be used\n *\n * There's a [bug in TS](https://github.com/microsoft/TypeScript/issues/47599) which causes `onChange` prop\n * to have incorrect typing if we mix T and T['id'] in `value`. Therefore, we can't use the \"correct\" typing\n * ```\n * value?: T['id'] | T | (T['id'] | T)[];\n * ```\n *\n * You may need to provide additional typings\n */\n value?: string | number | T | (string | number | T)[];\n /**\n * If `true`, the component will support multiple selection\n */\n multiple?: Multiple;\n /**\n * Selection change handler\n * Receives an array of options if `multiple` is `true`, a single selected option or `undefined` otherwise\n */\n onChange?: (\n value: Multiple extends undefined | false ? T | undefined : T[],\n reason: ChangeReason,\n event?: ChangeEvent<unknown>\n ) => void;\n label?: ReactNode;\n placeholder?: string;\n /**\n * Controls the size of the options rendered\n */\n optionSize?: MenuItemProps['size'];\n disabled?: boolean;\n /**\n * If exists - allows user to create own options. Called when 'Add \"whatever\"' option is selected\n */\n onCreate?: (title: string) => void;\n\n prefix?: ReactNode;\n loading?: boolean;\n showPopupIcon?: boolean;\n /**\n * Controls the \"Clear\" button that's shown to the right if there is a value\n */\n clearable?: boolean;\n /**\n * Controls if the field should keep/gain focus after \"Clear\" button is clicked\n */\n focusOnClear?: boolean;\n /**\n * Triggered when user types something\n */\n onInputChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;\n status?: TextInputNextProps['status'];\n message?: TextInputNextProps['message'];\n size?: TextInputNextProps['size'];\n labelPlacement?: TextInputNextProps['labelPlacement'];\n /**\n * Makes internal text field readonly, effectively turning component into a simple `<select/>`\n */\n disableFiltering?: boolean;\n\n renderOption?: (item: T) => ReactNode;\n /**\n * Message to show when there are no options\n */\n noOptionsMessage?: ReactNode;\n spacing?: TextInputProps['spacing'];\n /**\n * Function that filters options based on input value\n */\n filterOptions?: (options: T[], inputValue: string) => T[];\n /**\n * Function that determines if an option is disabled. Used to override the default\n * @param option\n */\n getOptionDisabled?: (option: T) => boolean;\n /**\n * If `multiple === true` shows an \"All\" option that selects/deselects all options\n */\n useAllOption?: boolean;\n /**\n * If `multiple === true` shows a \"Select Only\" button on option that selects only the corresponding option\n */\n useOnlyOptionButton?: boolean;\n\n /**\n * Used to render selected values when `multiple === true`\n */\n renderSelected?: (\n data: { option: T; onDelete: MouseEventHandler }[],\n options: { useAllOption: boolean; allOptions: T[] }\n ) => ReactNode;\n\n /**\n * Defines option grouping\n */\n groupBy?: (option: T) => string;\n /**\n * Group render override\n */\n renderGroup?: (props: AutocompleteRenderGroupParams) => ReactNode;\n\n /**\n * A classname that will be applied to dropdown (`<Paper/>` component)\n */\n dropdownClassName?: string;\n /**\n * Escape hatch to customize dropdown popper behavior.\n * `open`, `anchorEl`, and `children` are controlled internally.\n */\n popperProps?: Partial<AutocompletePopperProps>;\n\n type?: 'default' | 'search';\n\n className?: string;\n testId?: string;\n\n /**\n * Called when the dropdown is opened\n */\n onOpen?: () => void;\n /**\n * Called when the dropdown is closed\n */\n onClose?: (reason: MuiAutocompleteCloseReason) => void;\n\n /**\n * Escape hatch to fine-tune the styling of underlying elements\n */\n elementsClassNames?: TextInputNextProps['elementsClassNames'];\n\n /** HTML attributes forwarded to the underlying input. */\n htmlAttributes?: TextInputNextProps['htmlAttributes'];\n\n /**\n * Custom listbox component for rendering options (e.g., virtualized list)\n */\n listboxComponent?: ComponentType<HTMLAttributes<HTMLElement>>;\n\n // TODO Remove when making next a new baseline\n isNext?: boolean;\n};\n\nexport type AutocompleteChangeHandler<\n Option extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Required<AutocompleteBaseProps<Option, Multiple>>['onChange'];\n\nconst AutocompleteBase = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>({\n label,\n options = [],\n value,\n onChange,\n multiple,\n renderOption = renderOptionDefault,\n optionSize = 'medium',\n showPopupIcon = true,\n clearable = true,\n loading,\n noOptionsMessage,\n filterOptions,\n prefix,\n disabled,\n getOptionDisabled,\n renderSelected = renderSelectedValue,\n onInputChange,\n className,\n testId,\n status,\n message,\n useAllOption = false,\n useOnlyOptionButton = false,\n groupBy,\n renderGroup,\n disableFiltering,\n onCreate,\n dropdownClassName,\n popperProps,\n placeholder,\n focusOnClear = true,\n listboxComponent,\n size = 'small',\n labelPlacement = 'top',\n elementsClassNames,\n htmlAttributes,\n onOpen,\n onClose,\n\n // Old props\n type,\n spacing,\n isNext,\n}: AutocompleteBaseProps<T, Multiple>) => {\n const [inputValue, setInputValue] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const inputValueRef = useRef('');\n\n const actualOnOpen = useCallback<MuiAutocompleteProps<T>['onOpen']>(() => {\n setIsOpen(true);\n onOpen?.();\n }, [onOpen]);\n\n const actualOnClose = useCallback<(event: unknown, reason: MuiAutocompleteCloseReason) => void>(\n (_e, reason) => {\n setIsOpen(false);\n onClose?.(reason);\n },\n [onClose]\n );\n\n const optionsById = useMemo(() => new Map(options.map(option => [option.id, option])), [options]);\n\n const muiValue = useMemo(() => {\n if (value === undefined || (value instanceof Array && value.length === 0)) {\n return multiple ? [] : null;\n }\n\n // Array of either ids or actual values\n const mixedValues = value instanceof Array ? value : [value];\n\n if (multiple) {\n return mixedValues\n .map(objOrId => {\n if (typeof objOrId === 'object') {\n // MUI Autocomplete doesn't like react nodes in value, so we strip everything from the object to the bare minimum\n const { id, title } = objOrId;\n return { id, title };\n } else {\n return optionsById.get(objOrId);\n }\n })\n .filter(item => item !== undefined);\n } else {\n return typeof mixedValues[0] === 'object'\n ? mixedValues[0]\n : options.find(option => mixedValues[0] === option.id) || null;\n }\n }, [multiple, value, options, optionsById]) as MuiAutocompleteBaseProps<\n T,\n Multiple,\n false,\n false\n >['value'];\n\n const hasMultiSelected = muiValue instanceof Array && muiValue.length > 0;\n const hasAllMultiSelected = muiValue instanceof Array && muiValue.length === options.length;\n const defaultNoOptionsText = loading ? 'Loading ...' : 'No options';\n const disableClearable =\n !clearable || !muiValue || (muiValue instanceof Array && !muiValue?.length);\n\n const actualOnChange = useCallback<MuiAutocompleteProps<T>['onChange']>(\n (event, optionOrArray, reason) => {\n if (reason === 'clear' && !focusOnClear) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n // Handling of \"Add\" option\n if (onCreate && optionOrArray) {\n const optionArray = optionOrArray instanceof Array ? optionOrArray : [optionOrArray];\n const foundAddOption: OwnAddedOption | undefined = optionArray.find(\n option => !isRealOption(option) && !!option[CreateOptionMark]\n );\n\n if (foundAddOption) {\n actualOnClose(undefined, 'select-option');\n onCreate(foundAddOption.newOptionTitle || '');\n return;\n }\n }\n\n // Handling of \"All\" option - only multiselect\n if (multiple && optionOrArray instanceof Array) {\n const allOptionExists = optionOrArray.some(\n option => !isRealOption(option) && !!option[AllOptionMark]\n );\n\n if (allOptionExists) {\n // Selecting \"All\"\n if (muiValue instanceof Array && muiValue.length < options.length) {\n onChange?.(options.filter(isRealOption) as never, reason, event);\n }\n // Deselecting \"All\"\n else {\n onChange?.([] as never, reason, event);\n }\n return;\n }\n }\n\n onChange?.((optionOrArray || undefined) as never, reason, event);\n },\n [focusOnClear, onCreate, multiple, onChange, muiValue, options, actualOnClose]\n );\n\n const onSelectOnly = useCallback(\n (option: T, event: ChangeEvent<object>) =>\n onChange?.([option] as never, 'select-only-option', event),\n [onChange]\n );\n\n const actualRenderOption = useCallback<MuiAutocompleteProps<T>['renderOption']>(\n (option: InternalOption<T>, { selected }) => {\n if (isRealOption(option)) {\n return (\n <AutocompleteMenuItem\n size={optionSize}\n selected={selected}\n prefix={option.prefix}\n multiple={multiple}\n useOnlyButton={useOnlyOptionButton}\n option={option}\n onSelectOnly={onSelectOnly}\n >\n {renderOption(option)}\n </AutocompleteMenuItem>\n );\n } else if (option[AllOptionMark]) {\n return (\n <div className={styles.allOptionContainer}>\n <AutocompleteMenuItem\n size={optionSize}\n selected={hasMultiSelected}\n indeterminate={hasMultiSelected && !hasAllMultiSelected}\n multiple\n >\n {option.title}\n </AutocompleteMenuItem>\n <Menu.Divider className={styles.allOptionDivider} />\n </div>\n );\n } else {\n return (\n <AutocompleteMenuItem size={optionSize} selected={hasMultiSelected}>\n {option.title}\n </AutocompleteMenuItem>\n );\n }\n },\n [\n optionSize,\n multiple,\n useOnlyOptionButton,\n onSelectOnly,\n renderOption,\n hasMultiSelected,\n hasAllMultiSelected,\n ]\n );\n\n const actualFilterOptions = useCallback<MuiAutocompleteProps<T>['filterOptions']>(\n (options, params): InternalOption<T>[] => {\n const filteredOptions = filterOptions\n ? filterOptions(options as T[], params.inputValue)\n : createFilterOptions<T>()(options as T[], params);\n\n // Adding \"All\" option if needed\n const optionsWithAll =\n useAllOption && multiple && filteredOptions.length && options.length > 1\n ? [{ title: 'All', [AllOptionMark]: true }, ...filteredOptions]\n : filteredOptions;\n\n // Adding \"Add\" option if needed\n return onCreate && params.inputValue.trim() !== ''\n ? [\n ...optionsWithAll,\n {\n title: `Add \"${params.inputValue}\"`,\n [CreateOptionMark]: true,\n newOptionTitle: params.inputValue,\n },\n ]\n : optionsWithAll;\n },\n [filterOptions, onCreate, useAllOption, multiple]\n );\n\n const actualGetOptionDisabled = useCallback<MuiAutocompleteProps<T>['getOptionDisabled']>(\n option => isRealOption(option) && !!getOptionDisabled?.(option),\n [getOptionDisabled]\n );\n\n const getOptionLabel = useCallback<MuiAutocompleteProps<T>['getOptionLabel']>(\n option => option.title,\n []\n );\n\n const renderTags = useCallback<MuiAutocompleteProps<T>['renderTags']>(\n (tags, getTagProps) => {\n const tagsArray = tags.filter(isRealOption).map((option, index) => {\n // Untyped in MUI, so we have to do it ourselves\n const { onDelete } = getTagProps({ index }) as { onDelete: MouseEventHandler };\n return { option, onDelete };\n });\n\n return renderSelected(tagsArray, { useAllOption, allOptions: options });\n },\n [renderSelected, useAllOption, options]\n );\n\n const actualOnInputChange = useCallback<MuiAutocompleteProps<T>['onInputChange']>(\n (event, newInputValue, reason) => {\n if (event && event.type === 'blur') {\n setInputValue('');\n inputValueRef.current = newInputValue;\n } else if (reason !== 'reset') {\n setInputValue(newInputValue);\n inputValueRef.current = newInputValue;\n }\n\n if (reason !== 'reset') {\n onInputChange?.(newInputValue, event as ChangeEvent<HTMLInputElement>);\n }\n },\n [onInputChange]\n );\n\n const actualGroupBy = useMemo<MuiAutocompleteProps<T>['groupBy'] | undefined>(() => {\n if (groupBy) {\n return option => {\n if (isRealOption(option)) {\n return groupBy(option);\n }\n\n return '';\n };\n }\n\n return undefined;\n }, [groupBy]);\n\n const classes = useMemo(() => ({ paper: dropdownClassName }), [dropdownClassName]);\n\n const getOptionSelected = useCallback((a: InternalOption<T>, b: InternalOption<T>) => {\n return isRealOption(a) && isRealOption(b) ? a.id === b.id : false;\n }, []);\n\n const Component = MuiAutocomplete<InternalOption<T>, Multiple, boolean, false>;\n\n const PopperComponent = useCallback(\n (props: PopperProps) => (\n <Popper\n {...props}\n {...popperProps}\n className={classNames(props?.className, popperProps?.className)}\n />\n ),\n [popperProps]\n ) as NonNullable<MuiAutocompleteProps<T>['PopperComponent']>;\n\n const onKey = useCallback<KeyboardEventHandler>(\n e => {\n if (e.code === 'Enter' && onCreate) {\n const filteredOptions = actualFilterOptions(options, {\n inputValue: inputValueRef.current,\n getOptionLabel,\n });\n\n if (\n filteredOptions.length === 1 &&\n !isRealOption(filteredOptions[0]) &&\n filteredOptions[0][CreateOptionMark]\n ) {\n actualOnClose(undefined, 'select-option');\n onCreate(filteredOptions[0].newOptionTitle || '');\n (document.activeElement as HTMLInputElement)?.blur?.();\n }\n }\n },\n [onCreate, actualFilterOptions, getOptionLabel, actualOnClose, options]\n );\n\n const renderInput = useCallback(\n (inputProps: AutocompleteRenderInputParams) => (\n <AutocompleteInput\n {...inputProps}\n label={label}\n loading={loading}\n prefix={prefix}\n status={status}\n message={message}\n readOnly={disableFiltering}\n placeholder={placeholder}\n size={size}\n labelPlacement={labelPlacement}\n elementsClassNames={elementsClassNames}\n htmlAttributes={htmlAttributes}\n // Old props\n type={type}\n spacing={spacing}\n isNext={isNext}\n onKeyUp={onKey}\n />\n ),\n [\n label,\n loading,\n prefix,\n status,\n message,\n disableFiltering,\n placeholder,\n size,\n labelPlacement,\n elementsClassNames,\n htmlAttributes,\n type,\n spacing,\n isNext,\n onKey,\n ]\n );\n\n return (\n <div\n className={classNames(\n styles.root,\n showPopupIcon && styles.withArrow,\n !disableClearable && styles.withClear,\n className\n )}\n data-testid={testId}\n >\n <Component\n value={muiValue}\n options={options}\n getOptionLabel={getOptionLabel}\n renderInput={renderInput}\n PopperComponent={PopperComponent}\n PaperComponent={AutocompletePaper}\n multiple={multiple}\n disableCloseOnSelect={multiple}\n blurOnSelect={!multiple}\n onChange={actualOnChange}\n renderOption={actualRenderOption}\n popupIcon={<DownIcon size={16} />}\n forcePopupIcon={showPopupIcon}\n closeIcon={<CloseSmallIcon size={16} />}\n disableClearable={disableClearable}\n clearText=\"\"\n noOptionsText={noOptionsMessage || defaultNoOptionsText}\n filterOptions={actualFilterOptions}\n disabled={disabled}\n getOptionDisabled={actualGetOptionDisabled}\n renderTags={renderTags}\n inputValue={multiple ? inputValue : undefined}\n onInputChange={actualOnInputChange}\n groupBy={actualGroupBy}\n renderGroup={renderGroup}\n clearOnBlur\n selectOnFocus={!disableFiltering}\n classes={classes}\n getOptionSelected={getOptionSelected}\n ListboxComponent={listboxComponent ?? AutocompleteListBox}\n onOpen={actualOnOpen}\n onClose={actualOnClose}\n open={isOpen}\n />\n </div>\n );\n};\n\n// Old version\n/**\n * @deprecated use `AutocompleteNext`, and see migration guide for `TextInputNext` for details\n */\nexport type AutocompleteProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Omit<\n AutocompleteBaseProps<T, Multiple>,\n 'size' | 'labelPlacement' | 'elementsClassNames' | 'htmlAttributes' | 'isNext'\n>;\n\n/**\n * @deprecated use `AutocompleteNext`, and see migration guide for `TextInputNext` for details\n */\nexport const Autocomplete = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>(\n props: AutocompleteProps<T, Multiple>\n) => AutocompleteBase<T, Multiple>({ ...props, isNext: false });\n\n// New version\nexport type AutocompleteNextProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Omit<AutocompleteBaseProps<T, Multiple>, 'type' | 'spacing' | 'isNext'>;\n\nexport const AutocompleteNext = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>(\n props: AutocompleteNextProps<T, Multiple>\n) => AutocompleteBase<T, Multiple>({ ...props, isNext: true });\n\nAutocompleteNext.selectedValueRenderers = {\n default: renderSelectedValue,\n chipsMultiline: renderSelectedValueChips,\n};\n"],"names":["AutocompleteBase","_ref","label","_ref$options","options","value","onChange","multiple","_ref$renderOption","renderOption","renderOptionDefault","_ref$optionSize","optionSize","_ref$showPopupIcon","showPopupIcon","_ref$clearable","clearable","loading","noOptionsMessage","filterOptions","prefix","disabled","getOptionDisabled","_ref$renderSelected","renderSelected","renderSelectedValue","onInputChange","className","testId","status","message","_ref$useAllOption","useAllOption","_ref$useOnlyOptionBut","useOnlyOptionButton","groupBy","renderGroup","disableFiltering","onCreate","dropdownClassName","popperProps","placeholder","_ref$focusOnClear","focusOnClear","listboxComponent","_ref$size","size","_ref$labelPlacement","labelPlacement","elementsClassNames","htmlAttributes","onOpen","onClose","type","spacing","isNext","useState","_useState2","_slicedToArray","_useState","inputValue","setInputValue","_useState4","_useState3","isOpen","setIsOpen","inputValueRef","useRef","actualOnOpen","useCallback","actualOnClose","_e","reason","optionsById","useMemo","Map","map","option","id","muiValue","undefined","Array","length","mixedValues","objOrId","_typeof","title","get","filter","item","find","hasMultiSelected","hasAllMultiSelected","defaultNoOptionsText","disableClearable","actualOnChange","event","optionOrArray","stopPropagation","preventDefault","foundAddOption","isRealOption","CreateOptionMark","newOptionTitle","some","AllOptionMark","onSelectOnly","actualRenderOption","_ref2","selected","_jsx","AutocompleteMenuItem","useOnlyButton","children","_jsxs","styles","allOptionContainer","indeterminate","Menu","Divider","allOptionDivider","actualFilterOptions","params","_ref4","filteredOptions","createFilterOptions","optionsWithAll","_defineProperty","trim","concat","_toConsumableArray","actualGetOptionDisabled","getOptionLabel","renderTags","tags","getTagProps","tagsArray","index","onDelete","allOptions","actualOnInputChange","newInputValue","current","actualGroupBy","classes","paper","getOptionSelected","a","b","Component","MuiAutocomplete","PopperComponent","props","Popper","classNames","onKey","e","code","_document$activeEleme","_document$activeEleme2","document","activeElement","blur","call","renderInput","inputProps","AutocompleteInput","_objectSpread","readOnly","onKeyUp","root","withArrow","withClear","PaperComponent","AutocompletePaper","disableCloseOnSelect","blurOnSelect","popupIcon","DownIcon","forcePopupIcon","closeIcon","CloseSmallIcon","clearText","noOptionsText","clearOnBlur","selectOnFocus","ListboxComponent","AutocompleteListBox","open","Autocomplete","AutocompleteNext","selectedValueRenderers","default","chipsMultiline","renderSelectedValueChips"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteInput.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAIjE,OAAO,EAAiB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAa,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAI5D,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,GAC9E,kBAAkB,GAClB,cAAc,GAAG;IAGf,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,mFAS3B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"AutocompleteInput.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAIjE,OAAO,EAAiB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAa,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAI5D,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,GAC9E,kBAAkB,GAClB,cAAc,GAAG;IAGf,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,mFAS3B,sBAAsB,4CAmHxB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/objectWithoutProperties";import{useCallback as
|
|
1
|
+
import e from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/objectWithoutProperties";import{useCallback as n,useMemo as r}from"react";import o from"classnames";import{TextInputNext as i}from"../../TextInputNext/TextInputNext.js";import{TextInput as u}from"../../TextInput/TextInput.js";import s from"../Autocomplete.scss.js";import{jsxs as l,Fragment as p,jsx as a}from"react/jsx-runtime";var f=["inputProps","disabled","InputProps","prefix","loading","status","isNext"];function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?c(Object(r),!0).forEach((function(n){e(t,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var d=function(e){var c=e.inputProps,d=e.disabled,b=e.InputProps,x=e.prefix,O=e.loading,y=e.status,j=e.isNext,P=t(e,f),g=P.label,h=P.size,v=P.labelPlacement,w=P.elementsClassNames,C=P.htmlAttributes,A=P.readOnly,D=P.placeholder,I=P.onKeyDown,N=P.onKeyUp,K=c.onChange,T=c.onBlur,B=c.onFocus,E=c.onMouseDown,F=c.ref,R=c.value,S=c.id,z=n((function(e,t,n){null==K||K(n,e)}),[K]),U=n((function(e,t){null==K||K(t,e)}),[K]),k=n((function(e){if(B(e),E(e),A){var t=e.target;t.selectionStart=t.selectionEnd}}),[B,E,A]),M=(x||b.startAdornment)&&l(p,{children:[x,b.startAdornment]}),W=r((function(){return m(m({},w),{},{input:o(s.input,null==w?void 0:w.input,A&&s.readOnlyInput),prefix:o(s.prefix,null==w?void 0:w.prefix),suffix:o(s.suffix,null==w?void 0:w.suffix),inputContainer:o(s.inputContainer,null==w?void 0:w.inputContainer)})}),[w,A]),q=r((function(){return m(m({},C),{},{id:S})}),[C,S]);return j?a(i,{disabled:d,prefix:M,suffix:b.endAdornment,onBlur:T,onChange:z,onFocus:k,inputRef:F,value:R,inputContainerRef:b.ref,status:O?"loading":y,label:g,size:h,labelPlacement:v,elementsClassNames:W,htmlAttributes:q,readOnly:A,placeholder:D,onKeyUp:N,onKeyDown:I}):a(u,m({disabled:d,prefix:M,suffix:b.endAdornment,onBlur:T,onChange:U,onFocus:k,inputRef:F,value:R,ref:b.ref,status:O?"loading":y},P))};export{d as AutocompleteInput};
|
|
2
2
|
//# sourceMappingURL=AutocompleteInput.js.map
|