mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-13 03:31:31 +00:00
Build modified streamline images
The official image from streamline does not currently work for the arm64 platform. As a temporary measure, the source code and docker build scripts have been lifted from the official images and are used to build locally. Some additional modifications are made to reduce overall image size, these are documented in docker/README.md
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2019 Adam Shaw
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
# FullCalendar Luxon Plugin
|
||||
|
||||
A connector to the Luxon date library
|
||||
|
||||
[View the docs »](https://fullcalendar.io/docs/luxon-plugin)
|
||||
|
||||
This package was created from the [FullCalendar monorepo »](https://github.com/fullcalendar/fullcalendar)
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// Generated by dts-bundle v0.7.3-fork.1
|
||||
// Dependencies for this module:
|
||||
// ../../../../../luxon
|
||||
// ../../../../../@fullcalendar/core
|
||||
|
||||
declare module '@fullcalendar/luxon' {
|
||||
import { DateTime as LuxonDateTime, Duration as LuxonDuration } from 'luxon';
|
||||
import { Calendar, Duration } from '@fullcalendar/core';
|
||||
export function toDateTime(date: Date, calendar: Calendar): LuxonDateTime;
|
||||
export function toDuration(duration: Duration, calendar: Calendar): LuxonDuration;
|
||||
const _default: import("@fullcalendar/core").PluginDef;
|
||||
export default _default;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
/*!
|
||||
FullCalendar Luxon Plugin v4.3.0
|
||||
Docs & License: https://fullcalendar.io/
|
||||
(c) 2019 Adam Shaw
|
||||
*/
|
||||
|
||||
import { DateTime, Duration } from 'luxon';
|
||||
import { createPlugin, Calendar, NamedTimeZoneImpl } from '@fullcalendar/core';
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||
this file except in compliance with the License. You may obtain a copy of the
|
||||
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||
|
||||
See the Apache Version 2.0 License for specific language governing permissions
|
||||
and limitations under the License.
|
||||
***************************************************************************** */
|
||||
/* global Reflect, Promise */
|
||||
|
||||
var extendStatics = function(d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
|
||||
function __extends(d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
}
|
||||
|
||||
var __assign = function() {
|
||||
__assign = Object.assign || function __assign(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
return __assign.apply(this, arguments);
|
||||
};
|
||||
|
||||
function toDateTime(date, calendar) {
|
||||
if (!(calendar instanceof Calendar)) {
|
||||
throw new Error('must supply a Calendar instance');
|
||||
}
|
||||
return DateTime.fromJSDate(date, {
|
||||
zone: calendar.dateEnv.timeZone,
|
||||
locale: calendar.dateEnv.locale.codes[0]
|
||||
});
|
||||
}
|
||||
function toDuration(duration, calendar) {
|
||||
if (!(calendar instanceof Calendar)) {
|
||||
throw new Error('must supply a Calendar instance');
|
||||
}
|
||||
return Duration.fromObject(__assign({}, duration, { locale: calendar.dateEnv.locale.codes[0] }));
|
||||
}
|
||||
var LuxonNamedTimeZone = /** @class */ (function (_super) {
|
||||
__extends(LuxonNamedTimeZone, _super);
|
||||
function LuxonNamedTimeZone() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
LuxonNamedTimeZone.prototype.offsetForArray = function (a) {
|
||||
return arrayToLuxon(a, this.timeZoneName).offset;
|
||||
};
|
||||
LuxonNamedTimeZone.prototype.timestampToArray = function (ms) {
|
||||
return luxonToArray(DateTime.fromMillis(ms, {
|
||||
zone: this.timeZoneName
|
||||
}));
|
||||
};
|
||||
return LuxonNamedTimeZone;
|
||||
}(NamedTimeZoneImpl));
|
||||
function formatWithCmdStr(cmdStr, arg) {
|
||||
var cmd = parseCmdStr(cmdStr);
|
||||
if (arg.end) {
|
||||
var start = arrayToLuxon(arg.start.array, arg.timeZone, arg.localeCodes[0]);
|
||||
var end = arrayToLuxon(arg.end.array, arg.timeZone, arg.localeCodes[0]);
|
||||
return formatRange(cmd, start.toFormat.bind(start), end.toFormat.bind(end), arg.separator);
|
||||
}
|
||||
return arrayToLuxon(arg.date.array, arg.timeZone, arg.localeCodes[0]).toFormat(cmd.whole);
|
||||
}
|
||||
var main = createPlugin({
|
||||
cmdFormatter: formatWithCmdStr,
|
||||
namedTimeZonedImpl: LuxonNamedTimeZone
|
||||
});
|
||||
function luxonToArray(datetime) {
|
||||
return [
|
||||
datetime.year,
|
||||
datetime.month - 1,
|
||||
datetime.day,
|
||||
datetime.hour,
|
||||
datetime.minute,
|
||||
datetime.second,
|
||||
datetime.millisecond
|
||||
];
|
||||
}
|
||||
function arrayToLuxon(arr, timeZone, locale) {
|
||||
return DateTime.fromObject({
|
||||
zone: timeZone,
|
||||
locale: locale,
|
||||
year: arr[0],
|
||||
month: arr[1] + 1,
|
||||
day: arr[2],
|
||||
hour: arr[3],
|
||||
minute: arr[4],
|
||||
second: arr[5],
|
||||
millisecond: arr[6]
|
||||
});
|
||||
}
|
||||
function parseCmdStr(cmdStr) {
|
||||
var parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
|
||||
if (parts) {
|
||||
var middle = parseCmdStr(parts[2]);
|
||||
return {
|
||||
head: parts[1],
|
||||
middle: middle,
|
||||
tail: parts[3],
|
||||
whole: parts[1] + middle.whole + parts[3]
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {
|
||||
head: null,
|
||||
middle: null,
|
||||
tail: null,
|
||||
whole: cmdStr
|
||||
};
|
||||
}
|
||||
}
|
||||
function formatRange(cmd, formatStart, formatEnd, separator) {
|
||||
if (cmd.middle) {
|
||||
var startHead = formatStart(cmd.head);
|
||||
var startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
||||
var startTail = formatStart(cmd.tail);
|
||||
var endHead = formatEnd(cmd.head);
|
||||
var endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
||||
var endTail = formatEnd(cmd.tail);
|
||||
if (startHead === endHead && startTail === endTail) {
|
||||
return startHead +
|
||||
(startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
|
||||
startTail;
|
||||
}
|
||||
}
|
||||
var startWhole = formatStart(cmd.whole);
|
||||
var endWhole = formatEnd(cmd.whole);
|
||||
if (startWhole === endWhole) {
|
||||
return startWhole;
|
||||
}
|
||||
else {
|
||||
return startWhole + separator + endWhole;
|
||||
}
|
||||
}
|
||||
|
||||
export default main;
|
||||
export { toDateTime, toDuration };
|
||||
@@ -0,0 +1,170 @@
|
||||
/*!
|
||||
FullCalendar Luxon Plugin v4.3.0
|
||||
Docs & License: https://fullcalendar.io/
|
||||
(c) 2019 Adam Shaw
|
||||
*/
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('luxon'), require('@fullcalendar/core')) :
|
||||
typeof define === 'function' && define.amd ? define(['exports', 'luxon', '@fullcalendar/core'], factory) :
|
||||
(global = global || self, factory(global.FullCalendarLuxon = {}, global.luxon, global.FullCalendar));
|
||||
}(this, function (exports, luxon, core) { 'use strict';
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||
this file except in compliance with the License. You may obtain a copy of the
|
||||
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||
|
||||
See the Apache Version 2.0 License for specific language governing permissions
|
||||
and limitations under the License.
|
||||
***************************************************************************** */
|
||||
/* global Reflect, Promise */
|
||||
|
||||
var extendStatics = function(d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
|
||||
function __extends(d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
}
|
||||
|
||||
var __assign = function() {
|
||||
__assign = Object.assign || function __assign(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
return __assign.apply(this, arguments);
|
||||
};
|
||||
|
||||
function toDateTime(date, calendar) {
|
||||
if (!(calendar instanceof core.Calendar)) {
|
||||
throw new Error('must supply a Calendar instance');
|
||||
}
|
||||
return luxon.DateTime.fromJSDate(date, {
|
||||
zone: calendar.dateEnv.timeZone,
|
||||
locale: calendar.dateEnv.locale.codes[0]
|
||||
});
|
||||
}
|
||||
function toDuration(duration, calendar) {
|
||||
if (!(calendar instanceof core.Calendar)) {
|
||||
throw new Error('must supply a Calendar instance');
|
||||
}
|
||||
return luxon.Duration.fromObject(__assign({}, duration, { locale: calendar.dateEnv.locale.codes[0] }));
|
||||
}
|
||||
var LuxonNamedTimeZone = /** @class */ (function (_super) {
|
||||
__extends(LuxonNamedTimeZone, _super);
|
||||
function LuxonNamedTimeZone() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
LuxonNamedTimeZone.prototype.offsetForArray = function (a) {
|
||||
return arrayToLuxon(a, this.timeZoneName).offset;
|
||||
};
|
||||
LuxonNamedTimeZone.prototype.timestampToArray = function (ms) {
|
||||
return luxonToArray(luxon.DateTime.fromMillis(ms, {
|
||||
zone: this.timeZoneName
|
||||
}));
|
||||
};
|
||||
return LuxonNamedTimeZone;
|
||||
}(core.NamedTimeZoneImpl));
|
||||
function formatWithCmdStr(cmdStr, arg) {
|
||||
var cmd = parseCmdStr(cmdStr);
|
||||
if (arg.end) {
|
||||
var start = arrayToLuxon(arg.start.array, arg.timeZone, arg.localeCodes[0]);
|
||||
var end = arrayToLuxon(arg.end.array, arg.timeZone, arg.localeCodes[0]);
|
||||
return formatRange(cmd, start.toFormat.bind(start), end.toFormat.bind(end), arg.separator);
|
||||
}
|
||||
return arrayToLuxon(arg.date.array, arg.timeZone, arg.localeCodes[0]).toFormat(cmd.whole);
|
||||
}
|
||||
var main = core.createPlugin({
|
||||
cmdFormatter: formatWithCmdStr,
|
||||
namedTimeZonedImpl: LuxonNamedTimeZone
|
||||
});
|
||||
function luxonToArray(datetime) {
|
||||
return [
|
||||
datetime.year,
|
||||
datetime.month - 1,
|
||||
datetime.day,
|
||||
datetime.hour,
|
||||
datetime.minute,
|
||||
datetime.second,
|
||||
datetime.millisecond
|
||||
];
|
||||
}
|
||||
function arrayToLuxon(arr, timeZone, locale) {
|
||||
return luxon.DateTime.fromObject({
|
||||
zone: timeZone,
|
||||
locale: locale,
|
||||
year: arr[0],
|
||||
month: arr[1] + 1,
|
||||
day: arr[2],
|
||||
hour: arr[3],
|
||||
minute: arr[4],
|
||||
second: arr[5],
|
||||
millisecond: arr[6]
|
||||
});
|
||||
}
|
||||
function parseCmdStr(cmdStr) {
|
||||
var parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
|
||||
if (parts) {
|
||||
var middle = parseCmdStr(parts[2]);
|
||||
return {
|
||||
head: parts[1],
|
||||
middle: middle,
|
||||
tail: parts[3],
|
||||
whole: parts[1] + middle.whole + parts[3]
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {
|
||||
head: null,
|
||||
middle: null,
|
||||
tail: null,
|
||||
whole: cmdStr
|
||||
};
|
||||
}
|
||||
}
|
||||
function formatRange(cmd, formatStart, formatEnd, separator) {
|
||||
if (cmd.middle) {
|
||||
var startHead = formatStart(cmd.head);
|
||||
var startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
||||
var startTail = formatStart(cmd.tail);
|
||||
var endHead = formatEnd(cmd.head);
|
||||
var endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
||||
var endTail = formatEnd(cmd.tail);
|
||||
if (startHead === endHead && startTail === endTail) {
|
||||
return startHead +
|
||||
(startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
|
||||
startTail;
|
||||
}
|
||||
}
|
||||
var startWhole = formatStart(cmd.whole);
|
||||
var endWhole = formatEnd(cmd.whole);
|
||||
if (startWhole === endWhole) {
|
||||
return startWhole;
|
||||
}
|
||||
else {
|
||||
return startWhole + separator + endWhole;
|
||||
}
|
||||
}
|
||||
|
||||
exports.default = main;
|
||||
exports.toDateTime = toDateTime;
|
||||
exports.toDuration = toDuration;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
}));
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
FullCalendar Luxon Plugin v4.3.0
|
||||
Docs & License: https://fullcalendar.io/
|
||||
(c) 2019 Adam Shaw
|
||||
*/
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("luxon"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","luxon","@fullcalendar/core"],t):t((e=e||self).FullCalendarLuxon={},e.luxon,e.FullCalendar)}(this,function(e,t,n){"use strict";var o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};var r=function(){return(r=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};var a=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(n,e),n.prototype.offsetForArray=function(e){return l(e,this.timeZoneName).offset},n.prototype.timestampToArray=function(e){return[(n=t.DateTime.fromMillis(e,{zone:this.timeZoneName})).year,n.month-1,n.day,n.hour,n.minute,n.second,n.millisecond];var n},n}(n.NamedTimeZoneImpl);var i=n.createPlugin({cmdFormatter:function(e,t){var n=function e(t){var n=t.match(/^(.*?)\{(.*)\}(.*)$/);if(n){var o=e(n[2]);return{head:n[1],middle:o,tail:n[3],whole:n[1]+o.whole+n[3]}}return{head:null,middle:null,tail:null,whole:t}}(e);if(t.end){var o=l(t.start.array,t.timeZone,t.localeCodes[0]),r=l(t.end.array,t.timeZone,t.localeCodes[0]);return function e(t,n,o,r){if(t.middle){var a=n(t.head),i=e(t.middle,n,o,r),l=n(t.tail),u=o(t.head),c=e(t.middle,n,o,r),d=o(t.tail);if(a===u&&l===d)return a+(i===c?i:i+r+c)+l}var f=n(t.whole),m=o(t.whole);return f===m?f:f+r+m}(n,o.toFormat.bind(o),r.toFormat.bind(r),t.separator)}return l(t.date.array,t.timeZone,t.localeCodes[0]).toFormat(n.whole)},namedTimeZonedImpl:a});function l(e,n,o){return t.DateTime.fromObject({zone:n,locale:o,year:e[0],month:e[1]+1,day:e[2],hour:e[3],minute:e[4],second:e[5],millisecond:e[6]})}e.default=i,e.toDateTime=function(e,o){if(!(o instanceof n.Calendar))throw new Error("must supply a Calendar instance");return t.DateTime.fromJSDate(e,{zone:o.dateEnv.timeZone,locale:o.dateEnv.locale.codes[0]})},e.toDuration=function(e,o){if(!(o instanceof n.Calendar))throw new Error("must supply a Calendar instance");return t.Duration.fromObject(r({},e,{locale:o.dateEnv.locale.codes[0]}))},Object.defineProperty(e,"__esModule",{value:!0})});
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "@fullcalendar/luxon",
|
||||
"version": "4.3.0",
|
||||
"title": "FullCalendar Luxon Plugin",
|
||||
"description": "A connector to the Luxon date library",
|
||||
"keywords": [
|
||||
"calendar",
|
||||
"event",
|
||||
"full-sized"
|
||||
],
|
||||
"homepage": "https://fullcalendar.io/",
|
||||
"docs": "https://fullcalendar.io/docs/luxon-plugin",
|
||||
"bugs": "https://fullcalendar.io/reporting-bugs",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fullcalendar/fullcalendar.git",
|
||||
"homepage": "https://github.com/fullcalendar/fullcalendar"
|
||||
},
|
||||
"license": "MIT",
|
||||
"author": {
|
||||
"name": "Adam Shaw",
|
||||
"email": "arshaw@arshaw.com",
|
||||
"url": "http://arshaw.com/"
|
||||
},
|
||||
"copyright": "2019 Adam Shaw",
|
||||
"peerDependencies": {
|
||||
"@fullcalendar/core": "~4.3.0",
|
||||
"luxon": "^1.12.1"
|
||||
},
|
||||
"main": "main.js",
|
||||
"module": "main.esm.js",
|
||||
"unpkg": "main.min.js",
|
||||
"types": "main.d.ts"
|
||||
}
|
||||
Reference in New Issue
Block a user