feat: Add comprehensive documentation suite and reorganize project structure
- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
This commit is contained in:
60
f_scripts/shared/linkify/linkify-polyfill.js
Normal file
60
f_scripts/shared/linkify/linkify-polyfill.js
Normal file
@@ -0,0 +1,60 @@
|
||||
(function () {
|
||||
if (typeof Object.freeze != 'function') {
|
||||
Object.freeze = function (obj) { return obj; }
|
||||
}
|
||||
if (typeof Object.create != 'function') {
|
||||
Object.create = (function() {
|
||||
var Temp = function() {};
|
||||
return function (prototype) {
|
||||
if(prototype !== Object(prototype) && prototype !== null) {
|
||||
throw TypeError('Argument must be an object or null');
|
||||
}
|
||||
if (prototype === null) {
|
||||
throw Error('null [[Prototype]] not supported');
|
||||
}
|
||||
Temp.prototype = prototype;
|
||||
var result = new Temp();
|
||||
Temp.prototype = null;
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
}
|
||||
|
||||
if (typeof Object.defineProperty != 'function') {
|
||||
Object.defineProperty = function defineProperty(object, property, descriptor) {
|
||||
if ('value' in descriptor) {
|
||||
object[property] = descriptor.value;
|
||||
}
|
||||
return object;
|
||||
};
|
||||
}
|
||||
|
||||
if (!Array.prototype.indexOf) {
|
||||
Array.prototype.indexOf = function (searchElement, fromIndex) {
|
||||
var k;
|
||||
if (this == null) {
|
||||
throw new TypeError('"this" is null or not defined');
|
||||
}
|
||||
var o = Object(this);
|
||||
var len = o.length >>> 0;
|
||||
if (len === 0) {
|
||||
return -1;
|
||||
}
|
||||
var n = +fromIndex || 0;
|
||||
if (Math.abs(n) === Infinity) {
|
||||
n = 0;
|
||||
}
|
||||
if (n >= len) {
|
||||
return -1;
|
||||
}
|
||||
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
|
||||
while (k < len) {
|
||||
if (k in o && o[k] === searchElement) {
|
||||
return k;
|
||||
}
|
||||
k++;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user