mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-30 02:40:08 +00:00
more cleanup and optional defaults...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
3400c3ab34
commit
382de1db79
@ -2958,7 +2958,7 @@ var DataPrototype = {
|
|||||||
|
|
||||||
var BaseData =
|
var BaseData =
|
||||||
module.BaseData =
|
module.BaseData =
|
||||||
object.makeConstructor('BaseData',
|
object.makeConstructor('BaseData',
|
||||||
DataClassPrototype,
|
DataClassPrototype,
|
||||||
DataPrototype)
|
DataPrototype)
|
||||||
|
|
||||||
@ -3261,7 +3261,7 @@ var DataWithTagsPrototype = {
|
|||||||
|
|
||||||
var DataWithTags =
|
var DataWithTags =
|
||||||
module.DataWithTags =
|
module.DataWithTags =
|
||||||
object.makeConstructor('DataWithTags',
|
object.makeConstructor('DataWithTags',
|
||||||
DataClassPrototype,
|
DataClassPrototype,
|
||||||
DataWithTagsPrototype)
|
DataWithTagsPrototype)
|
||||||
|
|
||||||
|
|||||||
@ -290,7 +290,7 @@ module.ImagePrototype = {
|
|||||||
|
|
||||||
var Image =
|
var Image =
|
||||||
module.Image =
|
module.Image =
|
||||||
object.makeConstructor('Image',
|
object.makeConstructor('Image',
|
||||||
ImageClassPrototype,
|
ImageClassPrototype,
|
||||||
ImagePrototype)
|
ImagePrototype)
|
||||||
|
|
||||||
@ -757,7 +757,7 @@ module.ImagesPrototype = {
|
|||||||
// Main Images object...
|
// Main Images object...
|
||||||
var Images =
|
var Images =
|
||||||
module.Images =
|
module.Images =
|
||||||
object.makeConstructor('Images',
|
object.makeConstructor('Images',
|
||||||
ImagesClassPrototype,
|
ImagesClassPrototype,
|
||||||
ImagesPrototype)
|
ImagesPrototype)
|
||||||
|
|
||||||
|
|||||||
@ -996,9 +996,9 @@ var BaseRibbonsPrototype = {
|
|||||||
|
|
||||||
var BaseRibbons =
|
var BaseRibbons =
|
||||||
module.BaseRibbons =
|
module.BaseRibbons =
|
||||||
object.makeConstructor('BaseRibbons',
|
object.makeConstructor('BaseRibbons',
|
||||||
BaseRibbonsClassPrototype,
|
BaseRibbonsClassPrototype,
|
||||||
BaseRibbonsPrototype)
|
BaseRibbonsPrototype)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2572,9 +2572,9 @@ RibbonsPrototype.__proto__ = BaseRibbonsPrototype
|
|||||||
|
|
||||||
var Ribbons =
|
var Ribbons =
|
||||||
module.Ribbons =
|
module.Ribbons =
|
||||||
object.makeConstructor('Ribbons',
|
object.makeConstructor('Ribbons',
|
||||||
RibbonsClassPrototype,
|
RibbonsClassPrototype,
|
||||||
RibbonsPrototype)
|
RibbonsPrototype)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -78,7 +78,7 @@ var normalizeSplit = function(args){
|
|||||||
|
|
||||||
/*********************************************************************/
|
/*********************************************************************/
|
||||||
|
|
||||||
// Helpers...
|
// meta stuff...
|
||||||
var makeSplitter = function(separator, unique){
|
var makeSplitter = function(separator, unique){
|
||||||
return function(...tags){
|
return function(...tags){
|
||||||
var SP = this[separator]
|
var SP = this[separator]
|
||||||
@ -94,12 +94,17 @@ var makeJoiner = function(separator){
|
|||||||
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
//
|
|
||||||
var BaseTagsClassPrototype = {
|
var BaseTagsClassPrototype = {
|
||||||
|
// Tag syntax...
|
||||||
|
//
|
||||||
|
// NOTE: this is not used for anything but .replace(..), thus 'g'
|
||||||
|
// flag is required here...
|
||||||
|
TAG_ILLEGAL_CHARS: /[\s-_]/g,
|
||||||
|
|
||||||
// NOTE: do not include 'g' flag here, it will make the RE objects
|
// NOTE: do not include 'g' flag here, it will make the RE objects
|
||||||
// stateful which will yield very unpredictable results from
|
// stateful which will yield very unpredictable results from
|
||||||
// general system.
|
// general system as these objects are used for testing.
|
||||||
PATH_SEPARATOR: '/',
|
PATH_SEPARATOR: '/',
|
||||||
PATH_SEPARATOR_PATTERN: /[\\\/]+/,
|
PATH_SEPARATOR_PATTERN: /[\\\/]+/,
|
||||||
|
|
||||||
@ -108,6 +113,7 @@ var BaseTagsClassPrototype = {
|
|||||||
|
|
||||||
COMBINED_SEPARATOR_PATTERN: /[:\\\/]+/,
|
COMBINED_SEPARATOR_PATTERN: /[:\\\/]+/,
|
||||||
|
|
||||||
|
|
||||||
// Utils...
|
// Utils...
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
@ -123,6 +129,9 @@ var BaseTagsClassPrototype = {
|
|||||||
joinSet: makeJoiner('SET_SEPARATOR'),
|
joinSet: makeJoiner('SET_SEPARATOR'),
|
||||||
joinPath: makeJoiner('PATH_SEPARATOR'),
|
joinPath: makeJoiner('PATH_SEPARATOR'),
|
||||||
|
|
||||||
|
|
||||||
|
// Constructor API...
|
||||||
|
//
|
||||||
// Normalize tags...
|
// Normalize tags...
|
||||||
//
|
//
|
||||||
// .normalize(tag)
|
// .normalize(tag)
|
||||||
@ -150,18 +159,14 @@ var BaseTagsClassPrototype = {
|
|||||||
var PS = this.PATH_SEPARATOR
|
var PS = this.PATH_SEPARATOR
|
||||||
var SP = this.SET_SEPARATOR_PATTERN
|
var SP = this.SET_SEPARATOR_PATTERN
|
||||||
var PP = this.PATH_SEPARATOR_PATTERN
|
var PP = this.PATH_SEPARATOR_PATTERN
|
||||||
var tagRemovedChars = (this.config || {})['tagRemovedChars']
|
var ILLEGAL_CHARS = this.TAG_ILLEGAL_CHARS
|
||||||
tagRemovedChars = tagRemovedChars instanceof RegExp ?
|
|
||||||
tagRemovedChars
|
|
||||||
: typeof(tagRemovedChars) == typeof('str') ?
|
|
||||||
new RegExp(tagRemovedChars, 'g')
|
|
||||||
: /[\s-_]/g
|
|
||||||
var res = normalizeSplit(tags)
|
var res = normalizeSplit(tags)
|
||||||
.map(function(tag){
|
.map(function(tag){
|
||||||
return tag
|
return tag
|
||||||
.trim()
|
.trim()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.replace(tagRemovedChars, '')
|
.replace(ILLEGAL_CHARS, '')
|
||||||
// sort sets within paths...
|
// sort sets within paths...
|
||||||
.split(PP)
|
.split(PP)
|
||||||
.map(function(e){
|
.map(function(e){
|
||||||
@ -274,18 +279,11 @@ var BaseTagsClassPrototype = {
|
|||||||
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
// XXX should we split out the non-basic stuff???
|
|
||||||
// like:
|
|
||||||
// .makePathsPersistent()
|
|
||||||
// .optimizeTags()
|
|
||||||
// ...
|
|
||||||
var BaseTagsPrototype = {
|
var BaseTagsPrototype = {
|
||||||
config: {
|
|
||||||
// XXX docs!
|
|
||||||
tagRemovedChars: '[\\s-_]',
|
|
||||||
},
|
|
||||||
|
|
||||||
// NOTE: for notes on structure see notes on the Utils section below...
|
// NOTE: for notes on structure see notes on the Utils section below...
|
||||||
|
TAG_ILLEGAL_CHARS: BaseTagsClassPrototype.TAG_ILLEGAL_CHARS,
|
||||||
PATH_SEPARATOR: BaseTagsClassPrototype.PATH_SEPARATOR,
|
PATH_SEPARATOR: BaseTagsClassPrototype.PATH_SEPARATOR,
|
||||||
PATH_SEPARATOR_PATTERN: BaseTagsClassPrototype.PATH_SEPARATOR_PATTERN,
|
PATH_SEPARATOR_PATTERN: BaseTagsClassPrototype.PATH_SEPARATOR_PATTERN,
|
||||||
SET_SEPARATOR: BaseTagsClassPrototype.SET_SEPARATOR,
|
SET_SEPARATOR: BaseTagsClassPrototype.SET_SEPARATOR,
|
||||||
@ -1808,7 +1806,7 @@ var BaseTagsPrototype = {
|
|||||||
|
|
||||||
var BaseTags =
|
var BaseTags =
|
||||||
module.BaseTags =
|
module.BaseTags =
|
||||||
object.makeConstructor('BaseTags',
|
object.makeConstructor('BaseTags',
|
||||||
BaseTagsClassPrototype,
|
BaseTagsClassPrototype,
|
||||||
BaseTagsPrototype)
|
BaseTagsPrototype)
|
||||||
|
|
||||||
@ -1858,7 +1856,7 @@ var TagsWithHandlersPrototype = {
|
|||||||
//
|
//
|
||||||
// // make all paths persistent...
|
// // make all paths persistent...
|
||||||
// '*/*': function(tag, action){
|
// '*/*': function(tag, action){
|
||||||
// action == 'tag'
|
// ;(action == 'tag' || action == 'replace')
|
||||||
// && this.togglePersistent(tag) },
|
// && this.togglePersistent(tag) },
|
||||||
//
|
//
|
||||||
// ...
|
// ...
|
||||||
@ -1981,6 +1979,35 @@ module.TagsWithHandlers =
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
// Store paths as persistent...
|
||||||
|
//
|
||||||
|
// This is TagsWithHandlers with a default path handler...
|
||||||
|
//
|
||||||
|
var TagsWithPersistentPathsPrototype = {
|
||||||
|
__proto__: TagsWithHandlersPrototype,
|
||||||
|
|
||||||
|
__special_tag_handlers__: Object.assign({},
|
||||||
|
TagsWithHandlersPrototype.__special_tag_handlers__ || {},
|
||||||
|
{
|
||||||
|
// make all paths persistent...
|
||||||
|
'*/*': function(tag, action){
|
||||||
|
;(action == 'tag' || action == 'replace')
|
||||||
|
&& this.togglePersistent(tag) },
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
|
var TagsWithPersistentPaths =
|
||||||
|
module.TagsWithPersistentPaths =
|
||||||
|
object.makeConstructor('TagsWithPersistentPaths',
|
||||||
|
BaseTagsClassPrototype,
|
||||||
|
TagsWithPersistentPathsPrototype)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
// Tag dictionary...
|
// Tag dictionary...
|
||||||
//
|
//
|
||||||
@ -2232,6 +2259,8 @@ module.Tags =
|
|||||||
BaseTagsClassPrototype,
|
BaseTagsClassPrototype,
|
||||||
object.mixin(BaseTagsPrototype,
|
object.mixin(BaseTagsPrototype,
|
||||||
TagsWithHandlersPrototype,
|
TagsWithHandlersPrototype,
|
||||||
|
// XXX not sure if this should be on by default...
|
||||||
|
//TagsWithPersistentPathsPrototype,
|
||||||
// NOTE: this needs unmodified input tags this should be
|
// NOTE: this needs unmodified input tags this should be
|
||||||
// mixed in last, i.e. first to be called in chain
|
// mixed in last, i.e. first to be called in chain
|
||||||
// (TagsWithHandlers change the input tags)...
|
// (TagsWithHandlers change the input tags)...
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user